Version Description
- FIX: Already Sent Headers Bug Fixed
- TWEAK: Code Optimized
Download this release
Release Info
Developer | contact-banker |
Plugin | WP Mail Bank: WordPress SMTP Plugin & Email Logs |
Version | 3.0.9 |
Comparing to | |
See all releases |
Code changes from version 3.0.8 to 3.0.9
- assets/admin/layout/css/font/tech-banker.svg +59 -59
- assets/admin/layout/css/layout-rtl.css +2 -2
- assets/global/plugins/custom/js/custom.js +243 -243
- assets/global/plugins/datatables/media/js/jquery.datatables.js +1 -1
- assets/global/plugins/icons/fonts/icons.svg +166 -166
- assets/global/plugins/icons/icons-lte-ie7.js +5 -5
- assets/global/plugins/toastr/toastr.css +4 -4
- assets/global/plugins/toastr/toastr.js +338 -338
- assets/global/plugins/validation/jquery.validate.js +1221 -1221
- includes/authentication-manager-mail-bank.php +22 -31
- includes/footer.php +1050 -1050
- includes/google-authentication-mail-bank.php +42 -49
- includes/header.php +5 -5
- includes/mail-bank-configuration-provider.php +11 -15
- includes/mail-bank-configure-transport.php +41 -46
- includes/mail-bank-email-log.php +84 -95
- includes/mail-bank-manage-email-address.php +40 -52
- includes/mail-bank-manage-email.php +220 -264
- includes/mail-bank-manage-token.php +31 -48
- includes/mail-bank-register-transport.php +1 -7
- includes/mail-bank-send-mail.php +100 -111
- includes/mail-bank-smtp-transport.php +3 -10
- includes/mail-bank-zend-engine.php +143 -151
- includes/mail-bank-zend-mail-helper.php +33 -42
- includes/mailer.php +186 -208
- includes/microsoft-authentication-mail-bank.php +40 -47
- includes/queries.php +89 -93
- includes/sidebar.php +122 -123
- includes/token-manager-mail-bank.php +52 -62
- includes/translations.php +410 -410
- includes/yahoo-authentication-mail-bank.php +50 -58
- languages/{wp-mail-bank-vi.mo → wp-mail-bank-vi_VN.mo} +0 -0
- languages/{wp-mail-bank-vi.po → wp-mail-bank-vi_VN.po} +2 -2
- lib/action-library.php +265 -266
- lib/admin-bar-menu.php +98 -99
- lib/callback.php +0 -1
- lib/helper.php +163 -185
- lib/install-script.php +313 -323
- lib/sidebar-menu.php +261 -282
- lib/zend/exception.php +10 -18
- lib/zend/loader.php +83 -95
- lib/zend/loader/autoloader.php +105 -143
- lib/zend/mail.php +177 -263
- lib/zend/mail/exception.php +1 -3
- lib/zend/mail/message.php +18 -26
- lib/zend/mail/message/file.php +3 -11
- lib/zend/mail/message/interface.php +1 -6
- lib/zend/mail/part/file.php +65 -73
- lib/zend/mail/part/interface.php +1 -13
- lib/zend/mail/protocol/abstract.php +6 -24
assets/admin/layout/css/font/tech-banker.svg
CHANGED
@@ -4,65 +4,65 @@
|
|
4 |
<metadata>Generated by IcoMoon</metadata>
|
5 |
<defs>
|
6 |
<font id="foobox" horiz-adv-x="1024">
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
<glyph unicode="" d="M0.042 446.382l-0.022-0.004c0 0 0.012-0.090 0.028-0.222 0.11-3.878 0.55-7.676 1.322-11.352 0.204-1.746 0.428-3.66 0.674-5.774 0.222-1.886 0.46-3.914 0.718-6.078 0.374-2.566 0.77-5.292 1.19-8.176 0.856-5.746 1.8-12.124 2.908-18.958 1.348-6.446 2.804-13.414 4.364-20.864 0.71-3.718 1.776-7.504 2.786-11.406 1.024-3.89 2.078-7.894 3.16-12.004 0.566-2.042 1.040-4.132 1.708-6.208 0.656-2.074 1.32-4.176 1.988-6.3 1.348-4.234 2.726-8.566 4.136-12.988 0.352-1.106 0.708-2.21 1.064-3.324 0.408-1.102 0.814-2.208 1.226-3.316 0.826-2.218 1.658-4.458 2.502-6.714 1.696-4.496 3.422-9.078 5.18-13.742 1.968-4.566 3.97-9.214 6.004-13.934 1.018-2.348 2.044-4.714 3.078-7.098 1.048-2.376 2.27-4.704 3.408-7.074 2.322-4.714 4.678-9.496 7.062-14.332 2.47-4.786 5.208-9.512 7.846-14.328 1.336-2.398 2.68-4.808 4.028-7.23 1.368-2.41 2.902-4.75 4.356-7.14 2.95-4.738 5.93-9.524 8.934-14.348 12.64-18.894 26.676-37.566 42.21-55.278 15.712-17.578 32.726-34.25 50.692-49.602 18.18-15.136 37.264-28.902 56.726-41.114 19.604-12.036 39.644-22.312 59.376-31.144 5.004-2.040 9.964-4.062 14.878-6.066 2.462-0.972 4.868-2.032 7.336-2.918 2.47-0.868 4.93-1.734 7.376-2.594 4.898-1.684 9.678-3.468 14.484-4.992 4.832-1.43 9.604-2.844 14.312-4.242 2.356-0.672 4.66-1.426 7.004-2.012 2.346-0.574 4.676-1.14 6.986-1.704 4.606-1.118 9.142-2.214 13.604-3.296 4.5-0.868 8.926-1.722 13.27-2.558 2.166-0.41 4.31-0.82 6.434-1.222 1.062-0.2 2.118-0.398 3.166-0.598 1.060-0.148 2.118-0.292 3.166-0.442 4.192-0.582 8.292-1.152 12.3-1.71 1.998-0.274 3.972-0.546 5.922-0.816 1.946-0.286 3.904-0.378 5.814-0.57 3.822-0.336 7.544-0.664 11.164-0.98 3.616-0.304 7.104-0.688 10.526-0.738 0.23-0.008 0.452-0.016 0.682-0.026 0.614-34.812 29.008-62.846 63.968-62.846 0.542 0 1.080 0.028 1.62 0.042v-0.022c0 0 0.090 0.012 0.224 0.028 3.878 0.11 7.674 0.55 11.35 1.322 1.748 0.204 3.662 0.426 5.776 0.672 1.884 0.222 3.912 0.462 6.076 0.718 2.566 0.376 5.292 0.772 8.176 1.192 5.746 0.856 12.124 1.8 18.958 2.908 6.446 1.348 13.414 2.804 20.864 4.362 3.718 0.712 7.504 1.778 11.406 2.786 3.892 1.026 7.894 2.080 12.004 3.162 2.044 0.566 4.132 1.040 6.208 1.708 2.074 0.656 4.174 1.318 6.3 1.988 4.232 1.348 8.564 2.726 12.988 4.134 1.104 0.354 2.21 0.708 3.324 1.066 1.1 0.406 2.206 0.814 3.316 1.226 2.216 0.824 4.456 1.658 6.714 2.5 4.496 1.698 9.078 3.424 13.74 5.182 4.568 1.968 9.216 3.97 13.936 6.004 2.348 1.018 4.714 2.044 7.098 3.078 2.376 1.048 4.702 2.27 7.074 3.408 4.714 2.322 9.494 4.678 14.33 7.062 4.786 2.47 9.512 5.208 14.328 7.846 2.398 1.336 4.808 2.678 7.23 4.028 2.41 1.366 4.75 2.9 7.14 4.354 4.738 2.952 9.524 5.93 14.35 8.936 18.89 12.64 37.564 26.674 55.278 42.21 17.574 15.712 34.248 32.726 49.602 50.69 15.136 18.182 28.902 37.264 41.112 56.728 12.036 19.602 22.314 39.644 31.142 59.376 2.042 5.002 4.062 9.964 6.068 14.878 0.974 2.462 2.032 4.868 2.918 7.334 0.87 2.472 1.732 4.932 2.592 7.376 1.686 4.898 3.468 9.678 4.994 14.484 1.432 4.832 2.846 9.604 4.24 14.31 0.674 2.358 1.43 4.66 2.016 7.004 0.57 2.348 1.138 4.676 1.702 6.988 1.118 4.606 2.216 9.14 3.296 13.602 0.868 4.502 1.72 8.928 2.558 13.272 0.41 2.164 0.818 4.308 1.222 6.434 0.2 1.060 0.398 2.116 0.596 3.164 0.148 1.062 0.296 2.118 0.444 3.168 0.582 4.19 1.152 8.292 1.708 12.3 0.278 1.996 0.55 3.97 0.82 5.922 0.284 1.946 0.376 3.902 0.568 5.812 0.336 3.822 0.664 7.546 0.98 11.164 0.304 3.616 0.686 7.106 0.738 10.528 0.020 0.534 0.040 1.044 0.058 1.574 35.224 0.146 63.732 28.738 63.732 63.992 0 0.542-0.028 1.080-0.042 1.62h0.022c0 0-0.012 0.090-0.028 0.224-0.11 3.878-0.55 7.674-1.322 11.35-0.204 1.748-0.428 3.662-0.674 5.776-0.222 1.886-0.46 3.914-0.718 6.076-0.374 2.566-0.77 5.294-1.19 8.176-0.856 5.746-1.8 12.124-2.908 18.958-1.348 6.444-2.804 13.414-4.364 20.862-0.71 3.72-1.776 7.506-2.786 11.408-1.024 3.892-2.078 7.894-3.16 12.002-0.566 2.044-1.040 4.134-1.708 6.208-0.656 2.076-1.32 4.174-1.988 6.3-1.348 4.234-2.726 8.566-4.136 12.99-0.352 1.102-0.708 2.21-1.064 3.324-0.408 1.1-0.814 2.206-1.226 3.316-0.826 2.216-1.658 4.454-2.502 6.714-1.696 4.498-3.422 9.080-5.18 13.74-1.968 4.57-3.97 9.216-6.004 13.936-1.020 2.348-2.044 4.714-3.078 7.098-1.048 2.376-2.27 4.702-3.408 7.076-2.322 4.714-4.678 9.494-7.062 14.33-2.47 4.786-5.208 9.512-7.846 14.328-1.336 2.398-2.68 4.808-4.028 7.23-1.368 2.41-2.902 4.75-4.356 7.14-2.95 4.74-5.93 9.524-8.934 14.35-12.64 18.892-26.676 37.564-42.21 55.278-15.712 17.576-32.726 34.25-50.692 49.602-18.18 15.136-37.264 28.902-56.726 41.112-19.604 12.036-39.644 22.314-59.376 31.142-5.004 2.040-9.964 4.062-14.878 6.068-2.462 0.974-4.868 2.032-7.336 2.918-2.47 0.87-4.93 1.734-7.376 2.592-4.898 1.684-9.678 3.468-14.484 4.994-4.832 1.432-9.604 2.846-14.312 4.242-2.356 0.672-4.66 1.428-7.004 2.014-2.346 0.572-4.676 1.138-6.986 1.702-4.606 1.118-9.142 2.216-13.604 3.298-4.5 0.868-8.926 1.72-13.27 2.558-2.166 0.412-4.31 0.82-6.434 1.222-1.062 0.2-2.118 0.398-3.166 0.596-1.060 0.148-2.118 0.296-3.166 0.442-4.192 0.584-8.292 1.154-12.3 1.71-1.998 0.276-3.972 0.55-5.922 0.82-1.946 0.284-3.904 0.376-5.814 0.57-3.822 0.336-7.544 0.664-11.164 0.98-3.616 0.304-7.104 0.686-10.526 0.738-0.852 0.032-1.674 0.062-2.512 0.092-0.65 34.78-29.028 62.778-63.966 62.778-0.542 0-1.080-0.028-1.62-0.042l-0.002 0.022c0 0-0.090-0.012-0.222-0.028-3.878-0.11-7.676-0.55-11.352-1.322-1.748-0.204-3.662-0.426-5.776-0.672-1.884-0.222-3.912-0.462-6.076-0.718-2.566-0.376-5.292-0.772-8.176-1.192-5.746-0.856-12.124-1.8-18.958-2.908-6.446-1.348-13.414-2.804-20.864-4.362-3.718-0.712-7.504-1.778-11.406-2.786-3.892-1.026-7.894-2.080-12.004-3.162-2.044-0.566-4.132-1.040-6.208-1.708-2.074-0.656-4.174-1.318-6.3-1.988-4.232-1.348-8.564-2.726-12.988-4.134-1.104-0.354-2.21-0.708-3.324-1.066-1.1-0.406-2.206-0.814-3.316-1.226-2.216-0.824-4.456-1.658-6.714-2.5-4.496-1.698-9.078-3.424-13.74-5.182-4.568-1.968-9.216-3.97-13.936-6.004-2.348-1.018-4.714-2.044-7.098-3.078-2.376-1.048-4.702-2.27-7.074-3.408-4.714-2.322-9.494-4.678-14.33-7.062-4.786-2.47-9.512-5.208-14.328-7.846-2.398-1.336-4.808-2.678-7.23-4.028-2.41-1.366-4.75-2.9-7.14-4.354-4.738-2.952-9.524-5.93-14.35-8.936-18.89-12.64-37.564-26.674-55.278-42.21-17.574-15.712-34.248-32.726-49.602-50.69-15.136-18.182-28.902-37.264-41.112-56.728-12.036-19.602-22.314-39.644-31.142-59.376-2.042-5.002-4.062-9.964-6.068-14.878-0.974-2.462-2.032-4.868-2.918-7.334-0.87-2.472-1.732-4.932-2.592-7.376-1.686-4.898-3.468-9.678-4.994-14.484-1.432-4.832-2.846-9.604-4.24-14.31-0.674-2.358-1.43-4.66-2.016-7.004-0.57-2.348-1.138-4.676-1.702-6.988-1.118-4.606-2.216-9.14-3.296-13.602-0.868-4.502-1.72-8.928-2.558-13.272-0.41-2.164-0.818-4.308-1.222-6.434-0.2-1.060-0.398-2.116-0.596-3.164-0.148-1.062-0.296-2.118-0.444-3.168-0.582-4.19-1.152-8.292-1.708-12.3-0.278-1.996-0.55-3.97-0.82-5.922-0.284-1.946-0.376-3.902-0.568-5.812-0.336-3.822-0.664-7.546-0.98-11.164-0.304-3.616-0.686-7.106-0.738-10.528-0.020-0.548-0.040-1.076-0.058-1.62-34.376-1.112-61.902-29.304-61.902-63.946 0-0.542 0.028-1.078 0.042-1.618zM73.518 511.294c0.042 0.196 0.086 0.384 0.128 0.58 0.644 3.248 1.632 6.542 2.556 9.942 0.934 3.388 1.894 6.876 2.88 10.454 0.516 1.78 0.934 3.602 1.546 5.406 0.596 1.802 1.202 3.628 1.81 5.476 1.218 3.682 2.464 7.45 3.736 11.294 0.316 0.958 0.634 1.924 0.956 2.892 0.37 0.954 0.74 1.914 1.114 2.876 0.746 1.924 1.5 3.868 2.26 5.83 1.52 3.904 3.070 7.882 4.646 11.93 1.768 3.96 3.566 7.99 5.392 12.080 0.908 2.038 1.824 4.090 2.746 6.156 0.932 2.060 2.036 4.072 3.052 6.126 2.070 4.084 4.17 8.222 6.294 12.412 2.202 4.142 4.654 8.224 6.998 12.392 1.184 2.074 2.374 4.16 3.57 6.256 1.21 2.086 2.586 4.102 3.876 6.166 2.616 4.098 5.256 8.232 7.918 12.402 11.234 16.298 23.632 32.398 37.33 47.638 13.874 15.104 28.842 29.404 44.598 42.548 15.974 12.928 32.686 24.65 49.676 35.022 17.13 10.194 34.6 18.838 51.734 26.258 4.35 1.7 8.662 3.382 12.934 5.050 2.136 0.812 4.216 1.71 6.36 2.444 2.146 0.714 4.28 1.428 6.404 2.136 4.25 1.386 8.382 2.888 12.548 4.142 4.184 1.174 8.314 2.332 12.392 3.474 2.038 0.55 4.026 1.19 6.054 1.662 2.030 0.458 4.044 0.914 6.044 1.368 3.978 0.91 7.896 1.806 11.748 2.688 3.888 0.686 7.71 1.36 11.462 2.022 1.868 0.33 3.716 0.658 5.546 0.98 0.914 0.162 1.824 0.324 2.728 0.484 0.916 0.112 1.828 0.222 2.734 0.332 3.612 0.448 7.148 0.882 10.604 1.31 1.72 0.216 3.422 0.432 5.102 0.644 1.674 0.226 3.364 0.266 5.010 0.408 3.292 0.238 6.498 0.472 9.616 0.7 3.11 0.218 6.11 0.524 9.058 0.508 5.848 0.132 11.32 0.256 16.38 0.372 4.664-0.168 8.948-0.324 12.818-0.462 1.914-0.054 3.726-0.108 5.432-0.156 2.122-0.134 4.108-0.26 5.958-0.378 2.13-0.138 4.060-0.266 5.82-0.38 3.256-0.51 6.592-0.782 9.99-0.782 0.466 0 0.93 0.026 1.396 0.036 0.132-0.008 0.224-0.014 0.224-0.014v0.020c31.14 0.778 56.75 23.784 61.556 53.754 0.542-0.12 1.064-0.236 1.612-0.356 3.246-0.644 6.542-1.632 9.942-2.556 3.386-0.934 6.876-1.894 10.454-2.88 1.778-0.516 3.602-0.934 5.404-1.546 1.802-0.596 3.63-1.202 5.478-1.812 3.68-1.218 7.448-2.464 11.292-3.736 0.96-0.316 1.924-0.634 2.892-0.956 0.956-0.37 1.914-0.74 2.876-1.112 1.926-0.746 3.868-1.5 5.83-2.26 3.904-1.52 7.884-3.070 11.932-4.646 3.96-1.768 7.988-3.566 12.080-5.392 2.038-0.908 4.088-1.824 6.156-2.746 2.060-0.932 4.072-2.036 6.126-3.054 4.082-2.070 8.222-4.17 12.41-6.294 4.144-2.202 8.226-4.654 12.394-6.998 2.074-1.184 4.16-2.374 6.256-3.572 2.086-1.21 4.102-2.586 6.166-3.876 4.098-2.616 8.23-5.256 12.402-7.918 16.296-11.234 32.398-23.632 47.636-37.33 15.104-13.874 29.406-28.842 42.55-44.598 12.928-15.974 24.648-32.686 35.020-49.676 10.196-17.13 18.84-34.6 26.26-51.736 1.698-4.348 3.382-8.662 5.050-12.932 0.812-2.136 1.71-4.216 2.444-6.36 0.714-2.146 1.428-4.28 2.136-6.404 1.386-4.25 2.888-8.384 4.142-12.548 1.174-4.184 2.33-8.316 3.474-12.392 0.55-2.038 1.19-4.026 1.66-6.054 0.46-2.030 0.916-4.046 1.368-6.046 0.91-3.978 1.808-7.896 2.688-11.748 0.688-3.888 1.362-7.71 2.024-11.462 0.33-1.868 0.656-3.716 0.98-5.548 0.162-0.914 0.324-1.824 0.484-2.728 0.11-0.916 0.222-1.828 0.332-2.734 0.446-3.612 0.882-7.148 1.31-10.604 0.216-1.72 0.432-3.42 0.642-5.1 0.226-1.674 0.268-3.364 0.41-5.010 0.238-3.292 0.472-6.498 0.7-9.616 0.218-3.11 0.524-6.11 0.508-9.058 0.132-5.848 0.256-11.32 0.372-16.38-0.168-4.664-0.324-8.948-0.462-12.818-0.054-1.914-0.108-3.726-0.156-5.432-0.134-2.122-0.26-4.108-0.378-5.958-0.138-2.13-0.266-4.060-0.38-5.82-0.498-3.256-0.768-6.592-0.768-9.99 0-0.468 0.026-0.93 0.036-1.396-0.008-0.132-0.016-0.224-0.016-0.224h0.022c0.768-30.766 23.236-56.128 52.682-61.37-0.066-0.296-0.13-0.584-0.198-0.884-0.644-3.248-1.632-6.542-2.556-9.942-0.934-3.388-1.894-6.876-2.88-10.454-0.516-1.78-0.934-3.602-1.546-5.406-0.596-1.802-1.202-3.628-1.81-5.476-1.218-3.682-2.464-7.45-3.736-11.294-0.316-0.958-0.634-1.924-0.956-2.892-0.37-0.954-0.74-1.914-1.114-2.876-0.746-1.924-1.5-3.868-2.26-5.83-1.52-3.904-3.070-7.882-4.646-11.93-1.768-3.96-3.566-7.99-5.392-12.080-0.908-2.038-1.824-4.090-2.746-6.156-0.932-2.060-2.036-4.072-3.052-6.126-2.070-4.084-4.17-8.222-6.294-12.412-2.202-4.142-4.654-8.224-6.998-12.392-1.184-2.074-2.374-4.16-3.57-6.256-1.21-2.086-2.586-4.102-3.876-6.166-2.616-4.098-5.256-8.232-7.918-12.402-11.234-16.298-23.632-32.398-37.33-47.638-13.874-15.104-28.842-29.404-44.598-42.548-15.974-12.928-32.686-24.65-49.676-35.022-17.13-10.194-34.6-18.838-51.734-26.258-4.35-1.7-8.662-3.382-12.934-5.050-2.136-0.812-4.216-1.71-6.36-2.444-2.146-0.714-4.28-1.428-6.404-2.136-4.25-1.386-8.382-2.888-12.548-4.142-4.184-1.174-8.314-2.332-12.392-3.474-2.038-0.55-4.026-1.19-6.054-1.662-2.030-0.458-4.044-0.914-6.044-1.368-3.978-0.91-7.896-1.806-11.748-2.688-3.888-0.686-7.71-1.36-11.462-2.022-1.868-0.33-3.716-0.658-5.546-0.98-0.914-0.162-1.824-0.324-2.728-0.484-0.916-0.112-1.828-0.222-2.734-0.332-3.612-0.448-7.148-0.882-10.604-1.31-1.72-0.216-3.422-0.432-5.102-0.644-1.674-0.226-3.364-0.266-5.010-0.408-3.292-0.238-6.498-0.472-9.616-0.7-3.11-0.218-6.11-0.524-9.058-0.508-5.848-0.132-11.32-0.256-16.38-0.372-4.664 0.168-8.948 0.324-12.818 0.462-1.914 0.054-3.726 0.108-5.432 0.156-2.122 0.134-4.108 0.26-5.958 0.378-2.13 0.138-4.060 0.266-5.82 0.38-3.256 0.51-6.592 0.782-9.99 0.782-0.466 0-0.93-0.026-1.396-0.036-0.132 0.008-0.224 0.014-0.224 0.014v-0.020c-31.004-0.774-56.524-23.586-61.488-53.364-3.2 0.64-6.446 1.61-9.792 2.522-3.386 0.934-6.876 1.894-10.454 2.878-1.778 0.516-3.602 0.938-5.404 1.546-1.802 0.598-3.63 1.204-5.478 1.812-3.68 1.218-7.448 2.464-11.292 3.738-0.96 0.316-1.924 0.632-2.892 0.954-0.956 0.372-1.914 0.742-2.876 1.114-1.926 0.746-3.868 1.5-5.83 2.258-3.904 1.524-7.884 3.070-11.932 4.648-3.96 1.77-7.988 3.566-12.080 5.39-2.038 0.91-4.088 1.824-6.156 2.746-2.060 0.934-4.072 2.036-6.126 3.054-4.082 2.070-8.222 4.172-12.41 6.296-4.144 2.2-8.226 4.652-12.394 6.996-2.074 1.184-4.16 2.376-6.256 3.57-2.086 1.21-4.102 2.586-6.166 3.878-4.098 2.614-8.23 5.254-12.402 7.918-16.296 11.23-32.398 23.632-47.636 37.328-15.104 13.876-29.406 28.84-42.55 44.598-12.928 15.972-24.648 32.684-35.020 49.676-10.196 17.128-18.84 34.602-26.26 51.734-1.698 4.352-3.382 8.664-5.050 12.934-0.812 2.136-1.71 4.218-2.444 6.36-0.714 2.148-1.428 4.282-2.136 6.406-1.386 4.25-2.888 8.382-4.142 12.546-1.174 4.184-2.33 8.316-3.474 12.394-0.55 2.036-1.19 4.024-1.66 6.054-0.46 2.028-0.916 4.042-1.368 6.042-0.91 3.98-1.808 7.898-2.688 11.75-0.688 3.886-1.362 7.71-2.024 11.46-0.33 1.868-0.656 3.718-0.98 5.546-0.162 0.914-0.324 1.824-0.484 2.73-0.11 0.914-0.222 1.828-0.332 2.734-0.446 3.61-0.882 7.148-1.31 10.602-0.216 1.722-0.432 3.422-0.642 5.102-0.226 1.676-0.268 3.364-0.41 5.012-0.238 3.29-0.472 6.496-0.7 9.614-0.218 3.11-0.524 6.11-0.508 9.058-0.132 5.848-0.256 11.32-0.372 16.382 0.168 4.664 0.324 8.946 0.462 12.816 0.054 1.914 0.108 3.726 0.156 5.434 0.134 2.122 0.26 4.106 0.378 5.958 0.138 2.128 0.266 4.058 0.38 5.82 0.496 3.26 0.766 6.596 0.766 9.994 0 0.466-0.026 0.93-0.036 1.396 0.008 0.132 0.016 0.224 0.016 0.224h-0.022c-0.78 31.38-24.134 57.154-54.44 61.674z" />
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
</font>
|
67 |
</defs>
|
68 |
</svg>
|
4 |
<metadata>Generated by IcoMoon</metadata>
|
5 |
<defs>
|
6 |
<font id="foobox" horiz-adv-x="1024">
|
7 |
+
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
8 |
+
<missing-glyph horiz-adv-x="1024" />
|
9 |
+
<glyph unicode=" " d="" horiz-adv-x="512" />
|
10 |
+
<glyph unicode="/" d="M0 249.344v185.344h229.376v-183.296q0-28.672 20.48-49.664t50.176-20.992 50.688 20.48 20.992 50.176v433.152q0 119.808 88.576 204.288t210.432 84.48 210.432-84.992 88.576-205.824v-94.208l-137.216-40.96-91.136 43.008v81.92q0 29.696-20.48 50.176t-50.176 20.48-50.688-20.48-20.992-50.176v-427.008q0-122.88-88.064-209.408t-210.944-86.528q-123.904 0-211.968 87.552t-88.064 212.48zM741.376 246.272v187.392l91.136-43.008 137.216 40.96v-188.416q0-29.696 20.48-50.688t50.176-20.992 50.176 20.992 20.48 50.688v191.488h229.376v-185.344q0-123.904-87.552-211.968t-211.456-88.064-211.968 87.040-88.064 209.92z" horiz-adv-x="1340" />
|
11 |
+
<glyph unicode=";" d="M-1.024 189.952v380.928q0 13.312 13.312 13.312h180.224v132.096q0 14.336 13.312 14.336h100.352v-526.336q0-14.336-12.288-14.336h-294.912zM110.592 274.944h68.608q13.312 0 13.312 14.336v210.944h-68.608q-13.312 0-13.312-14.336v-210.944zM340.992 189.952v380.928q0 13.312 13.312 13.312h100.352v-379.904q0-14.336-12.288-14.336h-101.376zM340.992 645.632v70.656q0 14.336 12.288 14.336h101.376v-70.656q0-14.336-12.288-14.336h-101.376zM493.568 189.952v380.928q0 13.312 13.312 13.312h294.912v-516.096q0-13.312-13.312-13.312h-294.912l1.024 70.656q0 14.336 12.288 14.336h180.224v50.176h-193.536zM606.208 274.944h68.608q12.288 0 12.288 14.336v210.944h-68.608q-12.288 0-12.288-14.336v-210.944zM840.704 125.44q0 14.336 13.312 14.336h180.224v50.176h-193.536v380.928q0 13.312 13.312 13.312h293.888v-516.096q0-13.312-12.288-13.312h-294.912v70.656zM952.32 274.944h68.608q13.312 0 13.312 14.336v210.944h-68.608q-13.312 0-13.312-14.336v-210.944z" horiz-adv-x="1148" />
|
12 |
+
<glyph unicode=">" d="M0 467.456q0 63.488 50.688 108.544t115.2 45.056q63.488 0 107.52-36.864h5.12q137.216 83.968 343.040 83.968l5.12 4.096 71.68 273.408 247.808-36.864q0-1.024 2.048-1.024 1.024 0 0 1.024 2.048 1.024 11.776 15.872t14.848 18.944q34.816 32.768 83.968 32.768 50.176 0 84.48-33.28t34.304-83.456-34.304-86.016-84.48-35.84q-58.368 0-89.088 39.424t-30.72 98.816q-2.048-1.024-99.84 13.312t-112.128 17.408h-3.072q-2.048-2.048-16.896-54.784t-30.72-111.616-17.92-65.024v-3.072l5.12-4.096q73.728 0 151.040-20.992t133.632-58.88l3.072-2.048q1.024 1.024 2.048 1.024t2.048 1.024q25.6 18.432 36.352 25.6t30.208 13.312 44.032 6.144q69.632 0 118.784-49.152t49.152-119.808q0-48.128-27.136-88.064t-71.168-61.44q0-199.68-266.24-310.272-41.984-18.432-57.344-23.552-32.768-10.24-93.184-19.456t-95.232-9.216q-122.88 0-236.544 35.84-2.048 2.048-73.728 38.912-97.28 52.224-156.16 118.784t-58.88 159.744h-5.12q-33.792 17.408-60.416 51.2l-9.216 12.288q-15.36 27.648-19.456 46.592t-4.096 51.712zM34.816 455.168q0-67.584 58.368-114.688 5.12 60.416 49.152 118.784t103.424 103.424q-37.888 26.624-83.968 26.624-50.176 0-88.576-41.472t-38.4-92.672zM139.264 305.664q0-55.296 31.744-106.496t81.408-87.552 104.96-60.928 107.52-34.816q76.8-14.336 149.504-14.336 125.952 0 238.592 40.448t189.44 125.44h-3.072q30.72 38.912 44.032 70.144t13.312 74.24q0 55.296-27.136 105.472t-71.168 86.016-94.208 61.952-102.4 39.424q-87.040 23.552-185.344 23.552-75.776 0-155.136-18.432t-153.6-55.296-121.344-101.888-47.104-146.944zM329.728 380.416q0 37.888 23.040 60.928t60.928 23.040 63.488-23.040 25.6-60.928q0-36.864-26.112-61.44t-62.976-24.576-60.416 24.576-23.552 61.44zM366.592 212.48h45.056q25.6-46.080 81.408-70.144t114.176-24.064q59.392 0 112.64 24.064t86.016 70.144h41.984q-25.6-63.488-95.232-98.304t-145.408-34.816q-73.728 0-144.896 35.328t-95.744 97.792zM710.656 380.416q0 38.912 23.552 61.44t62.464 22.528q34.816 0 59.392-24.576t24.576-59.392-24.576-60.416-59.392-25.6q-37.888 0-61.952 24.064t-24.064 61.952zM971.776 859.648q0-35.84 25.6-61.44t61.44-25.6q36.864 0 60.416 25.088t23.552 61.952q0 34.816-24.576 59.392t-59.392 24.576-60.928-25.088-26.112-58.88zM986.112 571.904q56.32-36.864 97.28-94.72t57.344-122.368q60.416 44.032 60.416 98.304 0 59.392-36.352 102.4t-94.72 43.008q-46.080 0-83.968-26.624z" horiz-adv-x="1232" />
|
13 |
+
<glyph unicode="t" d="M0 556.544v145.408q61.44 20.48 103.424 56.32 41.984 33.792 68.608 88.064 26.624 52.224 35.84 130.048h146.432v-259.072h242.688v-160.768h-242.688v-262.144q0-88.064 9.216-114.688 9.216-24.576 34.816-39.936 34.816-20.48 77.824-20.48 78.848 0 154.624 50.176v-160.768q-64.512-31.744-118.784-44.032-53.248-12.288-114.688-12.288-69.632 0-124.928 17.408-56.32 19.456-91.136 51.2-36.864 31.744-53.248 69.632-14.336 34.816-14.336 107.52v358.4h-113.664z" horiz-adv-x="630" />
|
14 |
+
<glyph unicode="" d="M876.856 448v-73.142q0-30.286-18.572-51.714t-48.286-21.428h-402.286l167.428-168q21.714-20.572 21.714-51.428t-21.714-51.428l-42.858-43.428q-21.142-21.142-51.428-21.142-29.714 0-52 21.142l-372 372.572q-21.142 21.142-21.142 51.428 0 29.714 21.142 52l372 371.428q21.714 21.714 52 21.714 29.714 0 51.428-21.714l42.858-42.286q21.714-21.714 21.714-52t-21.714-52l-167.428-167.428h402.286q29.714 0 48.286-21.428t18.572-51.714z" horiz-adv-x="876" />
|
15 |
+
<glyph unicode="" d="M840.286 411.428q0-30.858-21.142-52l-372-372q-22.286-21.142-52-21.142-29.142 0-51.428 21.142l-42.858 42.858q-21.714 21.714-21.714 52t21.714 52l167.428 167.428h-402.286q-29.714 0-48.286 21.428t-18.572 51.714v73.142q0 30.286 18.572 51.714t48.286 21.428h402.286l-167.428 168q-21.714 20.572-21.714 51.428t21.714 51.428l42.858 42.858q21.714 21.714 51.428 21.714 30.286 0 52-21.714l372-372q21.142-20 21.142-51.428z" horiz-adv-x="876" />
|
16 |
+
<glyph unicode="" d="M741.428 204.572q0-22.858-16-38.858l-77.714-77.714q-16-16-38.858-16t-38.858 16l-168 168-168-168q-16-16-38.858-16t-38.858 16l-77.714 77.714q-16 16-16 38.858t16 38.858l168 168-168 168q-16 16-16 38.858t16 38.858l77.714 77.714q16 16 38.858 16t38.858-16l168-168 168 168q16 16 38.858 16t38.858-16l77.714-77.714q16-16 16-38.858t-16-38.858l-168-168 168-168q16-16 16-38.858z" horiz-adv-x="804" />
|
17 |
+
<glyph unicode="" d="M790.572 430.286l-758.858-421.714q-13.142-7.428-22.572-1.714t-9.428 20.572v841.142q0 14.858 9.428 20.572t22.572-1.714l758.858-421.714q13.142-7.428 13.142-17.714t-13.142-17.714z" horiz-adv-x="804" />
|
18 |
+
<glyph unicode="" d="M876.856 850.286v-804.572q0-14.858-10.858-25.714t-25.714-10.858h-292.572q-14.858 0-25.714 10.858t-10.858 25.714v804.572q0 14.858 10.858 25.714t25.714 10.858h292.572q14.858 0 25.714-10.858t10.858-25.714zM364.856 850.286v-804.572q0-14.858-10.858-25.714t-25.714-10.858h-292.572q-14.858 0-25.714 10.858t-10.858 25.714v804.572q0 14.858 10.858 25.714t25.714 10.858h292.572q14.858 0 25.714-10.858t10.858-25.714z" horiz-adv-x="876" />
|
19 |
+
<glyph unicode="" d="M283.428 192q0-34.286-24.286-58.286t-58-24q-34.286 0-58.286 24t-24 58.286 24 58.286 58.286 24q33.714 0 58-24t24.286-58.286zM530.286 82.286q0-30.286-21.428-51.714t-51.714-21.428-51.714 21.428-21.428 51.714 21.428 51.714 51.714 21.428 51.714-21.428 21.428-51.714zM182.858 448q0-37.714-26.858-64.572t-64.572-26.858-64.572 26.858-26.858 64.572 26.858 64.572 64.572 26.858 64.572-26.858 26.858-64.572zM777.142 192q0-26.286-18.858-45.142t-45.142-18.858-45.142 18.858-18.858 45.142 18.858 45.142 45.142 18.858 45.142-18.858 18.858-45.142zM301.714 704q0-41.714-29.428-71.142t-71.142-29.428-71.142 29.428-29.428 71.142 29.428 71.142 71.142 29.428 71.142-29.428 29.428-71.142zM566.858 813.714q0-45.714-32-77.714t-77.714-32-77.714 32-32 77.714 32 77.714 77.714 32 77.714-32 32-77.714zM877.714 448q0-22.858-16-38.858t-38.858-16-38.858 16-16 38.858 16 38.858 38.858 16 38.858-16 16-38.858zM758.858 704q0-18.858-13.428-32.286t-32.286-13.428-32.286 13.428-13.428 32.286 13.428 32.286 32.286 13.428 32.286-13.428 13.428-32.286z" horiz-adv-x="896" />
|
20 |
+
<glyph unicode="" d="M0 135.786q0 89.058 91.104 158.666t220.084 69.608h55.278q-42.994 40.946-42.994 88.034 0 29.686 16.378 59.372-10.236-1.024-29.686-1.024-106.46 0-174.020 66.538t-67.56 163.784q0 93.152 83.94 162.76t191.422 69.608h317.332l-70.632-51.182h-100.318q48.112-18.426 75.238-69.608t27.126-113.626q0-95.2-90.082-165.832-37.876-29.686-49.136-47.088t-11.26-42.994q0-19.45 27.638-49.136t55.278-50.158q62.442-44.016 86.498-90.082t24.056-115.672q0-92.128-83.94-160.202t-227.25-68.072q-136.146 0-230.32 51.182t-94.176 135.122zM114.648 169.568q0-70.632 59.884-120.278t148.94-49.646q121.814 0 176.58 45.040t54.766 119.766q0 19.45-4.094 32.756-3.070 11.26-7.166 20.984t-12.284 19.45-14.332 16.378-19.962 16.89-20.984 15.354-25.592 17.914-26.614 17.914q-39.922 12.284-78.82 12.284-92.128 1.024-161.224-48.112t-69.096-116.696zM182.21 741.786q11.26-80.868 61.93-139.216t112.090-59.372q60.396-2.048 96.222 53.23t25.592 136.146-60.908 137.168-112.090 58.348-97.246-52.206-25.592-134.098zM750.334 717.22v51.182h204.73v204.73h51.182v-204.73h205.754v-51.182h-205.754v-205.754h-51.182v205.754h-204.73z" horiz-adv-x="1212" />
|
21 |
+
<glyph unicode="" d="M0 589.312q0 64.512 27.136 128t77.824 117.76 133.12 88.064 182.784 33.792q162.816 0 267.264-100.352t104.448-236.544q0-175.104-88.576-289.28t-228.864-114.176q-46.080 0-86.528 21.504t-56.832 52.224l-40.96-161.792q-5.12-19.456-13.312-39.424t-17.92-38.4-19.456-34.816-19.456-30.72-16.896-24.064-13.312-16.896l-6.144-8.192q-3.072-4.096-8.192-3.072t-6.144 6.144q0 1.024-1.536 14.336t-3.072 28.16-3.072 38.4-1.024 45.568 3.072 48.64 7.68 49.152q11.264 48.128 75.776 320.512-8.192 16.384-13.312 39.424t-5.12 37.376l-1.024 15.36q0 65.536 33.28 109.056t80.384 43.52q37.888 0 58.88-25.088t20.992-62.976q0-23.552-8.704-57.856t-23.040-78.848-20.48-72.192q-10.24-46.080 17.92-79.872t75.264-33.792q80.896 0 133.632 91.648t52.736 221.696q0 99.328-64.512 162.304t-180.224 62.976q-129.024 0-209.408-82.944t-80.384-198.656q0-68.608 38.912-115.712 13.312-15.36 8.192-32.768-2.048-5.12-6.144-23.552t-6.144-23.552q-2.048-11.264-10.24-14.848t-18.432 0.512q-60.416 24.576-90.624 84.48t-30.208 139.776z" horiz-adv-x="793" />
|
22 |
+
<glyph unicode="" d="M-5.116 852.114q0 51.154 35.808 84.404t93.1 33.25q56.27 0 91.054-32.738 35.808-33.762 35.808-87.984 0-49.108-34.784-81.846-35.808-33.762-94.124-33.762h-1.024q-56.27 0-91.054 33.762t-34.784 84.916zM8.184-43.078v683.416h227.124v-683.416h-227.124zM361.146-43.078h227.124v381.608q0 35.808 8.184 55.246 14.324 34.784 43.48 58.826t73.15 24.042q114.584 0 114.584-154.484v-365.238h227.124v391.838q0 151.416-71.616 229.68t-189.27 78.266q-131.976 0-205.638-113.562v-2.046h-1.024l1.024 2.046v97.192h-227.124q2.046-32.738 2.046-203.592t-2.046-479.824z" horiz-adv-x="1064" />
|
23 |
+
<glyph unicode="" d="M0 52.19q30.682-3.068 61.366-3.068 180.006 0 321.148 110.458-83.866 1.022-150.346 51.138t-91.026 127.846q20.456-4.092 48.070-4.092 35.796 0 68.526 9.204-90.004 17.386-148.812 88.47t-58.808 164.154v3.068q54.206-30.682 117.618-31.706-53.184 34.774-84.378 91.538t-31.194 123.244q0 69.548 35.796 129.892 96.14-119.664 234.724-190.746t297.114-79.264q-7.16 33.752-7.16 59.32 0 106.368 75.684 182.052t183.074 75.684q111.482 0 188.188-81.822 88.98 18.41 163.642 63.412-28.638-93.072-112.504-143.186 74.662 9.204 147.278 40.91-49.092-76.708-127.846-133.982v-33.752q0-103.3-30.172-207.11t-92.048-198.416-147.79-168.244-206.086-117.106-258.248-43.468q-213.758 0-395.81 115.572z" horiz-adv-x="1258" />
|
24 |
+
<glyph unicode="" d="M286.416 426.496v195.584h157.696v98.304q0 106.496 69.12 181.248t167.424 74.752h156.672v-195.584h-156.672q-15.36 0-27.648-16.896t-12.288-41.472v-100.352h196.608v-195.584h-196.608v-474.112h-196.608v474.112h-157.696z" horiz-adv-x="836" />
|
25 |
+
<glyph unicode="" d="M0 163.328q11.264 15.36 32.256 26.112t50.176 20.48 41.472 15.872q19.456 0 34.304-4.608t34.304-15.36 25.6-12.8q48.128-21.504 266.24-121.856 19.456-4.096 36.352 0t40.448 17.92 24.576 14.848q20.48 9.216 78.336 35.328t89.6 40.448q4.096 2.048 42.496 21.504t61.952 24.576q13.312 2.048 28.16-1.024t24.064-7.68 23.552-13.312 18.432-10.752 15.872-6.144 18.944-8.192 11.264-11.264q3.072-4.096 4.096-14.336-10.24-13.312-31.744-24.576t-52.224-22.528-40.96-16.384q-44.032-20.48-131.584-62.976t-131.584-62.976q-7.168-3.072-21.504-11.776t-24.064-13.312-26.112-11.264-28.16-7.168-30.208 1.536l-270.336 125.952q-6.144 3.072-32.768 14.336t-52.736 22.528-54.784 24.576-47.616 24.064-22.016 16.896q-4.096 4.096-4.096 13.312zM0 437.76q11.264 15.36 32.256 25.6t51.2 20.48 42.496 15.36q19.456 0 34.816-4.608t35.328-15.36 26.112-13.824q43.008-19.456 129.536-59.392t130.56-60.416q19.456-5.12 37.888-0.512t39.936 17.408 25.6 14.848q69.632 32.768 163.84 73.728 11.264 5.12 32.256 16.896t39.424 19.968 36.864 11.264q16.384 3.072 32.256-1.024t38.4-17.408 23.552-13.312q5.12-3.072 15.872-6.656t18.432-8.192 11.776-10.752q3.072-5.12 4.096-14.336-10.24-14.336-32.256-26.112t-53.76-23.040-41.984-16.384q-49.152-23.552-138.752-66.56t-125.44-60.416q-7.168-3.072-26.624-14.336t-29.696-15.36-33.28-10.24-36.352 0q-219.136 103.424-266.24 124.928-6.144 3.072-45.056 19.456t-71.168 30.72-62.976 30.208-34.816 23.040q-4.096 4.096-4.096 14.336zM0 711.168q10.24 15.36 32.256 27.136t53.76 23.040 41.984 16.384l356.352 165.888q30.72 0 54.784-7.168t57.856-26.624 40.96-22.528q39.936-18.432 119.808-55.808t119.808-55.808q4.096-2.048 37.376-15.36t55.808-24.576 27.648-20.48q3.072-4.096 4.096-13.312-9.216-13.312-26.624-23.040t-44.544-19.456-35.328-13.824q-48.128-22.528-143.36-68.096t-142.336-68.096q-6.144-3.072-20.48-11.264t-23.552-12.8-25.6-10.752-27.648-6.144-28.672 1.024q-250.88 116.736-262.144 121.856-4.096 2.048-64.512 28.16t-104.448 47.616-49.152 30.72q-4.096 4.096-4.096 13.312z" horiz-adv-x="1002" />
|
26 |
+
<glyph unicode="" d="M704 384l128 128v-512h-768v768h512l-128-128h-256v-512h512zM960 896v-352l-130.744 130.744-354.746-354.744h-90.51v90.512l354.744 354.744-130.744 130.744z" />
|
27 |
+
<glyph unicode="" d="M64 384h384v-384l-138.26 138.26-202-202-107.48 107.48 202 202zM821.74 245.74l202-202-107.48-107.48-202 202-138.26-138.26v384h384zM960 512h-384v384l138.26-138.26 202 202 107.48-107.48-202-202zM309.74 757.74l138.26 138.26v-384h-384l138.26 138.26-202 202 107.48 107.48z" />
|
28 |
+
<glyph unicode="" d="M1024 960v-384l-138.26 138.26-212-212-107.48 107.48 212 212-138.26 138.26zM245.74 821.74l212-212-107.48-107.48-212 212-138.26-138.26v384h384zM885.74 181.74l138.26 138.26v-384h-384l138.26 138.26-212 212 107.48 107.48zM457.74 286.26l-212-212 138.26-138.26h-384v384l138.26-138.26 212 212z" />
|
29 |
+
<glyph unicode="" d="M512 384l256 256h-192v256h-128v-256h-192zM744.726 488.728l-71.74-71.742 260.080-96.986-421.066-157.018-421.066 157.018 260.080 96.986-71.742 71.742-279.272-104.728v-256l512-192 512 192v256z" />
|
30 |
+
<glyph unicode="" d="M960 832h-896c-35.2 0-64-28.8-64-64v-640c0-35.2 28.8-64 64-64h896c35.2 0 64 28.8 64 64v640c0 35.2-28.8 64-64 64zM896 704v-46l-384-226.286-384 226.286v46h768zM128 192v354.572l384-226.286 384 226.286v-354.572h-768z" />
|
31 |
+
<glyph unicode="" d="M1024 448c-1.278 66.862-15.784 133.516-42.576 194.462-26.704 61-65.462 116.258-113.042 161.92-47.552 45.696-103.944 81.82-164.984 105.652-61.004 23.924-126.596 35.352-191.398 33.966-64.81-1.282-129.332-15.374-188.334-41.356-59.048-25.896-112.542-63.47-156.734-109.576-44.224-46.082-79.16-100.708-102.186-159.798-23.114-59.062-34.128-122.52-32.746-185.27 1.286-62.76 14.964-125.148 40.134-182.206 25.088-57.1 61.476-108.828 106.11-151.548 44.61-42.754 97.472-76.504 154.614-98.72 57.118-22.304 118.446-32.902 179.142-31.526 60.708 1.29 120.962 14.554 176.076 38.914 55.15 24.282 105.116 59.48 146.366 102.644 41.282 43.14 73.844 94.236 95.254 149.43 13.034 33.458 21.88 68.4 26.542 103.798 1.246-0.072 2.498-0.12 3.762-0.12 35.346 0 64 28.652 64 64 0 1.796-0.094 3.572-0.238 5.332h0.238zM922.306 278.052c-23.472-53.202-57.484-101.4-99.178-141.18-41.67-39.81-91-71.186-144.244-91.79-53.228-20.678-110.29-30.452-166.884-29.082-56.604 1.298-112.596 13.736-163.82 36.474-51.25 22.666-97.684 55.49-135.994 95.712-38.338 40.198-68.528 87.764-88.322 139.058-19.87 51.284-29.228 106.214-27.864 160.756 1.302 54.552 13.328 108.412 35.254 157.69 21.858 49.3 53.498 93.97 92.246 130.81 38.73 36.868 84.53 65.87 133.874 84.856 49.338 19.060 102.136 28.006 154.626 26.644 52.5-1.306 104.228-12.918 151.562-34.034 47.352-21.050 90.256-51.502 125.624-88.782 35.396-37.258 63.21-81.294 81.39-128.688 18.248-47.392 26.782-98.058 25.424-148.496h0.238c-0.144-1.76-0.238-3.536-0.238-5.332 0-33.012 24.992-60.174 57.086-63.624-6.224-34.822-16.53-68.818-30.78-100.992z" />
|
32 |
+
<glyph unicode="" d="M192 448c0 12.18 0.704 24.196 2.030 36.022l-184.98 60.104c-5.916-31.14-9.050-63.264-9.050-96.126 0-147.23 62.166-279.922 161.654-373.324l114.284 157.296c-52.124 56.926-83.938 132.758-83.938 216.028zM832 448c0-83.268-31.812-159.102-83.938-216.028l114.284-157.296c99.488 93.402 161.654 226.094 161.654 373.324 0 32.862-3.132 64.986-9.048 96.126l-184.98-60.104c1.324-11.828 2.028-23.842 2.028-36.022zM576 761.592c91.934-18.662 169.544-76.742 214.45-155.826l184.978 60.102c-73.196 155.42-222.24 268.060-399.428 290.156v-194.432zM233.55 605.768c44.906 79.084 122.516 137.164 214.45 155.826v194.43c-177.188-22.096-326.23-134.736-399.426-290.154l184.976-60.102zM644.556 156.672c-40.39-18.408-85.272-28.672-132.556-28.672s-92.166 10.264-132.554 28.67l-114.292-157.31c73.206-40.366 157.336-63.36 246.846-63.36s173.64 22.994 246.848 63.36l-114.292 157.312z" />
|
33 |
+
<glyph unicode="" d="M384 832c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128-70.692 0-128 57.308-128 128zM655.53 719.53c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128-70.692 0-128 57.308-128 128zM832 448c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM719.53 176.47c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM448.002 64c0 0 0 0 0 0 0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0 0 0 0 0 0 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM176.472 176.47c0 0 0 0 0 0 0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0 0 0 0 0 0 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM144.472 719.53c0 0 0 0 0 0 0 53.019 42.981 96 96 96 53.019 0 96-42.981 96-96 0 0 0 0 0 0 0-53.019-42.981-96-96-96-53.019 0-96 42.981-96 96zM56 448c0 39.765 32.235 72 72 72s72-32.235 72-72c0-39.765-32.235-72-72-72-39.765 0-72 32.235-72 72z" />
|
34 |
+
<glyph unicode="" d="M512 960c-278.748 0-505.458-222.762-511.848-499.974 5.92 241.864 189.832 435.974 415.848 435.974 229.75 0 416-200.576 416-448 0-53.020 42.98-96 96-96 53.020 0 96 42.98 96 96 0 282.77-229.23 512-512 512zM512-64c278.748 0 505.458 222.762 511.848 499.974-5.92-241.864-189.832-435.974-415.848-435.974-229.75 0-416 200.576-416 448 0 53.020-42.98 96-96 96-53.020 0-96-42.98-96-96 0-282.77 229.23-512 512-512z" />
|
35 |
+
<glyph unicode="" d="M0.042 446.382l-0.022-0.004c0 0 0.012-0.090 0.028-0.222 0.11-3.878 0.55-7.676 1.322-11.352 0.204-1.746 0.428-3.66 0.674-5.774 0.222-1.886 0.46-3.914 0.718-6.078 0.374-2.566 0.77-5.292 1.19-8.176 0.856-5.746 1.8-12.124 2.908-18.958 1.348-6.446 2.804-13.414 4.364-20.864 0.71-3.718 1.776-7.504 2.786-11.406 1.024-3.89 2.078-7.894 3.16-12.004 0.566-2.042 1.040-4.132 1.708-6.208 0.656-2.074 1.32-4.176 1.988-6.3 1.348-4.234 2.726-8.566 4.136-12.988 0.352-1.106 0.708-2.21 1.064-3.324 0.408-1.102 0.814-2.208 1.226-3.316 0.826-2.218 1.658-4.458 2.502-6.714 1.696-4.496 3.422-9.078 5.18-13.742 1.968-4.566 3.97-9.214 6.004-13.934 1.018-2.348 2.044-4.714 3.078-7.098 1.048-2.376 2.27-4.704 3.408-7.074 2.322-4.714 4.678-9.496 7.062-14.332 2.47-4.786 5.208-9.512 7.846-14.328 1.336-2.398 2.68-4.808 4.028-7.23 1.368-2.41 2.902-4.75 4.356-7.14 2.95-4.738 5.93-9.524 8.934-14.348 12.64-18.894 26.676-37.566 42.21-55.278 15.712-17.578 32.726-34.25 50.692-49.602 18.18-15.136 37.264-28.902 56.726-41.114 19.604-12.036 39.644-22.312 59.376-31.144 5.004-2.040 9.964-4.062 14.878-6.066 2.462-0.972 4.868-2.032 7.336-2.918 2.47-0.868 4.93-1.734 7.376-2.594 4.898-1.684 9.678-3.468 14.484-4.992 4.832-1.43 9.604-2.844 14.312-4.242 2.356-0.672 4.66-1.426 7.004-2.012 2.346-0.574 4.676-1.14 6.986-1.704 4.606-1.118 9.142-2.214 13.604-3.296 4.5-0.868 8.926-1.722 13.27-2.558 2.166-0.41 4.31-0.82 6.434-1.222 1.062-0.2 2.118-0.398 3.166-0.598 1.060-0.148 2.118-0.292 3.166-0.442 4.192-0.582 8.292-1.152 12.3-1.71 1.998-0.274 3.972-0.546 5.922-0.816 1.946-0.286 3.904-0.378 5.814-0.57 3.822-0.336 7.544-0.664 11.164-0.98 3.616-0.304 7.104-0.688 10.526-0.738 0.23-0.008 0.452-0.016 0.682-0.026 0.614-34.812 29.008-62.846 63.968-62.846 0.542 0 1.080 0.028 1.62 0.042v-0.022c0 0 0.090 0.012 0.224 0.028 3.878 0.11 7.674 0.55 11.35 1.322 1.748 0.204 3.662 0.426 5.776 0.672 1.884 0.222 3.912 0.462 6.076 0.718 2.566 0.376 5.292 0.772 8.176 1.192 5.746 0.856 12.124 1.8 18.958 2.908 6.446 1.348 13.414 2.804 20.864 4.362 3.718 0.712 7.504 1.778 11.406 2.786 3.892 1.026 7.894 2.080 12.004 3.162 2.044 0.566 4.132 1.040 6.208 1.708 2.074 0.656 4.174 1.318 6.3 1.988 4.232 1.348 8.564 2.726 12.988 4.134 1.104 0.354 2.21 0.708 3.324 1.066 1.1 0.406 2.206 0.814 3.316 1.226 2.216 0.824 4.456 1.658 6.714 2.5 4.496 1.698 9.078 3.424 13.74 5.182 4.568 1.968 9.216 3.97 13.936 6.004 2.348 1.018 4.714 2.044 7.098 3.078 2.376 1.048 4.702 2.27 7.074 3.408 4.714 2.322 9.494 4.678 14.33 7.062 4.786 2.47 9.512 5.208 14.328 7.846 2.398 1.336 4.808 2.678 7.23 4.028 2.41 1.366 4.75 2.9 7.14 4.354 4.738 2.952 9.524 5.93 14.35 8.936 18.89 12.64 37.564 26.674 55.278 42.21 17.574 15.712 34.248 32.726 49.602 50.69 15.136 18.182 28.902 37.264 41.112 56.728 12.036 19.602 22.314 39.644 31.142 59.376 2.042 5.002 4.062 9.964 6.068 14.878 0.974 2.462 2.032 4.868 2.918 7.334 0.87 2.472 1.732 4.932 2.592 7.376 1.686 4.898 3.468 9.678 4.994 14.484 1.432 4.832 2.846 9.604 4.24 14.31 0.674 2.358 1.43 4.66 2.016 7.004 0.57 2.348 1.138 4.676 1.702 6.988 1.118 4.606 2.216 9.14 3.296 13.602 0.868 4.502 1.72 8.928 2.558 13.272 0.41 2.164 0.818 4.308 1.222 6.434 0.2 1.060 0.398 2.116 0.596 3.164 0.148 1.062 0.296 2.118 0.444 3.168 0.582 4.19 1.152 8.292 1.708 12.3 0.278 1.996 0.55 3.97 0.82 5.922 0.284 1.946 0.376 3.902 0.568 5.812 0.336 3.822 0.664 7.546 0.98 11.164 0.304 3.616 0.686 7.106 0.738 10.528 0.020 0.534 0.040 1.044 0.058 1.574 35.224 0.146 63.732 28.738 63.732 63.992 0 0.542-0.028 1.080-0.042 1.62h0.022c0 0-0.012 0.090-0.028 0.224-0.11 3.878-0.55 7.674-1.322 11.35-0.204 1.748-0.428 3.662-0.674 5.776-0.222 1.886-0.46 3.914-0.718 6.076-0.374 2.566-0.77 5.294-1.19 8.176-0.856 5.746-1.8 12.124-2.908 18.958-1.348 6.444-2.804 13.414-4.364 20.862-0.71 3.72-1.776 7.506-2.786 11.408-1.024 3.892-2.078 7.894-3.16 12.002-0.566 2.044-1.040 4.134-1.708 6.208-0.656 2.076-1.32 4.174-1.988 6.3-1.348 4.234-2.726 8.566-4.136 12.99-0.352 1.102-0.708 2.21-1.064 3.324-0.408 1.1-0.814 2.206-1.226 3.316-0.826 2.216-1.658 4.454-2.502 6.714-1.696 4.498-3.422 9.080-5.18 13.74-1.968 4.57-3.97 9.216-6.004 13.936-1.020 2.348-2.044 4.714-3.078 7.098-1.048 2.376-2.27 4.702-3.408 7.076-2.322 4.714-4.678 9.494-7.062 14.33-2.47 4.786-5.208 9.512-7.846 14.328-1.336 2.398-2.68 4.808-4.028 7.23-1.368 2.41-2.902 4.75-4.356 7.14-2.95 4.74-5.93 9.524-8.934 14.35-12.64 18.892-26.676 37.564-42.21 55.278-15.712 17.576-32.726 34.25-50.692 49.602-18.18 15.136-37.264 28.902-56.726 41.112-19.604 12.036-39.644 22.314-59.376 31.142-5.004 2.040-9.964 4.062-14.878 6.068-2.462 0.974-4.868 2.032-7.336 2.918-2.47 0.87-4.93 1.734-7.376 2.592-4.898 1.684-9.678 3.468-14.484 4.994-4.832 1.432-9.604 2.846-14.312 4.242-2.356 0.672-4.66 1.428-7.004 2.014-2.346 0.572-4.676 1.138-6.986 1.702-4.606 1.118-9.142 2.216-13.604 3.298-4.5 0.868-8.926 1.72-13.27 2.558-2.166 0.412-4.31 0.82-6.434 1.222-1.062 0.2-2.118 0.398-3.166 0.596-1.060 0.148-2.118 0.296-3.166 0.442-4.192 0.584-8.292 1.154-12.3 1.71-1.998 0.276-3.972 0.55-5.922 0.82-1.946 0.284-3.904 0.376-5.814 0.57-3.822 0.336-7.544 0.664-11.164 0.98-3.616 0.304-7.104 0.686-10.526 0.738-0.852 0.032-1.674 0.062-2.512 0.092-0.65 34.78-29.028 62.778-63.966 62.778-0.542 0-1.080-0.028-1.62-0.042l-0.002 0.022c0 0-0.090-0.012-0.222-0.028-3.878-0.11-7.676-0.55-11.352-1.322-1.748-0.204-3.662-0.426-5.776-0.672-1.884-0.222-3.912-0.462-6.076-0.718-2.566-0.376-5.292-0.772-8.176-1.192-5.746-0.856-12.124-1.8-18.958-2.908-6.446-1.348-13.414-2.804-20.864-4.362-3.718-0.712-7.504-1.778-11.406-2.786-3.892-1.026-7.894-2.080-12.004-3.162-2.044-0.566-4.132-1.040-6.208-1.708-2.074-0.656-4.174-1.318-6.3-1.988-4.232-1.348-8.564-2.726-12.988-4.134-1.104-0.354-2.21-0.708-3.324-1.066-1.1-0.406-2.206-0.814-3.316-1.226-2.216-0.824-4.456-1.658-6.714-2.5-4.496-1.698-9.078-3.424-13.74-5.182-4.568-1.968-9.216-3.97-13.936-6.004-2.348-1.018-4.714-2.044-7.098-3.078-2.376-1.048-4.702-2.27-7.074-3.408-4.714-2.322-9.494-4.678-14.33-7.062-4.786-2.47-9.512-5.208-14.328-7.846-2.398-1.336-4.808-2.678-7.23-4.028-2.41-1.366-4.75-2.9-7.14-4.354-4.738-2.952-9.524-5.93-14.35-8.936-18.89-12.64-37.564-26.674-55.278-42.21-17.574-15.712-34.248-32.726-49.602-50.69-15.136-18.182-28.902-37.264-41.112-56.728-12.036-19.602-22.314-39.644-31.142-59.376-2.042-5.002-4.062-9.964-6.068-14.878-0.974-2.462-2.032-4.868-2.918-7.334-0.87-2.472-1.732-4.932-2.592-7.376-1.686-4.898-3.468-9.678-4.994-14.484-1.432-4.832-2.846-9.604-4.24-14.31-0.674-2.358-1.43-4.66-2.016-7.004-0.57-2.348-1.138-4.676-1.702-6.988-1.118-4.606-2.216-9.14-3.296-13.602-0.868-4.502-1.72-8.928-2.558-13.272-0.41-2.164-0.818-4.308-1.222-6.434-0.2-1.060-0.398-2.116-0.596-3.164-0.148-1.062-0.296-2.118-0.444-3.168-0.582-4.19-1.152-8.292-1.708-12.3-0.278-1.996-0.55-3.97-0.82-5.922-0.284-1.946-0.376-3.902-0.568-5.812-0.336-3.822-0.664-7.546-0.98-11.164-0.304-3.616-0.686-7.106-0.738-10.528-0.020-0.548-0.040-1.076-0.058-1.62-34.376-1.112-61.902-29.304-61.902-63.946 0-0.542 0.028-1.078 0.042-1.618zM73.518 511.294c0.042 0.196 0.086 0.384 0.128 0.58 0.644 3.248 1.632 6.542 2.556 9.942 0.934 3.388 1.894 6.876 2.88 10.454 0.516 1.78 0.934 3.602 1.546 5.406 0.596 1.802 1.202 3.628 1.81 5.476 1.218 3.682 2.464 7.45 3.736 11.294 0.316 0.958 0.634 1.924 0.956 2.892 0.37 0.954 0.74 1.914 1.114 2.876 0.746 1.924 1.5 3.868 2.26 5.83 1.52 3.904 3.070 7.882 4.646 11.93 1.768 3.96 3.566 7.99 5.392 12.080 0.908 2.038 1.824 4.090 2.746 6.156 0.932 2.060 2.036 4.072 3.052 6.126 2.070 4.084 4.17 8.222 6.294 12.412 2.202 4.142 4.654 8.224 6.998 12.392 1.184 2.074 2.374 4.16 3.57 6.256 1.21 2.086 2.586 4.102 3.876 6.166 2.616 4.098 5.256 8.232 7.918 12.402 11.234 16.298 23.632 32.398 37.33 47.638 13.874 15.104 28.842 29.404 44.598 42.548 15.974 12.928 32.686 24.65 49.676 35.022 17.13 10.194 34.6 18.838 51.734 26.258 4.35 1.7 8.662 3.382 12.934 5.050 2.136 0.812 4.216 1.71 6.36 2.444 2.146 0.714 4.28 1.428 6.404 2.136 4.25 1.386 8.382 2.888 12.548 4.142 4.184 1.174 8.314 2.332 12.392 3.474 2.038 0.55 4.026 1.19 6.054 1.662 2.030 0.458 4.044 0.914 6.044 1.368 3.978 0.91 7.896 1.806 11.748 2.688 3.888 0.686 7.71 1.36 11.462 2.022 1.868 0.33 3.716 0.658 5.546 0.98 0.914 0.162 1.824 0.324 2.728 0.484 0.916 0.112 1.828 0.222 2.734 0.332 3.612 0.448 7.148 0.882 10.604 1.31 1.72 0.216 3.422 0.432 5.102 0.644 1.674 0.226 3.364 0.266 5.010 0.408 3.292 0.238 6.498 0.472 9.616 0.7 3.11 0.218 6.11 0.524 9.058 0.508 5.848 0.132 11.32 0.256 16.38 0.372 4.664-0.168 8.948-0.324 12.818-0.462 1.914-0.054 3.726-0.108 5.432-0.156 2.122-0.134 4.108-0.26 5.958-0.378 2.13-0.138 4.060-0.266 5.82-0.38 3.256-0.51 6.592-0.782 9.99-0.782 0.466 0 0.93 0.026 1.396 0.036 0.132-0.008 0.224-0.014 0.224-0.014v0.020c31.14 0.778 56.75 23.784 61.556 53.754 0.542-0.12 1.064-0.236 1.612-0.356 3.246-0.644 6.542-1.632 9.942-2.556 3.386-0.934 6.876-1.894 10.454-2.88 1.778-0.516 3.602-0.934 5.404-1.546 1.802-0.596 3.63-1.202 5.478-1.812 3.68-1.218 7.448-2.464 11.292-3.736 0.96-0.316 1.924-0.634 2.892-0.956 0.956-0.37 1.914-0.74 2.876-1.112 1.926-0.746 3.868-1.5 5.83-2.26 3.904-1.52 7.884-3.070 11.932-4.646 3.96-1.768 7.988-3.566 12.080-5.392 2.038-0.908 4.088-1.824 6.156-2.746 2.060-0.932 4.072-2.036 6.126-3.054 4.082-2.070 8.222-4.17 12.41-6.294 4.144-2.202 8.226-4.654 12.394-6.998 2.074-1.184 4.16-2.374 6.256-3.572 2.086-1.21 4.102-2.586 6.166-3.876 4.098-2.616 8.23-5.256 12.402-7.918 16.296-11.234 32.398-23.632 47.636-37.33 15.104-13.874 29.406-28.842 42.55-44.598 12.928-15.974 24.648-32.686 35.020-49.676 10.196-17.13 18.84-34.6 26.26-51.736 1.698-4.348 3.382-8.662 5.050-12.932 0.812-2.136 1.71-4.216 2.444-6.36 0.714-2.146 1.428-4.28 2.136-6.404 1.386-4.25 2.888-8.384 4.142-12.548 1.174-4.184 2.33-8.316 3.474-12.392 0.55-2.038 1.19-4.026 1.66-6.054 0.46-2.030 0.916-4.046 1.368-6.046 0.91-3.978 1.808-7.896 2.688-11.748 0.688-3.888 1.362-7.71 2.024-11.462 0.33-1.868 0.656-3.716 0.98-5.548 0.162-0.914 0.324-1.824 0.484-2.728 0.11-0.916 0.222-1.828 0.332-2.734 0.446-3.612 0.882-7.148 1.31-10.604 0.216-1.72 0.432-3.42 0.642-5.1 0.226-1.674 0.268-3.364 0.41-5.010 0.238-3.292 0.472-6.498 0.7-9.616 0.218-3.11 0.524-6.11 0.508-9.058 0.132-5.848 0.256-11.32 0.372-16.38-0.168-4.664-0.324-8.948-0.462-12.818-0.054-1.914-0.108-3.726-0.156-5.432-0.134-2.122-0.26-4.108-0.378-5.958-0.138-2.13-0.266-4.060-0.38-5.82-0.498-3.256-0.768-6.592-0.768-9.99 0-0.468 0.026-0.93 0.036-1.396-0.008-0.132-0.016-0.224-0.016-0.224h0.022c0.768-30.766 23.236-56.128 52.682-61.37-0.066-0.296-0.13-0.584-0.198-0.884-0.644-3.248-1.632-6.542-2.556-9.942-0.934-3.388-1.894-6.876-2.88-10.454-0.516-1.78-0.934-3.602-1.546-5.406-0.596-1.802-1.202-3.628-1.81-5.476-1.218-3.682-2.464-7.45-3.736-11.294-0.316-0.958-0.634-1.924-0.956-2.892-0.37-0.954-0.74-1.914-1.114-2.876-0.746-1.924-1.5-3.868-2.26-5.83-1.52-3.904-3.070-7.882-4.646-11.93-1.768-3.96-3.566-7.99-5.392-12.080-0.908-2.038-1.824-4.090-2.746-6.156-0.932-2.060-2.036-4.072-3.052-6.126-2.070-4.084-4.17-8.222-6.294-12.412-2.202-4.142-4.654-8.224-6.998-12.392-1.184-2.074-2.374-4.16-3.57-6.256-1.21-2.086-2.586-4.102-3.876-6.166-2.616-4.098-5.256-8.232-7.918-12.402-11.234-16.298-23.632-32.398-37.33-47.638-13.874-15.104-28.842-29.404-44.598-42.548-15.974-12.928-32.686-24.65-49.676-35.022-17.13-10.194-34.6-18.838-51.734-26.258-4.35-1.7-8.662-3.382-12.934-5.050-2.136-0.812-4.216-1.71-6.36-2.444-2.146-0.714-4.28-1.428-6.404-2.136-4.25-1.386-8.382-2.888-12.548-4.142-4.184-1.174-8.314-2.332-12.392-3.474-2.038-0.55-4.026-1.19-6.054-1.662-2.030-0.458-4.044-0.914-6.044-1.368-3.978-0.91-7.896-1.806-11.748-2.688-3.888-0.686-7.71-1.36-11.462-2.022-1.868-0.33-3.716-0.658-5.546-0.98-0.914-0.162-1.824-0.324-2.728-0.484-0.916-0.112-1.828-0.222-2.734-0.332-3.612-0.448-7.148-0.882-10.604-1.31-1.72-0.216-3.422-0.432-5.102-0.644-1.674-0.226-3.364-0.266-5.010-0.408-3.292-0.238-6.498-0.472-9.616-0.7-3.11-0.218-6.11-0.524-9.058-0.508-5.848-0.132-11.32-0.256-16.38-0.372-4.664 0.168-8.948 0.324-12.818 0.462-1.914 0.054-3.726 0.108-5.432 0.156-2.122 0.134-4.108 0.26-5.958 0.378-2.13 0.138-4.060 0.266-5.82 0.38-3.256 0.51-6.592 0.782-9.99 0.782-0.466 0-0.93-0.026-1.396-0.036-0.132 0.008-0.224 0.014-0.224 0.014v-0.020c-31.004-0.774-56.524-23.586-61.488-53.364-3.2 0.64-6.446 1.61-9.792 2.522-3.386 0.934-6.876 1.894-10.454 2.878-1.778 0.516-3.602 0.938-5.404 1.546-1.802 0.598-3.63 1.204-5.478 1.812-3.68 1.218-7.448 2.464-11.292 3.738-0.96 0.316-1.924 0.632-2.892 0.954-0.956 0.372-1.914 0.742-2.876 1.114-1.926 0.746-3.868 1.5-5.83 2.258-3.904 1.524-7.884 3.070-11.932 4.648-3.96 1.77-7.988 3.566-12.080 5.39-2.038 0.91-4.088 1.824-6.156 2.746-2.060 0.934-4.072 2.036-6.126 3.054-4.082 2.070-8.222 4.172-12.41 6.296-4.144 2.2-8.226 4.652-12.394 6.996-2.074 1.184-4.16 2.376-6.256 3.57-2.086 1.21-4.102 2.586-6.166 3.878-4.098 2.614-8.23 5.254-12.402 7.918-16.296 11.23-32.398 23.632-47.636 37.328-15.104 13.876-29.406 28.84-42.55 44.598-12.928 15.972-24.648 32.684-35.020 49.676-10.196 17.128-18.84 34.602-26.26 51.734-1.698 4.352-3.382 8.664-5.050 12.934-0.812 2.136-1.71 4.218-2.444 6.36-0.714 2.148-1.428 4.282-2.136 6.406-1.386 4.25-2.888 8.382-4.142 12.546-1.174 4.184-2.33 8.316-3.474 12.394-0.55 2.036-1.19 4.024-1.66 6.054-0.46 2.028-0.916 4.042-1.368 6.042-0.91 3.98-1.808 7.898-2.688 11.75-0.688 3.886-1.362 7.71-2.024 11.46-0.33 1.868-0.656 3.718-0.98 5.546-0.162 0.914-0.324 1.824-0.484 2.73-0.11 0.914-0.222 1.828-0.332 2.734-0.446 3.61-0.882 7.148-1.31 10.602-0.216 1.722-0.432 3.422-0.642 5.102-0.226 1.676-0.268 3.364-0.41 5.012-0.238 3.29-0.472 6.496-0.7 9.614-0.218 3.11-0.524 6.11-0.508 9.058-0.132 5.848-0.256 11.32-0.372 16.382 0.168 4.664 0.324 8.946 0.462 12.816 0.054 1.914 0.108 3.726 0.156 5.434 0.134 2.122 0.26 4.106 0.378 5.958 0.138 2.128 0.266 4.058 0.38 5.82 0.496 3.26 0.766 6.596 0.766 9.994 0 0.466-0.026 0.93-0.036 1.396 0.008 0.132 0.016 0.224 0.016 0.224h-0.022c-0.78 31.38-24.134 57.154-54.44 61.674z" />
|
36 |
+
<glyph unicode="" d="M1024 544l-225.738 22.574 143.66 175.582-135.766 135.764-175.582-143.658-22.574 225.738h-192l-22.574-225.738-175.582 143.658-135.764-135.764 143.658-175.582-225.738-22.574v-192l225.738-22.574-143.658-175.582 135.764-135.766 175.582 143.66 22.574-225.738h192l22.574 225.738 175.582-143.66 135.766 135.766-143.66 175.582 225.738 22.574v192zM704 527.528v-159.056l-112.472-112.472h-159.056l-112.472 112.472v159.056l112.47 112.472h159.056l112.474-112.472z" />
|
37 |
+
<glyph unicode="" d="M874.022 810.020c-92.652 92.656-220.636 149.98-362.022 149.98-219.488 0-406.69-138.128-479.498-332.188l119.876-44.954c54.604 145.546 195.006 249.142 359.622 249.142 106.040 0 202.020-43 271.506-112.494l-143.506-143.506h384v384l-149.978-149.98zM512 64c-106.040 0-202.026 42.992-271.512 112.488l143.512 143.512h-384v-384l149.994 149.994c92.646-92.662 220.618-149.994 362.006-149.994 219.49 0 406.692 138.128 479.5 332.188l-119.876 44.954c-54.604-145.546-195.006-249.142-359.624-249.142z" />
|
38 |
+
<glyph unicode="" d="M512 752c-100.252 0-189.54-46.802-246.326-119.256l-76.776 57.582c74.32 95.764 191.494 157.674 323.102 157.674v112l160-160-160-160v112zM512 144c100.254 0 189.542 46.802 246.326 119.256l76.776-57.582c-74.32-95.764-191.494-157.674-323.102-157.674v-112l-160 160 160 160v-112zM201.6 448c0-100.364 49.928-189.508 126.724-244.902l-57.584-76.78c-100.108 72.928-165.14 189.966-165.14 321.682h-105.6l160 160 160-160h-118.4zM918.4 448h105.6l-160-160-160 160h118.4c0 100.364-49.928 189.508-126.724 244.902l57.584 76.778c100.108-72.926 165.14-189.962 165.14-321.68z" />
|
39 |
+
<glyph unicode="" d="M831.924 753.296v0 0zM834.050 448c104.384 99.81 155.082 197.58 121.354 256-19.26 33.356-63.36 49.296-123.48 49.296v-48c42.144 0 72.766-9.458 81.912-25.296 7.218-12.504 3.2-31.73-1.446-45.658-8.906-26.71-28.288-58.664-56.042-92.404-16.848-20.478-36.27-41.122-57.874-61.642-29.764 25.698-62.876 51.258-98.796 76.058-3.514 43.48-9.090 84.916-16.458 123.518 56.19 16.666 107.186 25.418 148.682 25.422l0.022 48c-0.008 0-0.018 0-0.026 0-45.174-0.004-99.396-9.032-158.874-26.404-34.24 140.318-93.566 233.11-161.024 233.11-67.458 0-126.784-92.792-161.028-233.102-59.474 17.372-113.698 26.398-158.872 26.398-60.12 0-104.248-15.942-123.506-49.296-33.73-58.42 16.966-156.19 121.352-256-104.386-99.808-155.082-197.58-121.352-256 19.26-33.36 63.37-49.294 123.506-49.294 45.172 0 99.396 9.030 158.872 26.4 34.244-140.314 93.568-233.106 161.028-233.106 67.458 0 126.784 92.792 161.028 233.102 59.474-17.374 113.7-26.398 158.874-26.398 60.12 0 104.248 15.944 123.506 49.296 33.724 58.418-16.97 156.192-121.358 256zM762.542 448c-18.62-15.876-38.454-31.584-59.358-46.988 0.53 15.476 0.816 31.142 0.816 46.988 0 15.844-0.286 31.51-0.812 46.988 20.904-15.404 40.738-31.112 59.354-46.988zM637.292 231.132c-23.054 8.196-46.562 17.52-70.27 27.868 13.626 7.262 27.294 14.824 40.974 22.722 13.722 7.922 27.146 16 40.288 24.198-2.882-25.766-6.562-50.76-10.992-74.788zM584 323.292c-23.782-13.728-47.876-26.63-72-38.616-24.124 11.982-48.22 24.884-72 38.616-23.976 13.844-47.192 28.226-69.498 43.012-1.65 26.712-2.502 54.010-2.502 81.696s0.852 54.984 2.502 81.694c22.306 14.786 45.522 29.17 69.498 43.014 23.78 13.728 47.876 26.63 72 38.614 24.124-11.982 48.218-24.884 72-38.614 23.976-13.842 47.192-28.23 69.498-43.014 1.65-26.71 2.502-54.008 2.502-81.694s-0.852-54.984-2.502-81.696c-22.306-14.784-45.522-29.172-69.498-43.012zM375.712 305.92c13.14-8.198 26.564-16.276 40.288-24.198 13.68-7.898 27.346-15.46 40.974-22.722-23.704-10.348-47.214-19.67-70.266-27.864-4.43 24.026-8.112 49.020-10.996 74.784zM320.812 401.010c-20.904 15.406-40.74 31.116-59.358 46.99 18.618 15.876 38.454 31.584 59.358 46.99-0.528-15.48-0.812-31.144-0.812-46.99s0.284-31.512 0.812-46.99zM386.708 664.864c23.052-8.194 46.562-17.518 70.266-27.864-13.626-7.262-27.294-14.824-40.974-22.722-13.722-7.922-27.146-16.002-40.288-24.198 2.884 25.764 6.566 50.758 10.996 74.784zM608 614.278c-13.68 7.898-27.346 15.46-40.972 22.722 23.706 10.346 47.212 19.668 70.268 27.862 4.43-24.024 8.11-49.016 10.992-74.782-13.142 8.196-26.566 16.274-40.288 24.198zM421.18 793.184c15.34 40.908 33.322 73.668 52.002 94.736 9.738 10.986 24.378 24.080 38.818 24.080 14.442 0 29.078-13.094 38.818-24.080 18.68-21.068 36.658-53.828 52.002-94.736 9.312-24.834 17.478-51.978 24.45-80.952-37.136-12.926-75.832-28.824-115.268-47.532-39.438 18.71-78.132 34.608-115.27 47.536 6.97 28.972 15.136 56.116 24.448 80.948zM167.65 541.938c-27.756 33.74-47.136 65.692-56.042 92.404-4.644 13.926-8.664 33.154-1.444 45.658 9.144 15.838 39.776 25.294 81.938 25.296h0.004c41.492 0 92.486-8.752 148.674-25.418-7.368-38.604-12.942-80.040-16.456-123.522-35.92-24.798-69.036-50.36-98.8-76.058-21.604 20.52-41.026 41.162-57.874 61.64zM192.1 190.708c-42.162 0-72.792 9.456-81.936 25.292-7.22 12.504-3.2 31.73 1.444 45.658 8.906 26.708 28.286 58.662 56.042 92.4 16.848 20.48 36.27 41.124 57.874 61.644 29.762-25.702 62.878-51.262 98.798-76.058 3.514-43.482 9.088-84.916 16.456-123.524-56.19-16.662-107.184-25.412-148.678-25.412zM602.82 102.816c-15.342-40.91-33.322-73.668-52.002-94.738-9.74-10.984-24.376-24.078-38.818-24.078-14.44 0-29.080 13.094-38.818 24.078-18.68 21.070-36.662 53.828-52.002 94.736-9.312 24.834-17.478 51.978-24.45 80.952 37.138 12.93 75.832 28.824 115.268 47.536 39.44-18.71 78.13-34.61 115.27-47.538-6.972-28.972-15.136-56.116-24.448-80.948zM912.39 261.656c4.642-13.926 8.664-33.152 1.446-45.656-9.146-15.84-39.778-25.296-81.938-25.296-41.496 0-92.49 8.754-148.678 25.418 7.368 38.606 12.944 80.042 16.458 123.524 35.92 24.8 69.036 50.362 98.796 76.058 21.604-20.522 41.026-41.164 57.874-61.64 27.758-33.744 47.136-65.696 56.042-92.408zM432 448c0 44.183 35.817 80 80 80s80-35.817 80-80c0-44.183-35.817-80-80-80-44.183 0-80 35.817-80 80z" />
|
40 |
+
<glyph unicode="" d="M466.038 402.038l-320 320-146.038-146.038v384h384l-146.038-146.038 320-320zM512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512h128c0-212.078 171.922-384 384-384s384 171.922 384 384c0 212.078-171.922 384-384 384v128z" />
|
41 |
+
<glyph unicode="" d="M640-64l192 192-320 320 320 320-192 192-512-512z" />
|
42 |
+
<glyph unicode="" d="M384 960l-192-192 320-320-320-320 192-192 512 512z" />
|
43 |
+
<glyph unicode="" d="M0 448l1024-448-192 448 192 448z" />
|
44 |
+
<glyph unicode="" d="M1024 448l-1024 448 192-448-192-448z" />
|
45 |
+
<glyph unicode="" d="M768 960l-512-512 512-512-255.998 512z" />
|
46 |
+
<glyph unicode="" d="M256-64l512 512-512 512 256-512z" />
|
47 |
+
<glyph unicode="" d="M640.002 704l-256-256 256-256.002z" />
|
48 |
+
<glyph unicode="" d="M384.002 192l256 256-256 256z" />
|
49 |
+
<glyph unicode="" d="M0 448.002l512-512.002v320h511.998l0.002 384h-512v320l-512-511.998zM152 509.492l16 16v-154.98l-16 16v122.98zM136 402.512l-16 16v58.98l16 16v-90.98zM184 541.492l16 16v-218.982l-16 16v186.982zM216 573.492l16 16v-282.982l-16 16v250.982zM248 605.492l16 16v-346.982l-16 16v314.982zM280 637.492l16 15.998v-410.98l-16 16v378.982zM312 669.49l16 16v-474.98l-16 16v442.98zM344 701.49l16 16v-538.98l-16 16v506.98zM376 733.49l16 16v-602.98l-16 16v570.98zM408 765.49l16 16v-666.98l-16 16v634.98zM104 461.492v-26.98l-13.49 13.49 13.49 13.49zM472 320v256h16v-256h-16zM504 320v256h16v-256h-16zM536 320v256h16v-256h-16zM568 320v256h16v-256h-16zM600 320v256h16v-256h-16zM632 320v256h16v-256h-16zM664 320v256h16v-256h-16zM696 320v256h16v-256h-16zM728 320v256h16v-256h-16zM760 320v256h16v-256h-16zM792 320v256h16v-256h-16zM824 320v256h16v-256h-16zM856 320v256h16v-256h-16zM888 320v256h16v-256h-16zM920 320v256h16v-256h-16zM959.998 320h-7.998v256h8l-0.002-256zM448 576h8v-256h-8v-229.49l-8 8v698.98l8 8v-229.49z" />
|
50 |
+
<glyph unicode="" d="M1024 447.998l-512 512.002v-320h-511.998l-0.002-384h512v-320l512 511.998zM872 386.508l-16-16v154.98l16-16v-122.98zM888 493.488l16-16v-58.98l-16-16v90.98zM840 354.508l-16-16v218.982l16-16v-186.982zM808 322.508l-16-16v282.982l16-16v-250.982zM776 290.508l-16-16v346.982l16-16v-314.982zM744 258.508l-16-15.998v410.98l16-16v-378.982zM712 226.51l-16-16v474.98l16-16v-442.98zM680 194.51l-16-16v538.98l16-16v-506.98zM648 162.51l-16-16v602.98l16-16v-570.98zM616 130.51l-16-16v666.98l16-16v-634.98zM920 434.508v26.98l13.49-13.49-13.49-13.49zM552 576v-256h-16v256h16zM520 576v-256h-16v256h16zM488 576v-256h-16v256h16zM456 576v-256h-16v256h16zM424 576v-256h-16v256h16zM392 576v-256h-16v256h16zM360 576v-256h-16v256h16zM328 576v-256h-16v256h16zM296 576v-256h-16v256h16zM264 576v-256h-16v256h16zM232 576v-256h-16v256h16zM200 576v-256h-16v256h16zM168 576v-256h-16v256h16zM136 576v-256h-16v256h16zM104 576v-256h-16v256h16zM64.002 576h7.998v-256h-8l0.002 256zM576 320h-8v256h8v229.49l8-8v-698.98l-8-8v229.49z" />
|
51 |
+
<glyph unicode="" d="M0 448l512-512v320h511.998l0.002 384h-512v320z" />
|
52 |
+
<glyph unicode="" d="M1024 448l-512 512v-320h-511.998l-0.002-384h512v-320z" />
|
53 |
+
<glyph unicode="" d="M448 704c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 128c-35.348 0-64 28.652-64 64s28.652 64 64 64c35.346 0 64-28.652 64-64s-28.654-64-64-64zM512 448c-114.876 0-208-93.124-208-208s93.124-208 208-208c-229.75 0-416 186.25-416 416s186.25 416 416 416c114.876 0 208-93.124 208-208s-93.124-208-208-208z" />
|
54 |
+
<glyph unicode="" d="M512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156 78.572-78.572 183.038-121.844 294.156-121.844 111.118 0 215.584 43.272 294.156 121.844 78.572 78.572 121.844 183.038 121.844 294.156 0 111.118-43.272 215.584-121.844 294.156-78.572 78.572-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512 0 282.77 229.23 512 512 512zM448 256h128v-128h-128zM448 768h128v-384h-128z" />
|
55 |
+
<glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416zM813.256 493.254l-256.002 256c-24.992 24.994-65.514 24.994-90.508 0s-24.994-65.516 0-90.51l146.744-146.744h-357.49c-35.346 0-64-28.654-64-64s28.654-64 64-64h357.49l-146.746-146.744c-24.994-24.994-24.994-65.518 0-90.512 12.498-12.496 28.878-18.744 45.256-18.744s32.758 6.248 45.254 18.744l256.002 256c24.992 24.994 24.992 65.518 0 90.51z" />
|
56 |
+
<glyph unicode="" d="M512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 32c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM210.744 493.254l256.002 256c24.992 24.994 65.514 24.994 90.508 0s24.994-65.516 0-90.51l-146.744-146.744h357.49c35.346 0 64-28.654 64-64s-28.654-64-64-64h-357.49l146.746-146.744c24.994-24.994 24.994-65.518 0-90.512-12.498-12.496-28.878-18.744-45.256-18.744s-32.758 6.248-45.254 18.744l-256.002 256c-24.992 24.994-24.992 65.518 0 90.51z" />
|
57 |
+
<glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM813.256 402.744l-256.002-256c-12.496-12.496-28.876-18.744-45.254-18.744s-32.758 6.248-45.254 18.744c-24.994 24.994-24.994 65.518 0 90.512l146.744 146.744h-357.49c-35.346 0-64 28.654-64 64s28.654 64 64 64h357.49l-146.746 146.746c-24.994 24.994-24.994 65.516 0 90.51s65.516 24.994 90.508 0l256.002-256c24.994-24.994 24.994-65.518 0.002-90.512z" />
|
58 |
+
<glyph unicode="" d="M512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM210.744 402.744l256.002-256c12.496-12.496 28.876-18.744 45.254-18.744s32.758 6.248 45.254 18.744c24.994 24.994 24.994 65.518 0 90.512l-146.744 146.744h357.49c35.346 0 64 28.654 64 64s-28.654 64-64 64h-357.49l146.746 146.746c24.994 24.994 24.994 65.516 0 90.51s-65.516 24.994-90.508 0l-256.002-256c-24.994-24.994-24.994-65.518-0.002-90.512z" />
|
59 |
+
<glyph unicode="" d="M1023.998-64h-1023.998v1024h1024l-0.002-1024zM128 832v-768h767.998l0.002 768h-768zM576 224l224 224-224 224v-160h-320v-128h320v-160z" />
|
60 |
+
<glyph unicode="" d="M0.002-64h1023.998v1024h-1024l0.002-1024zM896 832v-768h-767.998l-0.002 768h768zM448 224l-224 224 224 224v-160h320v-128h-320v-160z" />
|
61 |
+
<glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM576 224v160h-320v128h320v160l224-224-224-224z" />
|
62 |
+
<glyph unicode="" d="M512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM448 224v160h320v128h-320v160l-224-224 224-224z" />
|
63 |
+
<glyph unicode="" d="M0 640h64v-384h-64zM128 640h64v-384h-64zM256 640h64v-384h-64zM1024 448l-448 448v-256h-192v-384h192v-256z" />
|
64 |
+
<glyph unicode="" d="M960 640h64v-384h-64zM832 640h64v-384h-64zM704 640h64v-384h-64zM0 448l448 448v-256h192v-384h-192v-256z" />
|
65 |
+
<glyph unicode="" d="M864 256c-45.16 0-85.92-18.738-115.012-48.83l-431.004 215.502c1.314 8.252 2.016 16.706 2.016 25.328s-0.702 17.076-2.016 25.326l431.004 215.502c29.092-30.090 69.852-48.828 115.012-48.828 88.366 0 160 71.634 160 160s-71.634 160-160 160-160-71.634-160-160c0-8.622 0.704-17.076 2.016-25.326l-431.004-215.504c-29.092 30.090-69.852 48.83-115.012 48.83-88.366 0-160-71.636-160-160 0-88.368 71.634-160 160-160 45.16 0 85.92 18.738 115.012 48.828l431.004-215.502c-1.312-8.25-2.016-16.704-2.016-25.326 0-88.368 71.634-160 160-160s160 71.632 160 160c0 88.364-71.634 160-160 160z" />
|
66 |
</font>
|
67 |
</defs>
|
68 |
</svg>
|
assets/admin/layout/css/layout-rtl.css
CHANGED
@@ -253,8 +253,8 @@
|
|
253 |
{
|
254 |
width: 235px;
|
255 |
/* float: left;
|
256 |
-
|
257 |
-
|
258 |
}
|
259 |
.page-sidebar-tech-banker.navbar-collapse
|
260 |
{
|
253 |
{
|
254 |
width: 235px;
|
255 |
/* float: left;
|
256 |
+
position: relative;
|
257 |
+
margin-right: -100%;*/
|
258 |
}
|
259 |
.page-sidebar-tech-banker.navbar-collapse
|
260 |
{
|
assets/global/plugins/custom/js/custom.js
CHANGED
@@ -18,248 +18,248 @@
|
|
18 |
|
19 |
, init: function (type, element, options)
|
20 |
{
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
}
|
44 |
|
45 |
, getOptions: function (options)
|
46 |
{
|
47 |
-
|
48 |
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
|
57 |
-
|
58 |
}
|
59 |
|
60 |
, enter: function (e)
|
61 |
{
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
}
|
75 |
|
76 |
, leave: function (e)
|
77 |
{
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
}
|
92 |
|
93 |
, show: function ()
|
94 |
{
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
}
|
151 |
|
152 |
, setContent: function ()
|
153 |
{
|
154 |
-
|
155 |
-
|
156 |
|
157 |
-
|
158 |
-
|
159 |
}
|
160 |
|
161 |
, hide: function ()
|
162 |
{
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
}
|
188 |
|
189 |
, fixTitle: function ()
|
190 |
{
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
}
|
197 |
|
198 |
, hasContent: function ()
|
199 |
{
|
200 |
-
|
201 |
}
|
202 |
|
203 |
, getPosition: function (inside)
|
204 |
{
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
}
|
211 |
|
212 |
, getTitle: function ()
|
213 |
{
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
|
218 |
-
|
219 |
-
|
220 |
|
221 |
-
|
222 |
}
|
223 |
|
224 |
, tip: function ()
|
225 |
{
|
226 |
-
|
227 |
}
|
228 |
|
229 |
, validate: function ()
|
230 |
{
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
}
|
238 |
|
239 |
, enable: function ()
|
240 |
{
|
241 |
-
|
242 |
}
|
243 |
|
244 |
, disable: function ()
|
245 |
{
|
246 |
-
|
247 |
}
|
248 |
|
249 |
, toggleEnabled: function ()
|
250 |
{
|
251 |
-
|
252 |
}
|
253 |
|
254 |
, toggle: function (e)
|
255 |
{
|
256 |
-
|
257 |
-
|
258 |
}
|
259 |
|
260 |
, destroy: function ()
|
261 |
{
|
262 |
-
|
263 |
}
|
264 |
|
265 |
}
|
@@ -274,13 +274,13 @@
|
|
274 |
{
|
275 |
return this.each(function ()
|
276 |
{
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
})
|
285 |
}
|
286 |
|
@@ -336,44 +336,44 @@
|
|
336 |
|
337 |
if (!selector)
|
338 |
{
|
339 |
-
|
340 |
-
|
341 |
}
|
342 |
|
343 |
if ($this.parent('li').hasClass('active'))
|
344 |
-
|
345 |
|
346 |
var $previous = $ul.find('.active:last a')
|
347 |
var hideEvent = $.Event('hide.bs.tab',
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
var showEvent = $.Event('show.bs.tab',
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
|
356 |
$previous.trigger(hideEvent)
|
357 |
$this.trigger(showEvent)
|
358 |
|
359 |
if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented())
|
360 |
-
|
361 |
|
362 |
var $target = $(selector)
|
363 |
|
364 |
this.activate($this.closest('li'), $ul)
|
365 |
this.activate($target, $target.parent(), function ()
|
366 |
{
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
})
|
378 |
}
|
379 |
|
@@ -381,51 +381,51 @@
|
|
381 |
{
|
382 |
var $active = container.find('> .active')
|
383 |
var transition = callback
|
384 |
-
|
385 |
-
|
386 |
|
387 |
function next()
|
388 |
{
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
}
|
423 |
|
424 |
$active.length && transition ?
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
|
430 |
$active.removeClass('in')
|
431 |
}
|
@@ -438,13 +438,13 @@
|
|
438 |
{
|
439 |
return this.each(function ()
|
440 |
{
|
441 |
-
|
442 |
-
|
443 |
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
})
|
449 |
}
|
450 |
|
@@ -474,7 +474,7 @@
|
|
474 |
}
|
475 |
|
476 |
$(document)
|
477 |
-
|
478 |
-
|
479 |
|
480 |
}(jQuery);
|
18 |
|
19 |
, init: function (type, element, options)
|
20 |
{
|
21 |
+
var eventIn
|
22 |
+
, eventOut
|
23 |
+
|
24 |
+
this.type = type
|
25 |
+
this.$element = $(element)
|
26 |
+
this.options = this.getOptions(options)
|
27 |
+
this.enabled = true
|
28 |
+
|
29 |
+
if (this.options.trigger == 'click')
|
30 |
+
{
|
31 |
+
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
|
32 |
+
} else if (this.options.trigger != 'manual')
|
33 |
+
{
|
34 |
+
eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
|
35 |
+
eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
|
36 |
+
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
|
37 |
+
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
|
38 |
+
}
|
39 |
+
|
40 |
+
this.options.selector ?
|
41 |
+
(this._options = $.extend({}, this.options, {trigger: 'manual', selector: ''})) :
|
42 |
+
this.fixTitle()
|
43 |
}
|
44 |
|
45 |
, getOptions: function (options)
|
46 |
{
|
47 |
+
options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
|
48 |
|
49 |
+
if (options.delay && typeof options.delay == 'number')
|
50 |
+
{
|
51 |
+
options.delay = {
|
52 |
+
show: options.delay
|
53 |
+
, hide: options.delay
|
54 |
+
}
|
55 |
+
}
|
56 |
|
57 |
+
return options
|
58 |
}
|
59 |
|
60 |
, enter: function (e)
|
61 |
{
|
62 |
+
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
63 |
+
|
64 |
+
if (!self.options.delay || !self.options.delay.show)
|
65 |
+
return self.show()
|
66 |
+
|
67 |
+
clearTimeout(this.timeout)
|
68 |
+
self.hoverState = 'in'
|
69 |
+
this.timeout = setTimeout(function ()
|
70 |
+
{
|
71 |
+
if (self.hoverState == 'in')
|
72 |
+
self.show()
|
73 |
+
}, self.options.delay.show)
|
74 |
}
|
75 |
|
76 |
, leave: function (e)
|
77 |
{
|
78 |
+
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
79 |
+
|
80 |
+
if (this.timeout)
|
81 |
+
clearTimeout(this.timeout)
|
82 |
+
if (!self.options.delay || !self.options.delay.hide)
|
83 |
+
return self.hide()
|
84 |
+
|
85 |
+
self.hoverState = 'out'
|
86 |
+
this.timeout = setTimeout(function ()
|
87 |
+
{
|
88 |
+
if (self.hoverState == 'out')
|
89 |
+
self.hide()
|
90 |
+
}, self.options.delay.hide)
|
91 |
}
|
92 |
|
93 |
, show: function ()
|
94 |
{
|
95 |
+
var $tip
|
96 |
+
, inside
|
97 |
+
, pos
|
98 |
+
, actualWidth
|
99 |
+
, actualHeight
|
100 |
+
, placement
|
101 |
+
, tp
|
102 |
+
|
103 |
+
if (this.hasContent() && this.enabled)
|
104 |
+
{
|
105 |
+
$tip = this.tip()
|
106 |
+
this.setContent()
|
107 |
+
|
108 |
+
if (this.options.animation)
|
109 |
+
{
|
110 |
+
$tip.addClass('fade')
|
111 |
+
}
|
112 |
+
|
113 |
+
placement = typeof this.options.placement == 'function' ?
|
114 |
+
this.options.placement.call(this, $tip[0], this.$element[0]) :
|
115 |
+
this.options.placement
|
116 |
+
|
117 |
+
inside = /in/.test(placement)
|
118 |
+
|
119 |
+
$tip
|
120 |
+
.detach()
|
121 |
+
.css({top: 0, left: 0, display: 'block'})
|
122 |
+
.insertAfter(this.$element)
|
123 |
+
|
124 |
+
pos = this.getPosition(inside)
|
125 |
+
|
126 |
+
actualWidth = $tip[0].offsetWidth
|
127 |
+
actualHeight = $tip[0].offsetHeight
|
128 |
+
|
129 |
+
switch (inside ? placement.split(' ')[1] : placement)
|
130 |
+
{
|
131 |
+
case 'bottom':
|
132 |
+
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
|
133 |
+
break
|
134 |
+
case 'top':
|
135 |
+
tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
|
136 |
+
break
|
137 |
+
case 'left':
|
138 |
+
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
|
139 |
+
break
|
140 |
+
case 'right':
|
141 |
+
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
|
142 |
+
break
|
143 |
+
}
|
144 |
+
|
145 |
+
$tip
|
146 |
+
.offset(tp)
|
147 |
+
.addClass(placement)
|
148 |
+
.addClass('in')
|
149 |
+
}
|
150 |
}
|
151 |
|
152 |
, setContent: function ()
|
153 |
{
|
154 |
+
var $tip = this.tip()
|
155 |
+
, title = this.getTitle()
|
156 |
|
157 |
+
$tip.find('.tooltip_tip-inner')[this.options.html ? 'html' : 'text'](title)
|
158 |
+
$tip.removeClass('fade in top bottom left right')
|
159 |
}
|
160 |
|
161 |
, hide: function ()
|
162 |
{
|
163 |
+
var that = this
|
164 |
+
, $tip = this.tip()
|
165 |
+
|
166 |
+
$tip.removeClass('in')
|
167 |
+
|
168 |
+
function removeWithAnimation()
|
169 |
+
{
|
170 |
+
var timeout = setTimeout(function ()
|
171 |
+
{
|
172 |
+
$tip.off($.support.transition.end).detach()
|
173 |
+
}, 500)
|
174 |
+
|
175 |
+
$tip.one($.support.transition.end, function ()
|
176 |
+
{
|
177 |
+
clearTimeout(timeout)
|
178 |
+
$tip.detach()
|
179 |
+
})
|
180 |
+
}
|
181 |
+
|
182 |
+
$.support.transition && this.$tip.hasClass('fade') ?
|
183 |
+
removeWithAnimation() :
|
184 |
+
$tip.detach()
|
185 |
+
|
186 |
+
return this
|
187 |
}
|
188 |
|
189 |
, fixTitle: function ()
|
190 |
{
|
191 |
+
var $e = this.$element
|
192 |
+
if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string')
|
193 |
+
{
|
194 |
+
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
|
195 |
+
}
|
196 |
}
|
197 |
|
198 |
, hasContent: function ()
|
199 |
{
|
200 |
+
return this.getTitle()
|
201 |
}
|
202 |
|
203 |
, getPosition: function (inside)
|
204 |
{
|
205 |
+
return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()),
|
206 |
+
{
|
207 |
+
width: this.$element[0].offsetWidth
|
208 |
+
, height: this.$element[0].offsetHeight
|
209 |
+
})
|
210 |
}
|
211 |
|
212 |
, getTitle: function ()
|
213 |
{
|
214 |
+
var title
|
215 |
+
, $e = this.$element
|
216 |
+
, o = this.options
|
217 |
|
218 |
+
title = $e.attr('data-original-title')
|
219 |
+
|| (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
|
220 |
|
221 |
+
return title
|
222 |
}
|
223 |
|
224 |
, tip: function ()
|
225 |
{
|
226 |
+
return this.$tip = this.$tip || $(this.options.template)
|
227 |
}
|
228 |
|
229 |
, validate: function ()
|
230 |
{
|
231 |
+
if (!this.$element[0].parentNode)
|
232 |
+
{
|
233 |
+
this.hide()
|
234 |
+
this.$element = null
|
235 |
+
this.options = null
|
236 |
+
}
|
237 |
}
|
238 |
|
239 |
, enable: function ()
|
240 |
{
|
241 |
+
this.enabled = true
|
242 |
}
|
243 |
|
244 |
, disable: function ()
|
245 |
{
|
246 |
+
this.enabled = false
|
247 |
}
|
248 |
|
249 |
, toggleEnabled: function ()
|
250 |
{
|
251 |
+
this.enabled = !this.enabled
|
252 |
}
|
253 |
|
254 |
, toggle: function (e)
|
255 |
{
|
256 |
+
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
257 |
+
self[self.tip().hasClass('in') ? 'hide' : 'show']()
|
258 |
}
|
259 |
|
260 |
, destroy: function ()
|
261 |
{
|
262 |
+
this.hide().$element.off('.' + this.type).removeData(this.type)
|
263 |
}
|
264 |
|
265 |
}
|
274 |
{
|
275 |
return this.each(function ()
|
276 |
{
|
277 |
+
var $this = $(this)
|
278 |
+
, data = $this.data('tooltip_tip')
|
279 |
+
, options = typeof option == 'object' && option
|
280 |
+
if (!data)
|
281 |
+
$this.data('tooltip_tip', (data = new Tooltip(this, options)))
|
282 |
+
if (typeof option == 'string')
|
283 |
+
data[option]()
|
284 |
})
|
285 |
}
|
286 |
|
336 |
|
337 |
if (!selector)
|
338 |
{
|
339 |
+
selector = $this.attr('href')
|
340 |
+
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
341 |
}
|
342 |
|
343 |
if ($this.parent('li').hasClass('active'))
|
344 |
+
return
|
345 |
|
346 |
var $previous = $ul.find('.active:last a')
|
347 |
var hideEvent = $.Event('hide.bs.tab',
|
348 |
+
{
|
349 |
+
relatedTarget: $this[0]
|
350 |
+
})
|
351 |
var showEvent = $.Event('show.bs.tab',
|
352 |
+
{
|
353 |
+
relatedTarget: $previous[0]
|
354 |
+
})
|
355 |
|
356 |
$previous.trigger(hideEvent)
|
357 |
$this.trigger(showEvent)
|
358 |
|
359 |
if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented())
|
360 |
+
return
|
361 |
|
362 |
var $target = $(selector)
|
363 |
|
364 |
this.activate($this.closest('li'), $ul)
|
365 |
this.activate($target, $target.parent(), function ()
|
366 |
{
|
367 |
+
$previous.trigger
|
368 |
+
({
|
369 |
+
type: 'hidden.bs.tab',
|
370 |
+
relatedTarget: $this[0]
|
371 |
+
})
|
372 |
+
$this.trigger(
|
373 |
+
{
|
374 |
+
type: 'shown.bs.tab',
|
375 |
+
relatedTarget: $previous[0]
|
376 |
+
})
|
377 |
})
|
378 |
}
|
379 |
|
381 |
{
|
382 |
var $active = container.find('> .active')
|
383 |
var transition = callback
|
384 |
+
&& $.support.transition
|
385 |
+
&& ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
|
386 |
|
387 |
function next()
|
388 |
{
|
389 |
+
$active
|
390 |
+
.removeClass('active')
|
391 |
+
.find('> .dropdown-menu > .active')
|
392 |
+
.removeClass('active')
|
393 |
+
.end()
|
394 |
+
.find('[data-toggle="tab"]')
|
395 |
+
.attr('aria-expanded', false)
|
396 |
+
|
397 |
+
element
|
398 |
+
.addClass('active')
|
399 |
+
.find('[data-toggle="tab"]')
|
400 |
+
.attr('aria-expanded', true)
|
401 |
+
|
402 |
+
if (transition)
|
403 |
+
{
|
404 |
+
element[0].offsetWidth // reflow for transition
|
405 |
+
element.addClass('in')
|
406 |
+
} else
|
407 |
+
{
|
408 |
+
element.removeClass('fade')
|
409 |
+
}
|
410 |
+
|
411 |
+
if (element.parent('.dropdown-menu').length)
|
412 |
+
{
|
413 |
+
element
|
414 |
+
.closest('li.dropdown')
|
415 |
+
.addClass('active')
|
416 |
+
.end()
|
417 |
+
.find('[data-toggle="tab"]')
|
418 |
+
.attr('aria-expanded', true)
|
419 |
+
}
|
420 |
+
|
421 |
+
callback && callback()
|
422 |
}
|
423 |
|
424 |
$active.length && transition ?
|
425 |
+
$active
|
426 |
+
.one('bsTransitionEnd', next)
|
427 |
+
.emulateTransitionEnd(Tab.TRANSITION_DURATION) :
|
428 |
+
next()
|
429 |
|
430 |
$active.removeClass('in')
|
431 |
}
|
438 |
{
|
439 |
return this.each(function ()
|
440 |
{
|
441 |
+
var $this = $(this)
|
442 |
+
var data = $this.data('bs.tab')
|
443 |
|
444 |
+
if (!data)
|
445 |
+
$this.data('bs.tab', (data = new Tab(this)))
|
446 |
+
if (typeof option == 'string')
|
447 |
+
data[option]()
|
448 |
})
|
449 |
}
|
450 |
|
474 |
}
|
475 |
|
476 |
$(document)
|
477 |
+
.on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
|
478 |
+
.on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
|
479 |
|
480 |
}(jQuery);
|
assets/global/plugins/datatables/media/js/jquery.datatables.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
!function(t, e, n){!function(t){"use strict"; "function" == typeof define && define.amd?define("datatables", ["jquery"], t):"object" == typeof exports?module.exports = t(require("jquery")):jQuery && !jQuery.fn.dataTable && t(jQuery)}(function(a){"use strict"; function r(t){var e, n, o = "a aa ai ao as b fn i m o s ", i = {}; a.each(t, function(a, s){e = a.match(/^([^A-Z]+?)([A-Z])/), e && - 1 !== o.indexOf(e[1] + " ") && (n = a.replace(e[0], e[2].toLowerCase()), i[n] = a, "o" === e[1] && r(t[a]))}), t._hungarianMap = i}function o(t, e, i){t._hungarianMap || r(t); var s; a.each(e, function(r, l){s = t._hungarianMap[r], s === n || !i && e[s] !== n || ("o" === s.charAt(0)?(e[s] || (e[s] = {}), a.extend(!0, e[s], e[r]), o(t[s], e[s], i)):e[s] = e[r])})}function i(t){var e = qt.defaults.oLanguage, n = t.sZeroRecords; !t.sEmptyTable && n && "No data available in table" === e.sEmptyTable && Nt(t, t, "sZeroRecords", "sEmptyTable"), !t.sLoadingRecords && n && "Loading..." === e.sLoadingRecords && Nt(t, t, "sZeroRecords", "sLoadingRecords"), t.sInfoThousands && (t.sThousands = t.sInfoThousands); var a = t.sDecimal; a && Xt(a)}function s(t){be(t, "ordering", "bSort"), be(t, "orderMulti", "bSortMulti"), be(t, "orderClasses", "bSortClasses"), be(t, "orderCellsTop", "bSortCellsTop"), be(t, "order", "aaSorting"), be(t, "orderFixed", "aaSortingFixed"), be(t, "paging", "bPaginate"), be(t, "pagingType", "sPaginationType"), be(t, "pageLength", "iDisplayLength"), be(t, "searching", "bFilter"), "boolean" == typeof t.sScrollX && (t.sScrollX = t.sScrollX?"100%":""); var e = t.aoSearchCols; if (e)for (var n = 0, a = e.length; a > n; n++)e[n] && o(qt.models.oSearch, e[n])}function l(t){be(t, "orderable", "bSortable"), be(t, "orderData", "aDataSort"), be(t, "orderSequence", "asSorting"), be(t, "orderDataType", "sortDataType"); var e = t.aDataSort; e && !a.isArray(e) && (t.aDataSort = [e])}function u(t){if (!qt.__browser){var e = {}; qt.__browser = e; var n = a("<div/>").css({position:"fixed", top:0, left:0, height:1, width:1, overflow:"hidden"}).append(a("<div/>").css({position:"absolute", top:1, left:1, width:100, overflow:"scroll"}).append(a("<div/>").css({width:"100%", height:10}))).appendTo("body"), r = n.children(), o = r.children(); e.barWidth = r[0].offsetWidth - r[0].clientWidth, e.bScrollOversize = 100 === o[0].offsetWidth && 100 !== r[0].clientWidth, e.bScrollbarLeft = 1 !== Math.round(o.offset().left), e.bBounding = n[0].getBoundingClientRect().width?!0:!1, n.remove()}a.extend(t.oBrowser, qt.__browser), t.oScroll.iBarWidth = qt.__browser.barWidth}function c(t, e, a, r, o, i){var s, l = r, u = !1; for (a !== n && (s = a, u = !0); l !== o; )t.hasOwnProperty(l) && (s = u?e(s, t[l], l, t):t[l], u = !0, l += i); return s}function f(t, n){var r = qt.defaults.column, o = t.aoColumns.length, i = a.extend({}, qt.models.oColumn, r, {nTh:n?n:e.createElement("th"), sTitle:r.sTitle?r.sTitle:n?n.innerHTML:"", aDataSort:r.aDataSort?r.aDataSort:[o], mData:r.mData?r.mData:o, idx:o}); t.aoColumns.push(i); var s = t.aoPreSearchCols; s[o] = a.extend({}, qt.models.oSearch, s[o]), d(t, o, a(n).data())}function d(t, e, r){var i = t.aoColumns[e], s = t.oClasses, u = a(i.nTh); if (!i.sWidthOrig){i.sWidthOrig = u.attr("width") || null; var c = (u.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/); c && (i.sWidthOrig = c[1])}r !== n && null !== r && (l(r), o(qt.defaults.column, r), r.mDataProp === n || r.mData || (r.mData = r.mDataProp), r.sType && (i._sManualType = r.sType), r.className && !r.sClass && (r.sClass = r.className), a.extend(i, r), Nt(i, r, "sWidth", "sWidthOrig"), r.iDataSort !== n && (i.aDataSort = [r.iDataSort]), Nt(i, r, "aDataSort")); var f = i.mData, d = I(f), h = i.mRender?I(i.mRender):null, p = function(t){return"string" == typeof t && - 1 !== t.indexOf("@")}; i._bAttrSrc = a.isPlainObject(f) && (p(f.sort) || p(f.type) || p(f.filter)), i.fnGetData = function(t, e, a){var r = d(t, e, n, a); return h && e?h(r, e, t, a):r}, i.fnSetData = function(t, e, n){return A(f)(t, e, n)}, "number" != typeof f && (t._rowReadObject = !0), t.oFeatures.bSort || (i.bSortable = !1, u.addClass(s.sSortableNone)); var g = - 1 !== a.inArray("asc", i.asSorting), b = - 1 !== a.inArray("desc", i.asSorting); i.bSortable && (g || b)?g && !b?(i.sSortingClass = s.sSortableAsc, i.sSortingClassJUI = s.sSortJUIAscAllowed):!g && b?(i.sSortingClass = s.sSortableDesc, i.sSortingClassJUI = s.sSortJUIDescAllowed):(i.sSortingClass = s.sSortable, i.sSortingClassJUI = s.sSortJUI):(i.sSortingClass = s.sSortableNone, i.sSortingClassJUI = "")}function h(t){if (t.oFeatures.bAutoWidth !== !1){var e = t.aoColumns; St(t); for (var n = 0, a = e.length; a > n; n++)e[n].nTh.style.width = e[n].sWidth}var r = t.oScroll; ("" !== r.sY || "" !== r.sX) && bt(t), Wt(t, null, "column-sizing", [t])}function p(t, e){var n = v(t, "bVisible"); return"number" == typeof n[e]?n[e]:null}function g(t, e){var n = v(t, "bVisible"), r = a.inArray(e, n); return - 1 !== r?r:null}function b(t){return v(t, "bVisible").length}function v(t, e){var n = []; return a.map(t.aoColumns, function(t, a){t[e] && n.push(a)}), n}function S(t){var e, a, r, o, i, s, l, u, c, f = t.aoColumns, d = t.aoData, h = qt.ext.type.detect; for (e = 0, a = f.length; a > e; e++)if (l = f[e], c = [], !l.sType && l._sManualType)l.sType = l._sManualType; else if (!l.sType){for (r = 0, o = h.length; o > r; r++){for (i = 0, s = d.length; s > i && (c[i] === n && (c[i] = w(t, i, e, "type")), u = h[r](c[i], t), u || r === h.length - 1) && "html" !== u; i++); if (u){l.sType = u; break}}l.sType || (l.sType = "string")}}function m(t, e, r, o){var i, s, l, u, c, d, h, p = t.aoColumns; if (e)for (i = e.length - 1; i >= 0; i--){h = e[i]; var g = h.targets !== n?h.targets:h.aTargets; for (a.isArray(g) || (g = [g]), l = 0, u = g.length; u > l; l++)if ("number" == typeof g[l] && g[l] >= 0){for (; p.length <= g[l]; )f(t); o(g[l], h)} else if ("number" == typeof g[l] && g[l] < 0)o(p.length + g[l], h); else if ("string" == typeof g[l])for (c = 0, d = p.length; d > c; c++)("_all" == g[l] || a(p[c].nTh).hasClass(g[l])) && o(c, h)}if (r)for (i = 0, s = r.length; s > i; i++)o(i, r[i])}function D(t, e, r, o){var i = t.aoData.length, s = a.extend(!0, {}, qt.models.oRow, {src:r?"dom":"data", idx:i}); s._aData = e, t.aoData.push(s); for (var l = t.aoColumns, u = 0, c = l.length; c > u; u++)l[u].sType = null; t.aiDisplayMaster.push(i); var f = t.rowIdFn(e); return f !== n && (t.aIds[f] = s), (r || !t.oFeatures.bDeferRender) && H(t, i, r, o), i}function y(t, e){var n; return e instanceof a || (e = a(e)), e.map(function(e, a){return n = j(t, a), D(t, n.data, a, n.cells)})}function _(t, e){return e._DT_RowIndex !== n?e._DT_RowIndex:null}function T(t, e, n){return a.inArray(n, t.aoData[e].anCells)}function w(t, e, a, r){var o = t.iDraw, i = t.aoColumns[a], s = t.aoData[e]._aData, l = i.sDefaultContent, u = i.fnGetData(s, r, {settings:t, row:e, col:a}); if (u === n)return t.iDrawError != o && null === l && (Ht(t, 0, "Requested unknown parameter " + ("function" == typeof i.mData?"{function}":"'" + i.mData + "'") + " for row " + e, 4), t.iDrawError = o), l; if (u !== s && null !== u || null === l){if ("function" == typeof u)return u.call(s)} else u = l; return null === u && "display" == r?"":u}function C(t, e, n, a){var r = t.aoColumns[n], o = t.aoData[e]._aData; r.fnSetData(o, a, {settings:t, row:e, col:n})}function x(t){return a.map(t.match(/(\\.|[^\.])+/g) || [""], function(t){return t.replace(/\\./g, ".")})}function I(t){if (a.isPlainObject(t)){var e = {}; return a.each(t, function(t, n){n && (e[t] = I(n))}), function(t, a, r, o){var i = e[a] || e._; return i !== n?i(t, a, r, o):t}}if (null === t)return function(t){return t}; if ("function" == typeof t)return function(e, n, a, r){return t(e, n, a, r)}; if ("string" != typeof t || - 1 === t.indexOf(".") && - 1 === t.indexOf("[") && - 1 === t.indexOf("("))return function(e, n){return e[t]}; var r = function(t, e, o){var i, s, l, u; if ("" !== o)for (var c = x(o), f = 0, d = c.length; d > f; f++){if (i = c[f].match(ve), s = c[f].match(Se), i){if (c[f] = c[f].replace(ve, ""), "" !== c[f] && (t = t[c[f]]), l = [], c.splice(0, f + 1), u = c.join("."), a.isArray(t))for (var h = 0, p = t.length; p > h; h++)l.push(r(t[h], e, u)); var g = i[0].substring(1, i[0].length - 1); t = "" === g?l:l.join(g); break}if (s)c[f] = c[f].replace(Se, ""), t = t[c[f]](); else{if (null === t || t[c[f]] === n)return n; t = t[c[f]]}}return t}; return function(e, n){return r(e, n, t)}}function A(t){if (a.isPlainObject(t))return A(t._); if (null === t)return function(){}; if ("function" == typeof t)return function(e, n, a){t(e, "set", n, a)}; if ("string" != typeof t || - 1 === t.indexOf(".") && - 1 === t.indexOf("[") && - 1 === t.indexOf("("))return function(e, n){e[t] = n}; var e = function(t, r, o){for (var i, s, l, u, c, f = x(o), d = f[f.length - 1], h = 0, p = f.length - 1; p > h; h++){if (s = f[h].match(ve), l = f[h].match(Se), s){if (f[h] = f[h].replace(ve, ""), t[f[h]] = [], i = f.slice(), i.splice(0, h + 1), c = i.join("."), a.isArray(r))for (var g = 0, b = r.length; b > g; g++)u = {}, e(u, r[g], c), t[f[h]].push(u); else t[f[h]] = r; return}l && (f[h] = f[h].replace(Se, ""), t = t[f[h]](r)), (null === t[f[h]] || t[f[h]] === n) && (t[f[h]] = {}), t = t[f[h]]}d.match(Se)?t = t[d.replace(Se, "")](r):t[d.replace(ve, "")] = r}; return function(n, a){return e(n, a, t)}}function F(t){return ce(t.aoData, "_aData")}function L(t){t.aoData.length = 0, t.aiDisplayMaster.length = 0, t.aiDisplay.length = 0, t.aIds = {}}function P(t, e, a){for (var r = - 1, o = 0, i = t.length; i > o; o++)t[o] == e?r = o:t[o] > e && t[o]--; - 1 != r && a === n && t.splice(r, 1)}function R(t, e, a, r){var o, i, s = t.aoData[e], l = function(n, a){for (; n.childNodes.length; )n.removeChild(n.firstChild); n.innerHTML = w(t, e, a, "display")}; if ("dom" !== a && (a && "auto" !== a || "dom" !== s.src)){var u = s.anCells; if (u)if (r !== n)l(u[r], r); else for (o = 0, i = u.length; i > o; o++)l(u[o], o)} else s._aData = j(t, s, r, r === n?n:s._aData).data; s._aSortData = null, s._aFilterData = null; var c = t.aoColumns; if (r !== n)c[r].sType = null; else{for (o = 0, i = c.length; i > o; o++)c[o].sType = null; N(t, s)}}function j(t, e, r, o){var i, s, l, u = [], c = e.firstChild, f = 0, d = t.aoColumns, h = t._rowReadObject; o = o !== n?o:h?{}:[]; var p = function(t, e){if ("string" == typeof t){var n = t.indexOf("@"); if ( - 1 !== n){var a = t.substring(n + 1), r = A(t); r(o, e.getAttribute(a))}}}, g = function(t){if (r === n || r === f)if (s = d[f], l = a.trim(t.innerHTML), s && s._bAttrSrc){var e = A(s.mData._); e(o, l), p(s.mData.sort, t), p(s.mData.type, t), p(s.mData.filter, t)} else h?(s._setter || (s._setter = A(s.mData)), s._setter(o, l)):o[f] = l; f++}; if (c)for (; c; )i = c.nodeName.toUpperCase(), ("TD" == i || "TH" == i) && (g(c), u.push(c)), c = c.nextSibling; else{u = e.anCells; for (var b = 0, v = u.length; v > b; b++)g(u[b])}var S = c?e:e.nTr; if (S){var m = S.getAttribute("id"); m && A(t.rowId)(o, m)}return{data:o, cells:u}}function H(t, n, a, r){var o, i, s, l, u, c = t.aoData[n], f = c._aData, d = []; if (null === c.nTr){for (o = a || e.createElement("tr"), c.nTr = o, c.anCells = d, o._DT_RowIndex = n, N(t, c), l = 0, u = t.aoColumns.length; u > l; l++)s = t.aoColumns[l], i = a?r[l]:e.createElement(s.sCellType), d.push(i), (!a || s.mRender || s.mData !== l) && (i.innerHTML = w(t, n, l, "display")), s.sClass && (i.className += " " + s.sClass), s.bVisible && !a?o.appendChild(i):!s.bVisible && a && i.parentNode.removeChild(i), s.fnCreatedCell && s.fnCreatedCell.call(t.oInstance, i, w(t, n, l), f, n, l); Wt(t, "aoRowCreatedCallback", null, [o, f, n])}c.nTr.setAttribute("role", "row")}function N(t, e){var n = e.nTr, r = e._aData; if (n){var o = t.rowIdFn(r); if (o && (n.id = o), r.DT_RowClass){var i = r.DT_RowClass.split(" "); e.__rowc = e.__rowc?ge(e.__rowc.concat(i)):i, a(n).removeClass(e.__rowc.join(" ")).addClass(r.DT_RowClass)}r.DT_RowAttr && a(n).attr(r.DT_RowAttr), r.DT_RowData && a(n).data(r.DT_RowData)}}function k(t){var e, n, r, o, i, s = t.nTHead, l = t.nTFoot, u = 0 === a("th, td", s).length, c = t.oClasses, f = t.aoColumns; for (u && (o = a("<tr/>").appendTo(s)), e = 0, n = f.length; n > e; e++)i = f[e], r = a(i.nTh).addClass(i.sClass), u && r.appendTo(o), t.oFeatures.bSort && (r.addClass(i.sSortingClass), i.bSortable !== !1 && (r.attr("tabindex", t.iTabIndex).attr("aria-controls", t.sTableId), At(t, i.nTh, e))), i.sTitle != r[0].innerHTML && r.html(i.sTitle), Et(t, "header")(t, r, i, c); if (u && E(t.aoHeader, s), a(s).find(">tr").attr("role", "row"), a(s).find(">tr>th, >tr>td").addClass(c.sHeaderTH), a(l).find(">tr>th, >tr>td").addClass(c.sFooterTH), null !== l){var d = t.aoFooter[0]; for (e = 0, n = d.length; n > e; e++)i = f[e], i.nTf = d[e].cell, i.sClass && a(i.nTf).addClass(i.sClass)}}function O(t, e, r){var o, i, s, l, u, c, f, d, h, p = [], g = [], b = t.aoColumns.length; if (e){for (r === n && (r = !1), o = 0, i = e.length; i > o; o++){for (p[o] = e[o].slice(), p[o].nTr = e[o].nTr, s = b - 1; s >= 0; s--)t.aoColumns[s].bVisible || r || p[o].splice(s, 1); g.push([])}for (o = 0, i = p.length; i > o; o++){if (f = p[o].nTr)for (; c = f.firstChild; )f.removeChild(c); for (s = 0, l = p[o].length; l > s; s++)if (d = 1, h = 1, g[o][s] === n){for (f.appendChild(p[o][s].cell), g[o][s] = 1; p[o + d] !== n && p[o][s].cell == p[o + d][s].cell; )g[o + d][s] = 1, d++; for (; p[o][s + h] !== n && p[o][s].cell == p[o][s + h].cell; ){for (u = 0; d > u; u++)g[o + u][s + h] = 1; h++}a(p[o][s].cell).attr("rowspan", d).attr("colspan", h)}}}}function M(t){var e = Wt(t, "aoPreDrawCallback", "preDraw", [t]); if ( - 1 !== a.inArray(!1, e))return void pt(t, !1); var r = [], o = 0, i = t.asStripeClasses, s = i.length, l = (t.aoOpenRows.length, t.oLanguage), u = t.iInitDisplayStart, c = "ssp" == Bt(t), f = t.aiDisplay; t.bDrawing = !0, u !== n && - 1 !== u && (t._iDisplayStart = c?u:u >= t.fnRecordsDisplay()?0:u, t.iInitDisplayStart = - 1); var d = t._iDisplayStart, h = t.fnDisplayEnd(); if (t.bDeferLoading)t.bDeferLoading = !1, t.iDraw++, pt(t, !1); else if (c){if (!t.bDestroying && !X(t))return} else t.iDraw++; if (0 !== f.length)for (var p = c?0:d, g = c?t.aoData.length:h, v = p; g > v; v++){var S = f[v], m = t.aoData[S]; null === m.nTr && H(t, S); var D = m.nTr; if (0 !== s){var y = i[o % s]; m._sRowStripe != y && (a(D).removeClass(m._sRowStripe).addClass(y), m._sRowStripe = y)}Wt(t, "aoRowCallback", null, [D, m._aData, o, v]), r.push(D), o++} else{var _ = l.sZeroRecords; 1 == t.iDraw && "ajax" == Bt(t)?_ = l.sLoadingRecords:l.sEmptyTable && 0 === t.fnRecordsTotal() && (_ = l.sEmptyTable), r[0] = a("<tr/>", {"class":s?i[0]:""}).append(a("<td />", {valign:"top", colSpan:b(t), "class":t.oClasses.sRowEmpty}).html(_))[0]}Wt(t, "aoHeaderCallback", "header", [a(t.nTHead).children("tr")[0], F(t), d, h, f]), Wt(t, "aoFooterCallback", "footer", [a(t.nTFoot).children("tr")[0], F(t), d, h, f]); var T = a(t.nTBody); T.children().detach(), T.append(a(r)), Wt(t, "aoDrawCallback", "draw", [t]), t.bSorted = !1, t.bFiltered = !1, t.bDrawing = !1}function W(t, e){var n = t.oFeatures, a = n.bSort, r = n.bFilter; a && Ct(t), r?z(t, t.oPreviousSearch):t.aiDisplay = t.aiDisplayMaster.slice(), e !== !0 && (t._iDisplayStart = 0), t._drawHold = e, M(t), t._drawHold = !1}function U(t){var e = t.oClasses, n = a(t.nTable), r = a("<div/>").insertBefore(n), o = t.oFeatures, i = a("<div/>", {id:t.sTableId + "_wrapper", "class":e.sWrapper + (t.nTFoot?"":" " + e.sNoFooter)}); t.nHolding = r[0], t.nTableWrapper = i[0], t.nTableReinsertBefore = t.nTable.nextSibling; for (var s, l, u, c, f, d, h = t.sDom.split(""), p = 0; p < h.length; p++){if (s = null, l = h[p], "<" == l){if (u = a("<div/>")[0], c = h[p + 1], "'" == c || '"' == c){for (f = "", d = 2; h[p + d] != c; )f += h[p + d], d++; if ("H" == f?f = e.sJUIHeader:"F" == f && (f = e.sJUIFooter), - 1 != f.indexOf(".")){var g = f.split("."); u.id = g[0].substr(1, g[0].length - 1), u.className = g[1]} else"#" == f.charAt(0)?u.id = f.substr(1, f.length - 1):u.className = f; p += d}i.append(u), i = a(u)} else if (">" == l)i = i.parent(); else if ("l" == l && o.bPaginate && o.bLengthChange)s = ct(t); else if ("f" == l && o.bFilter)s = $(t); else if ("r" == l && o.bProcessing)s = ht(t); else if ("t" == l)s = gt(t); else if ("i" == l && o.bInfo)s = rt(t); else if ("p" == l && o.bPaginate)s = ft(t); else if (0 !== qt.ext.feature.length)for (var b = qt.ext.feature, v = 0, S = b.length; S > v; v++)if (l == b[v].cFeature){s = b[v].fnInit(t); break}if (s){var m = t.aanFeatures; m[l] || (m[l] = []), m[l].push(s), i.append(s)}}r.replaceWith(i), t.nHolding = null}function E(t, e){var n, r, o, i, s, l, u, c, f, d, h, p = a(e).children("tr"), g = function(t, e, n){for (var a = t[e]; a[n]; )n++; return n}; for (t.splice(0, t.length), o = 0, l = p.length; l > o; o++)t.push([]); for (o = 0, l = p.length; l > o; o++)for (n = p[o], c = 0, r = n.firstChild; r; ){if ("TD" == r.nodeName.toUpperCase() || "TH" == r.nodeName.toUpperCase())for (f = 1 * r.getAttribute("colspan"), d = 1 * r.getAttribute("rowspan"), f = f && 0 !== f && 1 !== f?f:1, d = d && 0 !== d && 1 !== d?d:1, u = g(t, o, c), h = 1 === f?!0:!1, s = 0; f > s; s++)for (i = 0; d > i; i++)t[o + i][u + s] = {cell:r, unique:h}, t[o + i].nTr = n; r = r.nextSibling}}function B(t, e, n){var a = []; n || (n = t.aoHeader, e && (n = [], E(n, e))); for (var r = 0, o = n.length; o > r; r++)for (var i = 0, s = n[r].length; s > i; i++)!n[r][i].unique || a[i] && t.bSortCellsTop || (a[i] = n[r][i].cell); return a}function J(t, e, n){if (Wt(t, "aoServerParams", "serverParams", [e]), e && a.isArray(e)){var r = {}, o = /(.*?)\[\]$/; a.each(e, function(t, e){var n = e.name.match(o); if (n){var a = n[0]; r[a] || (r[a] = []), r[a].push(e.value)} else r[e.name] = e.value}), e = r}var i, s = t.ajax, l = t.oInstance, u = function(e){Wt(t, null, "xhr", [t, e, t.jqXHR]), n(e)}; if (a.isPlainObject(s) && s.data){i = s.data; var c = a.isFunction(i)?i(e, t):i; e = a.isFunction(i) && c?c:a.extend(!0, e, c), delete s.data}var f = {data:e, success:function(e){var n = e.error || e.sError; n && Ht(t, 0, n), t.json = e, u(e)}, dataType:"json", cache:!1, type:t.sServerMethod, error:function(e, n, r){var o = Wt(t, null, "xhr", [t, null, t.jqXHR]); - 1 === a.inArray(!0, o) && ("parsererror" == n?Ht(t, 0, "Invalid JSON response", 1):4 === e.readyState && Ht(t, 0, "Ajax error", 7)), pt(t, !1)}}; t.oAjaxData = e, Wt(t, null, "preXhr", [t, e]), t.fnServerData?t.fnServerData.call(l, t.sAjaxSource, a.map(e, function(t, e){return{name:e, value:t}}), u, t):t.sAjaxSource || "string" == typeof s?t.jqXHR = a.ajax(a.extend(f, {url:s || t.sAjaxSource})):a.isFunction(s)?t.jqXHR = s.call(l, e, u, t):(t.jqXHR = a.ajax(a.extend(f, s)), s.data = i)}function X(t){return t.bAjaxDataGet?(t.iDraw++, pt(t, !0), J(t, V(t), function(e){q(t, e)}), !1):!0}function V(t){var e, n, r, o, i = t.aoColumns, s = i.length, l = t.oFeatures, u = t.oPreviousSearch, c = t.aoPreSearchCols, f = [], d = wt(t), h = t._iDisplayStart, p = l.bPaginate !== !1?t._iDisplayLength: - 1, g = function(t, e){f.push({name:t, value:e})}; g("sEcho", t.iDraw), g("iColumns", s), g("sColumns", ce(i, "sName").join(",")), g("iDisplayStart", h), g("iDisplayLength", p); var b = {draw:t.iDraw, columns:[], order:[], start:h, length:p, search:{value:u.sSearch, regex:u.bRegex}}; for (e = 0; s > e; e++)r = i[e], o = c[e], n = "function" == typeof r.mData?"function":r.mData, b.columns.push({data:n, name:r.sName, searchable:r.bSearchable, orderable:r.bSortable, search:{value:o.sSearch, regex:o.bRegex}}), g("mDataProp_" + e, n), l.bFilter && (g("sSearch_" + e, o.sSearch), g("bRegex_" + e, o.bRegex), g("bSearchable_" + e, r.bSearchable)), l.bSort && g("bSortable_" + e, r.bSortable); l.bFilter && (g("sSearch", u.sSearch), g("bRegex", u.bRegex)), l.bSort && (a.each(d, function(t, e){b.order.push({column:e.col, dir:e.dir}), g("iSortCol_" + t, e.col), g("sSortDir_" + t, e.dir)}), g("iSortingCols", d.length)); var v = qt.ext.legacy.ajax; return null === v?t.sAjaxSource?f:b:v?f:b}function q(t, e){var a = function(t, a){return e[t] !== n?e[t]:e[a]}, r = G(t, e), o = a("sEcho", "draw"), i = a("iTotalRecords", "recordsTotal"), s = a("iTotalDisplayRecords", "recordsFiltered"); if (o){if (1 * o < t.iDraw)return; t.iDraw = 1 * o}L(t), t._iRecordsTotal = parseInt(i, 10), t._iRecordsDisplay = parseInt(s, 10); for (var l = 0, u = r.length; u > l; l++)D(t, r[l]); t.aiDisplay = t.aiDisplayMaster.slice(), t.bAjaxDataGet = !1, M(t), t._bInitComplete || lt(t, e), t.bAjaxDataGet = !0, pt(t, !1)}function G(t, e){var r = a.isPlainObject(t.ajax) && t.ajax.dataSrc !== n?t.ajax.dataSrc:t.sAjaxDataProp; return"data" === r?e.aaData || e[r]:"" !== r?I(r)(e):e}function $(t){var n = t.oClasses, r = t.sTableId, o = t.oLanguage, i = t.oPreviousSearch, s = t.aanFeatures, l = '<input type="search" class="' + n.sFilterInput + '"/>', u = o.sSearch; u = u.match(/_INPUT_/)?u.replace("_INPUT_", l):u + l; var c = a("<div/>", {id:s.f?null:r + "_filter", "class":n.sFilter}).append(a("<label/>").append(u)), f = function(){var e = (s.f, this.value?this.value:""); e != i.sSearch && (z(t, {sSearch:e, bRegex:i.bRegex, bSmart:i.bSmart, bCaseInsensitive:i.bCaseInsensitive}), t._iDisplayStart = 0, M(t))}, d = null !== t.searchDelay?t.searchDelay:"ssp" === Bt(t)?400:0, h = a("input", c).val(i.sSearch).attr("placeholder", o.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT", d?mt(f, d):f).bind("keypress.DT", function(t){return 13 == t.keyCode?!1:void 0}).attr("aria-controls", r); return a(t.nTable).on("search.dt.DT", function(n, a){if (t === a)try{h[0] !== e.activeElement && h.val(i.sSearch)} catch (r){}}), c[0]}function z(t, e, a){var r = t.oPreviousSearch, o = t.aoPreSearchCols, i = function(t){r.sSearch = t.sSearch, r.bRegex = t.bRegex, r.bSmart = t.bSmart, r.bCaseInsensitive = t.bCaseInsensitive}, s = function(t){return t.bEscapeRegex !== n?!t.bEscapeRegex:t.bRegex}; if (S(t), "ssp" != Bt(t)){Z(t, e.sSearch, a, s(e), e.bSmart, e.bCaseInsensitive), i(e); for (var l = 0; l < o.length; l++)Q(t, o[l].sSearch, l, s(o[l]), o[l].bSmart, o[l].bCaseInsensitive); Y(t)} else i(e); t.bFiltered = !0, Wt(t, null, "search", [t])}function Y(t){for (var e, n, r = qt.ext.search, o = t.aiDisplay, i = 0, s = r.length; s > i; i++){for (var l = [], u = 0, c = o.length; c > u; u++)n = o[u], e = t.aoData[n], r[i](t, e._aFilterData, n, e._aData, u) && l.push(n); o.length = 0, a.merge(o, l)}}function Q(t, e, n, a, r, o){if ("" !== e)for (var i, s = t.aiDisplay, l = K(e, a, r, o), u = s.length - 1; u >= 0; u--)i = t.aoData[s[u]]._aFilterData[n], l.test(i) || s.splice(u, 1)}function Z(t, e, n, a, r, o){var i, s, l, u = K(e, a, r, o), c = t.oPreviousSearch.sSearch, f = t.aiDisplayMaster; if (0 !== qt.ext.search.length && (n = !0), s = et(t), e.length <= 0)t.aiDisplay = f.slice(); else for ((s || n || c.length > e.length || 0 !== e.indexOf(c) || t.bSorted) && (t.aiDisplay = f.slice()), i = t.aiDisplay, l = i.length - 1; l >= 0; l--)u.test(t.aoData[i[l]]._sFilterRow) || i.splice(l, 1)}function K(t, e, n, r){if (t = e?t:tt(t), n){var o = a.map(t.match(/"[^"]+"|[^ ]+/g) || [""], function(t){if ('"' === t.charAt(0)){var e = t.match(/^"(.*)"$/); t = e?e[1]:t}return t.replace('"', "")}); t = "^(?=.*?" + o.join(")(?=.*?") + ").*$"}return new RegExp(t, r?"i":"")}function tt(t){return t.replace(ne, "\\$1")}function et(t){var e, n, a, r, o, i, s, l, u = t.aoColumns, c = qt.ext.type.search, f = !1; for (n = 0, r = t.aoData.length; r > n; n++)if (l = t.aoData[n], !l._aFilterData){for (i = [], a = 0, o = u.length; o > a; a++)e = u[a], e.bSearchable?(s = w(t, n, a, "filter"), c[e.sType] && (s = c[e.sType](s)), null === s && (s = ""), "string" != typeof s && s.toString && (s = s.toString())):s = "", s.indexOf && - 1 !== s.indexOf("&") && (me.innerHTML = s, s = De?me.textContent:me.innerText), s.replace && (s = s.replace(/[\r\n]/g, "")), i.push(s); l._aFilterData = i, l._sFilterRow = i.join(" "), f = !0}return f}function nt(t){return{search:t.sSearch, smart:t.bSmart, regex:t.bRegex, caseInsensitive:t.bCaseInsensitive}}function at(t){return{sSearch:t.search, bSmart:t.smart, bRegex:t.regex, bCaseInsensitive:t.caseInsensitive}}function rt(t){var e = t.sTableId, n = t.aanFeatures.i, r = a("<div/>", {"class":t.oClasses.sInfo, id:n?null:e + "_info"}); return n || (t.aoDrawCallback.push({fn:ot, sName:"information"}), r.attr("role", "status").attr("aria-live", "polite"), a(t.nTable).attr("aria-describedby", e + "_info")), r[0]}function ot(t){var e = t.aanFeatures.i; if (0 !== e.length){var n = t.oLanguage, r = t._iDisplayStart + 1, o = t.fnDisplayEnd(), i = t.fnRecordsTotal(), s = t.fnRecordsDisplay(), l = s?n.sInfo:n.sInfoEmpty; s !== i && (l += " " + n.sInfoFiltered), l += n.sInfoPostFix, l = it(t, l); var u = n.fnInfoCallback; null !== u && (l = u.call(t.oInstance, t, r, o, i, s, l)), a(e).html(l)}}function it(t, e){var n = t.fnFormatNumber, a = t._iDisplayStart + 1, r = t._iDisplayLength, o = t.fnRecordsDisplay(), i = - 1 === r; return e.replace(/_START_/g, n.call(t, a)).replace(/_END_/g, n.call(t, t.fnDisplayEnd())).replace(/_MAX_/g, n.call(t, t.fnRecordsTotal())).replace(/_TOTAL_/g, n.call(t, o)).replace(/_PAGE_/g, n.call(t, i?1:Math.ceil(a / r))).replace(/_PAGES_/g, n.call(t, i?1:Math.ceil(o / r)))}function st(t){var e, n, a, r = t.iInitDisplayStart, o = t.aoColumns, i = t.oFeatures, s = t.bDeferLoading; if (!t.bInitialised)return void setTimeout(function(){st(t)}, 200); for (U(t), k(t), O(t, t.aoHeader), O(t, t.aoFooter), pt(t, !0), i.bAutoWidth && St(t), e = 0, n = o.length; n > e; e++)a = o[e], a.sWidth && (a.nTh.style.width = Tt(a.sWidth)); Wt(t, null, "preInit", [t]), W(t); var l = Bt(t); ("ssp" != l || s) && ("ajax" == l?J(t, [], function(n){var a = G(t, n); for (e = 0; e < a.length; e++)D(t, a[e]); t.iInitDisplayStart = r, W(t), pt(t, !1), lt(t, n)}, t):(pt(t, !1), lt(t)))}function lt(t, e){t._bInitComplete = !0, (e || t.oInit.aaData) && h(t), Wt(t, "aoInitComplete", "init", [t, e])}function ut(t, e){var n = parseInt(e, 10); t._iDisplayLength = n, Ut(t), Wt(t, null, "length", [t, n])}function ct(t){for (var e = t.oClasses, n = t.sTableId, r = t.aLengthMenu, o = a.isArray(r[0]), i = o?r[0]:r, s = o?r[1]:r, l = a("<select/>", {name:n + "_length", "aria-controls":n, "class":e.sLengthSelect}), u = 0, c = i.length; c > u; u++)l[0][u] = new Option(s[u], i[u]); var f = a("<div><label/></div>").addClass(e.sLength); return t.aanFeatures.l || (f[0].id = n + "_length"), f.children().append(t.oLanguage.sLengthMenu.replace("_MENU_", l[0].outerHTML)), a("select", f).val(t._iDisplayLength).bind("change.DT", function(e){ut(t, a(this).val()), M(t)}), a(t.nTable).bind("length.dt.DT", function(e, n, r){t === n && a("select", f).val(r)}), f[0]}function ft(t){var e = t.sPaginationType, n = qt.ext.pager[e], r = "function" == typeof n, o = function(t){M(t)}, i = a("<div/>").addClass(t.oClasses.sPaging + e)[0], s = t.aanFeatures; return r || n.fnInit(t, i, o), s.p || (i.id = t.sTableId + "_paginate", t.aoDrawCallback.push({fn:function(t){if (r){var e, a, i = t._iDisplayStart, l = t._iDisplayLength, u = t.fnRecordsDisplay(), c = - 1 === l, f = c?0:Math.ceil(i / l), d = c?1:Math.ceil(u / l), h = n(f, d); for (e = 0, a = s.p.length; a > e; e++)Et(t, "pageButton")(t, s.p[e], e, h, f, d)} else n.fnUpdate(t, o)}, sName:"pagination"})), i}function dt(t, e, n){var a = t._iDisplayStart, r = t._iDisplayLength, o = t.fnRecordsDisplay(); 0 === o || - 1 === r?a = 0:"number" == typeof e?(a = e * r, a > o && (a = 0)):"first" == e?a = 0:"previous" == e?(a = r >= 0?a - r:0, 0 > a && (a = 0)):"next" == e?o > a + r && (a += r):"last" == e?a = Math.floor((o - 1) / r) * r:Ht(t, 0, "Unknown paging action: " + e, 5); var i = t._iDisplayStart !== a; return t._iDisplayStart = a, i && (Wt(t, null, "page", [t]), n && M(t)), i}function ht(t){return a("<div/>", {id:t.aanFeatures.r?null:t.sTableId + "_processing", "class":t.oClasses.sProcessing}).html(t.oLanguage.sProcessing).insertBefore(t.nTable)[0]}function pt(t, e){t.oFeatures.bProcessing && a(t.aanFeatures.r).css("display", e?"block":"none"), Wt(t, null, "processing", [t, e])}function gt(t){var e = a(t.nTable); e.attr("role", "grid"); var n = t.oScroll; if ("" === n.sX && "" === n.sY)return t.nTable; var r = n.sX, o = n.sY, i = t.oClasses, s = e.children("caption"), l = s.length?s[0]._captionSide:null, u = a(e[0].cloneNode(!1)), c = a(e[0].cloneNode(!1)), f = e.children("tfoot"), d = "<div/>", h = function(t){return t?Tt(t):null}; n.sX && "100%" === e.attr("width") && e.removeAttr("width"), f.length || (f = null); var p = a(d, {"class":i.sScrollWrapper}).append(a(d, {"class":i.sScrollHead}).css({overflow:"hidden", position:"relative", border:0, width:r?h(r):"100%"}).append(a(d, {"class":i.sScrollHeadInner}).css({"box-sizing":"content-box", width:n.sXInner || "100%"}).append(u.removeAttr("id").css("margin-left", 0).append("top" === l?s:null).append(e.children("thead"))))).append(a(d, {"class":i.sScrollBody}).css({position:"relative", overflow:"auto", width:h(r)}).append(e)); f && p.append(a(d, {"class":i.sScrollFoot}).css({overflow:"hidden", border:0, width:r?h(r):"100%"}).append(a(d, {"class":i.sScrollFootInner}).append(c.removeAttr("id").css("margin-left", 0).append("bottom" === l?s:null).append(e.children("tfoot"))))); var g = p.children(), b = g[0], v = g[1], S = f?g[2]:null; return r && a(v).on("scroll.DT", function(t){var e = this.scrollLeft; b.scrollLeft = e, f && (S.scrollLeft = e)}), a(v).css(o && n.bCollapse?"max-height":"height", o), t.nScrollHead = b, t.nScrollBody = v, t.nScrollFoot = S, t.aoDrawCallback.push({fn:bt, sName:"scrolling"}), p[0]}function bt(t){var e, n, r, o, i, s, l, u, c, f = t.oScroll, d = f.sX, h = f.sXInner, g = f.sY, b = f.iBarWidth, v = a(t.nScrollHead), S = v[0].style, m = v.children("div"), D = m[0].style, y = m.children("table"), _ = t.nScrollBody, T = a(_), w = _.style, C = a(t.nScrollFoot), x = C.children("div"), I = x.children("table"), A = a(t.nTHead), F = a(t.nTable), L = F[0], P = L.style, R = t.nTFoot?a(t.nTFoot):null, j = t.oBrowser, H = j.bScrollOversize, N = [], k = [], O = [], M = function(t){var e = t.style; e.paddingTop = "0", e.paddingBottom = "0", e.borderTopWidth = "0", e.borderBottomWidth = "0", e.height = 0}; F.children("thead, tfoot").remove(), i = A.clone().prependTo(F), e = A.find("tr"), r = i.find("tr"), i.find("th, td").removeAttr("tabindex"), R && (s = R.clone().prependTo(F), n = R.find("tr"), o = s.find("tr")), d || (w.width = "100%", v[0].style.width = "100%"), a.each(B(t, i), function(e, n){l = p(t, e), n.style.width = t.aoColumns[l].sWidth}), R && vt(function(t){t.style.width = ""}, o), c = F.outerWidth(), "" === d?(P.width = "100%", H && (F.find("tbody").height() > _.offsetHeight || "scroll" == T.css("overflow-y")) && (P.width = Tt(F.outerWidth() - b)), c = F.outerWidth()):"" !== h && (P.width = Tt(h), c = F.outerWidth()), vt(M, r), vt(function(t){O.push(t.innerHTML), N.push(Tt(a(t).css("width")))}, r), vt(function(t, e){t.style.width = N[e]}, e), a(r).height(0), R && (vt(M, o), vt(function(t){k.push(Tt(a(t).css("width")))}, o), vt(function(t, e){t.style.width = k[e]}, n), a(o).height(0)), vt(function(t, e){t.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + O[e] + "</div>", t.style.width = N[e]}, r), R && vt(function(t, e){t.innerHTML = "", t.style.width = k[e]}, o), F.outerWidth() < c?(u = _.scrollHeight > _.offsetHeight || "scroll" == T.css("overflow-y")?c + b:c, H && (_.scrollHeight > _.offsetHeight || "scroll" == T.css("overflow-y")) && (P.width = Tt(u - b)), ("" === d || "" !== h) && Ht(t, 1, "Possible column misalignment", 6)):u = "100%", w.width = Tt(u), S.width = Tt(u), R && (t.nScrollFoot.style.width = Tt(u)), g || H && (w.height = Tt(L.offsetHeight + b)); var W = F.outerWidth(); y[0].style.width = Tt(W), D.width = Tt(W); var U = F.height() > _.clientHeight || "scroll" == T.css("overflow-y"), E = "padding" + (j.bScrollbarLeft?"Left":"Right"); D[E] = U?b + "px":"0px", R && (I[0].style.width = Tt(W), x[0].style.width = Tt(W), x[0].style[E] = U?b + "px":"0px"), T.scroll(), !t.bSorted && !t.bFiltered || t._drawHold || (_.scrollTop = 0)}function vt(t, e, n){for (var a, r, o = 0, i = 0, s = e.length; s > i; ){for (a = e[i].firstChild, r = n?n[i].firstChild:null; a; )1 === a.nodeType && (n?t(a, r, o):t(a, o), o++), a = a.nextSibling, r = n?r.nextSibling:null; i++}}function St(e){var n, r, o, i, s, l = e.nTable, u = e.aoColumns, c = e.oScroll, f = c.sY, d = c.sX, g = c.sXInner, S = u.length, m = v(e, "bVisible"), D = a("th", e.nTHead), y = l.getAttribute("width"), _ = l.parentNode, T = !1, w = e.oBrowser, C = w.bScrollOversize, x = l.style.width; for (x && - 1 !== x.indexOf("%") && (y = x), n = 0; n < m.length; n++)r = u[m[n]], null !== r.sWidth && (r.sWidth = Dt(r.sWidthOrig, _), T = !0); if (C || !T && !d && !f && S == b(e) && S == D.length)for (n = 0; S > n; n++){var I = p(e, n); I && (u[I].sWidth = Tt(D.eq(n).width()))} else{var A = a(l).clone().css("visibility", "hidden").removeAttr("id"); A.find("tbody tr").remove(); var F = a("<tr/>").appendTo(A.find("tbody")); for (A.find("thead, tfoot").remove(), A.append(a(e.nTHead).clone()).append(a(e.nTFoot).clone()), A.find("tfoot th, tfoot td").css("width", ""), D = B(e, A.find("thead")[0]), n = 0; n < m.length; n++)r = u[m[n]], D[n].style.width = null !== r.sWidthOrig && "" !== r.sWidthOrig?Tt(r.sWidthOrig):""; if (e.aoData.length)for (n = 0; n < m.length; n++)o = m[n], r = u[o], a(yt(e, o)).clone(!1).append(r.sContentPadding).appendTo(F); var L = a("<div/>").css(d || f?{position:"absolute", top:0, left:0, height:1, right:0, overflow:"hidden"}:{}).append(A).appendTo(_); if (d && g?A.width(g):d?(A.css("width", "auto"), A.width() < _.clientWidth && A.width(_.clientWidth)):f?A.width(_.clientWidth):y && A.width(y), d){var P = 0; for (n = 0; n < m.length; n++)r = u[m[n]], s = w.bBounding?D[n].getBoundingClientRect().width:a(D[n]).outerWidth(), P += null === r.sWidthOrig?s:parseInt(r.sWidth, 10) + s - a(D[n]).width(); A.width(Tt(P)), l.style.width = Tt(P)}for (n = 0; n < m.length; n++)r = u[m[n]], i = a(D[n]).width(), i && (r.sWidth = Tt(i)); l.style.width = Tt(A.css("width")), L.remove()}if (y && (l.style.width = Tt(y)), (y || d) && !e._reszEvt){var R = function(){a(t).bind("resize.DT-" + e.sInstance, mt(function(){h(e)}))}; C?setTimeout(R, 1e3):R(), e._reszEvt = !0}}function mt(t, e){var a, r, o = e !== n?e:200; return function(){var e = this, i = + new Date, s = arguments; a && a + o > i?(clearTimeout(r), r = setTimeout(function(){a = n, t.apply(e, s)}, o)):(a = i, t.apply(e, s))}}function Dt(t, n){if (!t)return 0; var r = a("<div/>").css("width", Tt(t)).appendTo(n || e.body), o = r[0].offsetWidth; return r.remove(), o}function yt(t, e){var n = _t(t, e); if (0 > n)return null; var r = t.aoData[n]; return r.nTr?r.anCells[e]:a("<td/>").html(w(t, n, e, "display"))[0]}function _t(t, e){for (var n, a = - 1, r = - 1, o = 0, i = t.aoData.length; i > o; o++)n = w(t, o, e, "display") + "", n = n.replace(ye, ""), n.length > a && (a = n.length, r = o); return r}function Tt(t){return null === t?"0px":"number" == typeof t?0 > t?"0px":t + "px":t.match(/\d$/)?t + "px":t}function wt(t){var e, r, o, i, s, l, u, c = [], f = t.aoColumns, d = t.aaSortingFixed, h = a.isPlainObject(d), p = [], g = function(t){t.length && !a.isArray(t[0])?p.push(t):a.merge(p, t)}; for (a.isArray(d) && g(d), h && d.pre && g(d.pre), g(t.aaSorting), h && d.post && g(d.post), e = 0; e < p.length; e++)for (u = p[e][0], i = f[u].aDataSort, r = 0, o = i.length; o > r; r++)s = i[r], l = f[s].sType || "string", p[e]._idx === n && (p[e]._idx = a.inArray(p[e][1], f[s].asSorting)), c.push({src:u, col:s, dir:p[e][1], index:p[e]._idx, type:l, formatter:qt.ext.type.order[l + "-pre"]}); return c}function Ct(t){var e, n, a, r, o, i = [], s = qt.ext.type.order, l = t.aoData, u = (t.aoColumns, 0), c = t.aiDisplayMaster; for (S(t), o = wt(t), e = 0, n = o.length; n > e; e++)r = o[e], r.formatter && u++, Lt(t, r.col); if ("ssp" != Bt(t) && 0 !== o.length){for (e = 0, a = c.length; a > e; e++)i[c[e]] = e; u === o.length?c.sort(function(t, e){var n, a, r, s, u, c = o.length, f = l[t]._aSortData, d = l[e]._aSortData; for (r = 0; c > r; r++)if (u = o[r], n = f[u.col], a = d[u.col], s = a > n? - 1:n > a?1:0, 0 !== s)return"asc" === u.dir?s: - s; return n = i[t], a = i[e], a > n? - 1:n > a?1:0}):c.sort(function(t, e){var n, a, r, u, c, f, d = o.length, h = l[t]._aSortData, p = l[e]._aSortData; for (r = 0; d > r; r++)if (c = o[r], n = h[c.col], a = p[c.col], f = s[c.type + "-" + c.dir] || s["string-" + c.dir], u = f(n, a), 0 !== u)return u; return n = i[t], a = i[e], a > n? - 1:n > a?1:0})}t.bSorted = !0}function xt(t){for (var e, n, a = t.aoColumns, r = wt(t), o = t.oLanguage.oAria, i = 0, s = a.length; s > i; i++){var l = a[i], u = l.asSorting, c = l.sTitle.replace(/<.*?>/g, ""), f = l.nTh;
|
2 |
-
f.removeAttribute("aria-sort"), l.bSortable?(r.length > 0 && r[0].col == i?(f.setAttribute("aria-sort", "asc" == r[0].dir?"ascending":"descending"), n = u[r[0].index + 1] || u[0]):n = u[0], e = c + ("asc" === n?o.sSortAscending:o.sSortDescending)):e = c, f.setAttribute("aria-label", e)}}function It(t, e, r, o){var i, s = t.aoColumns[e], l = t.aaSorting, u = s.asSorting, c = function(t, e){var r = t._idx; return r === n && (r = a.inArray(t[1], u)), r + 1 < u.length?r + 1:e?null:0}; if ("number" == typeof l[0] && (l = t.aaSorting = [l]), r && t.oFeatures.bSortMulti){var f = a.inArray(e, ce(l, "0")); - 1 !== f?(i = c(l[f], !0), null === i && 1 === l.length && (i = 0), null === i?l.splice(f, 1):(l[f][1] = u[i], l[f]._idx = i)):(l.push([e, u[0], 0]), l[l.length - 1]._idx = 0)} else l.length && l[0][0] == e?(i = c(l[0]), l.length = 1, l[0][1] = u[i], l[0]._idx = i):(l.length = 0, l.push([e, u[0]]), l[0]._idx = 0); W(t), "function" == typeof o && o(t)}function At(t, e, n, a){var r = t.aoColumns[n]; Ot(e, {}, function(e){r.bSortable !== !1 && (t.oFeatures.bProcessing?(pt(t, !0), setTimeout(function(){It(t, n, e.shiftKey, a), "ssp" !== Bt(t) && pt(t, !1)}, 0)):It(t, n, e.shiftKey, a))})}function Ft(t){var e, n, r, o = t.aLastSort, i = t.oClasses.sSortColumn, s = wt(t), l = t.oFeatures; if (l.bSort && l.bSortClasses){for (e = 0, n = o.length; n > e; e++)r = o[e].src, a(ce(t.aoData, "anCells", r)).removeClass(i + (2 > e?e + 1:3)); for (e = 0, n = s.length; n > e; e++)r = s[e].src, a(ce(t.aoData, "anCells", r)).addClass(i + (2 > e?e + 1:3))}t.aLastSort = s}function Lt(t, e){var n, a = t.aoColumns[e], r = qt.ext.order[a.sSortDataType]; r && (n = r.call(t.oInstance, t, e, g(t, e))); for (var o, i, s = qt.ext.type.order[a.sType + "-pre"], l = 0, u = t.aoData.length; u > l; l++)o = t.aoData[l], o._aSortData || (o._aSortData = []), (!o._aSortData[e] || r) && (i = r?n[l]:w(t, l, e, "sort"), o._aSortData[e] = s?s(i):i)}function Pt(t){if (t.oFeatures.bStateSave && !t.bDestroying){var e = {time: + new Date, start:t._iDisplayStart, length:t._iDisplayLength, order:a.extend(!0, [], t.aaSorting), search:nt(t.oPreviousSearch), columns:a.map(t.aoColumns, function(e, n){return{visible:e.bVisible, search:nt(t.aoPreSearchCols[n])}})}; Wt(t, "aoStateSaveParams", "stateSaveParams", [t, e]), t.oSavedState = e, t.fnStateSaveCallback.call(t.oInstance, t, e)}}function Rt(t, e){var r, o, i = t.aoColumns; if (t.oFeatures.bStateSave){var s = t.fnStateLoadCallback.call(t.oInstance, t); if (s && s.time){var l = Wt(t, "aoStateLoadParams", "stateLoadParams", [t, s]); if ( - 1 === a.inArray(!1, l)){var u = t.iStateDuration; if (!(u > 0 && s.time < + new Date - 1e3 * u) && i.length === s.columns.length){for (t.oLoadedState = a.extend(!0, {}, s), s.start !== n && (t._iDisplayStart = s.start, t.iInitDisplayStart = s.start), s.length !== n && (t._iDisplayLength = s.length), s.order !== n && (t.aaSorting = [], a.each(s.order, function(e, n){t.aaSorting.push(n[0] >= i.length?[0, n[1]]:n)})), s.search !== n && a.extend(t.oPreviousSearch, at(s.search)), r = 0, o = s.columns.length; o > r; r++){var c = s.columns[r]; c.visible !== n && (i[r].bVisible = c.visible), c.search !== n && a.extend(t.aoPreSearchCols[r], at(c.search))}Wt(t, "aoStateLoaded", "stateLoaded", [t, s])}}}}}function jt(t){var e = qt.settings, n = a.inArray(t, ce(e, "nTable")); return - 1 !== n?e[n]:null}function Ht(e, n, a, r){if (a = "DataTables warning: " + (e?"table id=" + e.sTableId + " - ":"") + a, r && (a += ". For more information about this error, please see http://datatables.net/tn/" + r), n)t.console && console.log && console.log(a); else{var o = qt.ext, i = o.sErrMode || o.errMode; if (e && Wt(e, null, "error", [e, r, a]), "alert" == i)alert(a); else{if ("throw" == i)throw new Error(a); "function" == typeof i && i(e, r, a)}}}function Nt(t, e, r, o){return a.isArray(r)?void a.each(r, function(n, r){a.isArray(r)?Nt(t, e, r[0], r[1]):Nt(t, e, r)}):(o === n && (o = r), void(e[r] !== n && (t[o] = e[r])))}function kt(t, e, n){var r; for (var o in e)e.hasOwnProperty(o) && (r = e[o], a.isPlainObject(r)?(a.isPlainObject(t[o]) || (t[o] = {}), a.extend(!0, t[o], r)):n && "data" !== o && "aaData" !== o && a.isArray(r)?t[o] = r.slice():t[o] = r); return t}function Ot(t, e, n){a(t).bind("click.DT", e, function(e){t.blur(), n(e)}).bind("keypress.DT", e, function(t){13 === t.which && (t.preventDefault(), n(t))}).bind("selectstart.DT", function(){return!1})}function Mt(t, e, n, a){n && t[e].push({fn:n, sName:a})}function Wt(t, e, n, r){var o = []; if (e && (o = a.map(t[e].slice().reverse(), function(e, n){return e.fn.apply(t.oInstance, r)})), null !== n){var i = a.Event(n + ".dt"); a(t.nTable).trigger(i, r), o.push(i.result)}return o}function Ut(t){var e = t._iDisplayStart, n = t.fnDisplayEnd(), a = t._iDisplayLength; e >= n && (e = n - a), e -= e % a, ( - 1 === a || 0 > e) && (e = 0), t._iDisplayStart = e}function Et(t, e){var n = t.renderer, r = qt.ext.renderer[e]; return a.isPlainObject(n) && n[e]?r[n[e]] || r._:"string" == typeof n?r[n] || r._:r._}function Bt(t){return t.oFeatures.bServerSide?"ssp":t.ajax || t.sAjaxSource?"ajax":"dom"}function Jt(t, e){var n = [], a = Xe.numbers_length, r = Math.floor(a / 2); return a >= e?n = de(0, e):r >= t?(n = de(0, a - 2), n.push("ellipsis"), n.push(e - 1)):t >= e - 1 - r?(n = de(e - (a - 2), e), n.splice(0, 0, "ellipsis"), n.splice(0, 0, 0)):(n = de(t - r + 2, t + r - 1), n.push("ellipsis"), n.push(e - 1), n.splice(0, 0, "ellipsis"), n.splice(0, 0, 0)), n.DT_el = "span", n}function Xt(t){a.each({num:function(e){return Ve(e, t)}, "num-fmt":function(e){return Ve(e, t, ae)}, "html-num":function(e){return Ve(e, t, Kt)}, "html-num-fmt":function(e){return Ve(e, t, Kt, ae)}}, function(e, n){Gt.type.order[e + t + "-pre"] = n, e.match(/^html\-/) && (Gt.type.search[e + t] = Gt.type.search.html)})}function Vt(t){return function(){var e = [jt(this[qt.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments)); return qt.ext.internal[t].apply(this, e)}}var qt, Gt, $t, zt, Yt, Qt = {}, Zt = /[\r\n]/g, Kt = /<.*?>/g, te = /^[\w\+\-]/, ee = /[\w\+\-]$/, ne = new RegExp("(\\" + ["/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^", "-"].join("|\\") + ")", "g"), ae = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi, re = function(t){return t && t !== !0 && "-" !== t?!1:!0}, oe = function(t){var e = parseInt(t, 10); return!isNaN(e) && isFinite(t)?e:null}, ie = function(t, e){return Qt[e] || (Qt[e] = new RegExp(tt(e), "g")), "string" == typeof t && "." !== e?t.replace(/\./g, "").replace(Qt[e], "."):t}, se = function(t, e, n){var a = "string" == typeof t; return re(t)?!0:(e && a && (t = ie(t, e)), n && a && (t = t.replace(ae, "")), !isNaN(parseFloat(t)) && isFinite(t))}, le = function(t){return re(t) || "string" == typeof t}, ue = function(t, e, n){if (re(t))return!0; var a = le(t); return a && se(pe(t), e, n)?!0:null}, ce = function(t, e, a){var r = [], o = 0, i = t.length; if (a !== n)for (; i > o; o++)t[o] && t[o][e] && r.push(t[o][e][a]); else for (; i > o; o++)t[o] && r.push(t[o][e]); return r}, fe = function(t, e, a, r){var o = [], i = 0, s = e.length; if (r !== n)for (; s > i; i++)t[e[i]][a] && o.push(t[e[i]][a][r]); else for (; s > i; i++)o.push(t[e[i]][a]); return o}, de = function(t, e){var a, r = []; e === n?(e = 0, a = t):(a = e, e = t); for (var o = e; a > o; o++)r.push(o); return r}, he = function(t){for (var e = [], n = 0, a = t.length; a > n; n++)t[n] && e.push(t[n]); return e}, pe = function(t){return t.replace(Kt, "")}, ge = function(t){var e, n, a, r = [], o = t.length, i = 0; t:for (n = 0; o > n; n++){for (e = t[n], a = 0; i > a; a++)if (r[a] === e)continue t; r.push(e), i++}return r}, be = function(t, e, a){t[e] !== n && (t[a] = t[e])}, ve = /\[.*?\]$/, Se = /\(\)$/, me = a("<div>")[0], De = me.textContent !== n, ye = /<.*?>/g; qt = function(t){this.$ = function(t, e){return this.api(!0).$(t, e)}, this._ = function(t, e){return this.api(!0).rows(t, e).data()}, this.api = function(t){return new $t(t?jt(this[Gt.iApiIndex]):this)}, this.fnAddData = function(t, e){var r = this.api(!0), o = a.isArray(t) && (a.isArray(t[0]) || a.isPlainObject(t[0]))?r.rows.add(t):r.row.add(t); return(e === n || e) && r.draw(), o.flatten().toArray()}, this.fnAdjustColumnSizing = function(t){var e = this.api(!0).columns.adjust(), a = e.settings()[0], r = a.oScroll; t === n || t?e.draw(!1):("" !== r.sX || "" !== r.sY) && bt(a)}, this.fnClearTable = function(t){var e = this.api(!0).clear(); (t === n || t) && e.draw()}, this.fnClose = function(t){this.api(!0).row(t).child.hide()}, this.fnDeleteRow = function(t, e, a){var r = this.api(!0), o = r.rows(t), i = o.settings()[0], s = i.aoData[o[0][0]]; return o.remove(), e && e.call(this, i, s), (a === n || a) && r.draw(), s}, this.fnDestroy = function(t){this.api(!0).destroy(t)}, this.fnDraw = function(t){this.api(!0).draw(t)}, this.fnFilter = function(t, e, a, r, o, i){var s = this.api(!0); null === e || e === n?s.search(t, a, r, i):s.column(e).search(t, a, r, i), s.draw()}, this.fnGetData = function(t, e){var a = this.api(!0); if (t !== n){var r = t.nodeName?t.nodeName.toLowerCase():""; return e !== n || "td" == r || "th" == r?a.cell(t, e).data():a.row(t).data() || null}return a.data().toArray()}, this.fnGetNodes = function(t){var e = this.api(!0); return t !== n?e.row(t).node():e.rows().nodes().flatten().toArray()}, this.fnGetPosition = function(t){var e = this.api(!0), n = t.nodeName.toUpperCase(); if ("TR" == n)return e.row(t).index(); if ("TD" == n || "TH" == n){var a = e.cell(t).index(); return[a.row, a.columnVisible, a.column]}return null}, this.fnIsOpen = function(t){return this.api(!0).row(t).child.isShown()}, this.fnOpen = function(t, e, n){return this.api(!0).row(t).child(e, n).show().child()[0]}, this.fnPageChange = function(t, e){var a = this.api(!0).page(t); (e === n || e) && a.draw(!1)}, this.fnSetColumnVis = function(t, e, a){var r = this.api(!0).column(t).visible(e); (a === n || a) && r.columns.adjust().draw()}, this.fnSettings = function(){return jt(this[Gt.iApiIndex])}, this.fnSort = function(t){this.api(!0).order(t).draw()}, this.fnSortListener = function(t, e, n){this.api(!0).order.listener(t, e, n)}, this.fnUpdate = function(t, e, a, r, o){var i = this.api(!0); return a === n || null === a?i.row(e).data(t):i.cell(e, a).data(t), (o === n || o) && i.columns.adjust(), (r === n || r) && i.draw(), 0}, this.fnVersionCheck = Gt.fnVersionCheck; var e = this, r = t === n, c = this.length; r && (t = {}), this.oApi = this.internal = Gt.internal; for (var h in qt.ext.internal)h && (this[h] = Vt(h)); return this.each(function(){var h, p = {}, g = c > 1?kt(p, t, !0):t, b = 0, v = this.getAttribute("id"), S = !1, _ = qt.defaults, T = a(this); if ("table" != this.nodeName.toLowerCase())return void Ht(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2); s(_), l(_.column), o(_, _, !0), o(_.column, _.column, !0), o(_, a.extend(g, T.data())); var w = qt.settings; for (b = 0, h = w.length; h > b; b++){var C = w[b]; if (C.nTable == this || C.nTHead.parentNode == this || C.nTFoot && C.nTFoot.parentNode == this){var x = g.bRetrieve !== n?g.bRetrieve:_.bRetrieve, A = g.bDestroy !== n?g.bDestroy:_.bDestroy; if (r || x)return C.oInstance; if (A){C.oInstance.fnDestroy(); break}return void Ht(C, 0, "Cannot reinitialise DataTable", 3)}if (C.sTableId == this.id){w.splice(b, 1); break}}(null === v || "" === v) && (v = "DataTables_Table_" + qt.ext._unique++, this.id = v); var F = a.extend(!0, {}, qt.models.oSettings, {sDestroyWidth:T[0].style.width, sInstance:v, sTableId:v}); F.nTable = this, F.oApi = e.internal, F.oInit = g, w.push(F), F.oInstance = 1 === e.length?e:T.dataTable(), s(g), g.oLanguage && i(g.oLanguage), g.aLengthMenu && !g.iDisplayLength && (g.iDisplayLength = a.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]), g = kt(a.extend(!0, {}, _), g), Nt(F.oFeatures, g, ["bPaginate", "bLengthChange", "bFilter", "bSort", "bSortMulti", "bInfo", "bProcessing", "bAutoWidth", "bSortClasses", "bServerSide", "bDeferRender"]), Nt(F, g, ["asStripeClasses", "ajax", "fnServerData", "fnFormatNumber", "sServerMethod", "aaSorting", "aaSortingFixed", "aLengthMenu", "sPaginationType", "sAjaxSource", "sAjaxDataProp", "iStateDuration", "sDom", "bSortCellsTop", "iTabIndex", "fnStateLoadCallback", "fnStateSaveCallback", "renderer", "searchDelay", "rowId", ["iCookieDuration", "iStateDuration"], ["oSearch", "oPreviousSearch"], ["aoSearchCols", "aoPreSearchCols"], ["iDisplayLength", "_iDisplayLength"], ["bJQueryUI", "bJUI"]]), Nt(F.oScroll, g, [["sScrollX", "sX"], ["sScrollXInner", "sXInner"], ["sScrollY", "sY"], ["bScrollCollapse", "bCollapse"]]), Nt(F.oLanguage, g, "fnInfoCallback"), Mt(F, "aoDrawCallback", g.fnDrawCallback, "user"), Mt(F, "aoServerParams", g.fnServerParams, "user"), Mt(F, "aoStateSaveParams", g.fnStateSaveParams, "user"), Mt(F, "aoStateLoadParams", g.fnStateLoadParams, "user"), Mt(F, "aoStateLoaded", g.fnStateLoaded, "user"), Mt(F, "aoRowCallback", g.fnRowCallback, "user"), Mt(F, "aoRowCreatedCallback", g.fnCreatedRow, "user"), Mt(F, "aoHeaderCallback", g.fnHeaderCallback, "user"), Mt(F, "aoFooterCallback", g.fnFooterCallback, "user"), Mt(F, "aoInitComplete", g.fnInitComplete, "user"), Mt(F, "aoPreDrawCallback", g.fnPreDrawCallback, "user"), F.rowIdFn = I(g.rowId), u(F); var L = F.oClasses; if (g.bJQueryUI?(a.extend(L, qt.ext.oJUIClasses, g.oClasses), g.sDom === _.sDom && "lfrtip" === _.sDom && (F.sDom = '<"H"lfr>t<"F"ip>'), F.renderer?a.isPlainObject(F.renderer) && !F.renderer.header && (F.renderer.header = "jqueryui"):F.renderer = "jqueryui"):a.extend(L, qt.ext.classes, g.oClasses), T.addClass(L.sTable), F.iInitDisplayStart === n && (F.iInitDisplayStart = g.iDisplayStart, F._iDisplayStart = g.iDisplayStart), null !== g.iDeferLoading){F.bDeferLoading = !0; var P = a.isArray(g.iDeferLoading); F._iRecordsDisplay = P?g.iDeferLoading[0]:g.iDeferLoading, F._iRecordsTotal = P?g.iDeferLoading[1]:g.iDeferLoading}var R = F.oLanguage; a.extend(!0, R, g.oLanguage), "" !== R.sUrl && (a.ajax({dataType:"json", url:R.sUrl, success:function(t){i(t), o(_.oLanguage, t), a.extend(!0, R, t), st(F)}, error:function(){st(F)}}), S = !0), null === g.asStripeClasses && (F.asStripeClasses = [L.sStripeOdd, L.sStripeEven]); var j = F.asStripeClasses, H = T.children("tbody").find("tr").eq(0); - 1 !== a.inArray(!0, a.map(j, function(t, e){return H.hasClass(t)})) && (a("tbody tr", this).removeClass(j.join(" ")), F.asDestroyStripes = j.slice()); var N, k = [], O = this.getElementsByTagName("thead"); if (0 !== O.length && (E(F.aoHeader, O[0]), k = B(F)), null === g.aoColumns)for (N = [], b = 0, h = k.length; h > b; b++)N.push(null); else N = g.aoColumns; for (b = 0, h = N.length; h > b; b++)f(F, k?k[b]:null); if (m(F, g.aoColumnDefs, N, function(t, e){d(F, t, e)}), H.length){var M = function(t, e){return null !== t.getAttribute("data-" + e)?e:null}; a(H[0]).children("th, td").each(function(t, e){var a = F.aoColumns[t]; if (a.mData === t){var r = M(e, "sort") || M(e, "order"), o = M(e, "filter") || M(e, "search"); (null !== r || null !== o) && (a.mData = {_:t + ".display", sort:null !== r?t + ".@data-" + r:n, type:null !== r?t + ".@data-" + r:n, filter:null !== o?t + ".@data-" + o:n}, d(F, t))}})}var W = F.oFeatures; if (g.bStateSave && (W.bStateSave = !0, Rt(F, g), Mt(F, "aoDrawCallback", Pt, "state_save")), g.aaSorting === n){var U = F.aaSorting; for (b = 0, h = U.length; h > b; b++)U[b][1] = F.aoColumns[b].asSorting[0]}Ft(F), W.bSort && Mt(F, "aoDrawCallback", function(){if (F.bSorted){var t = wt(F), e = {}; a.each(t, function(t, n){e[n.src] = n.dir}), Wt(F, null, "order", [F, t, e]), xt(F)}}), Mt(F, "aoDrawCallback", function(){(F.bSorted || "ssp" === Bt(F) || W.bDeferRender) && Ft(F)}, "sc"); var J = T.children("caption").each(function(){this._captionSide = T.css("caption-side")}), X = T.children("thead"); 0 === X.length && (X = a("<thead/>").appendTo(this)), F.nTHead = X[0]; var V = T.children("tbody"); 0 === V.length && (V = a("<tbody/>").appendTo(this)), F.nTBody = V[0]; var q = T.children("tfoot"); if (0 === q.length && J.length > 0 && ("" !== F.oScroll.sX || "" !== F.oScroll.sY) && (q = a("<tfoot/>").appendTo(this)), 0 === q.length || 0 === q.children().length?T.addClass(L.sNoFooter):q.length > 0 && (F.nTFoot = q[0], E(F.aoFooter, F.nTFoot)), g.aaData)for (b = 0; b < g.aaData.length; b++)D(F, g.aaData[b]); else(F.bDeferLoading || "dom" == Bt(F)) && y(F, a(F.nTBody).children("tr")); F.aiDisplay = F.aiDisplayMaster.slice(), F.bInitialised = !0, S === !1 && st(F)}), e = null, this}; var _e = [], Te = Array.prototype, we = function(t){var e, n, r = qt.settings, o = a.map(r, function(t, e){return t.nTable}); return t?t.nTable && t.oApi?[t]:t.nodeName && "table" === t.nodeName.toLowerCase()?(e = a.inArray(t, o), - 1 !== e?[r[e]]:null):t && "function" == typeof t.settings?t.settings().toArray():("string" == typeof t?n = a(t):t instanceof a && (n = t), n?n.map(function(t){return e = a.inArray(this, o), - 1 !== e?r[e]:null}).toArray():void 0):[]}; $t = function(t, e){if (!(this instanceof $t))return new $t(t, e); var n = [], r = function(t){var e = we(t); e && (n = n.concat(e))}; if (a.isArray(t))for (var o = 0, i = t.length; i > o; o++)r(t[o]); else r(t); this.context = ge(n), e && a.merge(this, e), this.selector = {rows:null, cols:null, opts:null}, $t.extend(this, this, _e)}, qt.Api = $t, a.extend($t.prototype, {any:function(){return 0 !== this.count()}, concat:Te.concat, context:[], count:function(){return this.flatten().length}, each:function(t){for (var e = 0, n = this.length; n > e; e++)t.call(this, this[e], e, this); return this}, eq:function(t){var e = this.context; return e.length > t?new $t(e[t], this[t]):null}, filter:function(t){var e = []; if (Te.filter)e = Te.filter.call(this, t, this); else for (var n = 0, a = this.length; a > n; n++)t.call(this, this[n], n, this) && e.push(this[n]); return new $t(this.context, e)}, flatten:function(){var t = []; return new $t(this.context, t.concat.apply(t, this.toArray()))}, join:Te.join, indexOf:Te.indexOf || function(t, e){for (var n = e || 0, a = this.length; a > n; n++)if (this[n] === t)return n; return - 1}, iterator:function(t, e, a, r){var o, i, s, l, u, c, f, d, h = [], p = this.context, g = this.selector; for ("string" == typeof t && (r = a, a = e, e = t, t = !1), i = 0, s = p.length; s > i; i++){var b = new $t(p[i]); if ("table" === e)o = a.call(b, p[i], i), o !== n && h.push(o); else if ("columns" === e || "rows" === e)o = a.call(b, p[i], this[i], i), o !== n && h.push(o); else if ("column" === e || "column-rows" === e || "row" === e || "cell" === e)for (f = this[i], "column-rows" === e && (c = Le(p[i], g.opts)), l = 0, u = f.length; u > l; l++)d = f[l], o = "cell" === e?a.call(b, p[i], d.row, d.column, i, l):a.call(b, p[i], d, i, l, c), o !== n && h.push(o)}if (h.length || r){var v = new $t(p, t?h.concat.apply([], h):h), S = v.selector; return S.rows = g.rows, S.cols = g.cols, S.opts = g.opts, v}return this}, lastIndexOf:Te.lastIndexOf || function(t, e){return this.indexOf.apply(this.toArray.reverse(), arguments)}, length:0, map:function(t){var e = []; if (Te.map)e = Te.map.call(this, t, this); else for (var n = 0, a = this.length; a > n; n++)e.push(t.call(this, this[n], n)); return new $t(this.context, e)}, pluck:function(t){return this.map(function(e){return e[t]})}, pop:Te.pop, push:Te.push, reduce:Te.reduce || function(t, e){return c(this, t, e, 0, this.length, 1)}, reduceRight:Te.reduceRight || function(t, e){return c(this, t, e, this.length - 1, - 1, - 1)}, reverse:Te.reverse, selector:null, shift:Te.shift, sort:Te.sort, splice:Te.splice, toArray:function(){return Te.slice.call(this)}, to$:function(){return a(this)}, toJQuery:function(){return a(this)}, unique:function(){return new $t(this.context, ge(this))}, unshift:Te.unshift}), $t.extend = function(t, e, n){if (n.length && e && (e instanceof $t || e.__dt_wrapper)){var r, o, i, s = function(t, e, n){return function(){var a = e.apply(t, arguments); return $t.extend(a, a, n.methodExt), a}}; for (r = 0, o = n.length; o > r; r++)i = n[r], e[i.name] = "function" == typeof i.val?s(t, i.val, i):a.isPlainObject(i.val)?{}:i.val, e[i.name].__dt_wrapper = !0, $t.extend(t, e[i.name], i.propExt)}}, $t.register = zt = function(t, e){if (a.isArray(t))for (var n = 0, r = t.length; r > n; n++)$t.register(t[n], e); else{var o, i, s, l, u = t.split("."), c = _e, f = function(t, e){for (var n = 0, a = t.length; a > n; n++)if (t[n].name === e)return t[n]; return null}; for (o = 0, i = u.length; i > o; o++){l = - 1 !== u[o].indexOf("()"), s = l?u[o].replace("()", ""):u[o]; var d = f(c, s); d || (d = {name:s, val:{}, methodExt:[], propExt:[]}, c.push(d)), o === i - 1?d.val = e:c = l?d.methodExt:d.propExt}}}, $t.registerPlural = Yt = function(t, e, r){$t.register(t, r), $t.register(e, function(){var t = r.apply(this, arguments); return t === this?this:t instanceof $t?t.length?a.isArray(t[0])?new $t(t.context, t[0]):t[0]:n:t})}; var Ce = function(t, e){if ("number" == typeof t)return[e[t]]; var n = a.map(e, function(t, e){return t.nTable}); return a(n).filter(t).map(function(t){var r = a.inArray(this, n); return e[r]}).toArray()}; zt("tables()", function(t){return t?new $t(Ce(t, this.context)):this}), zt("table()", function(t){var e = this.tables(t), n = e.context; return n.length?new $t(n[0]):e}), Yt("tables().nodes()", "table().node()", function(){return this.iterator("table", function(t){return t.nTable}, 1)}), Yt("tables().body()", "table().body()", function(){return this.iterator("table", function(t){return t.nTBody}, 1)}), Yt("tables().header()", "table().header()", function(){return this.iterator("table", function(t){return t.nTHead}, 1)}), Yt("tables().footer()", "table().footer()", function(){return this.iterator("table", function(t){return t.nTFoot}, 1)}), Yt("tables().containers()", "table().container()", function(){return this.iterator("table", function(t){return t.nTableWrapper}, 1)}), zt("draw()", function(t){return this.iterator("table", function(e){"page" === t?M(e):("string" == typeof t && (t = "full-hold" === t?!1:!0), W(e, t === !1))})}), zt("page()", function(t){return t === n?this.page.info().page:this.iterator("table", function(e){dt(e, t)})}), zt("page.info()", function(t){if (0 === this.context.length)return n; var e = this.context[0], a = e._iDisplayStart, r = e._iDisplayLength, o = e.fnRecordsDisplay(), i = - 1 === r; return{page:i?0:Math.floor(a / r), pages:i?1:Math.ceil(o / r), start:a, end:e.fnDisplayEnd(), length:r, recordsTotal:e.fnRecordsTotal(), recordsDisplay:o, serverSide:"ssp" === Bt(e)}}), zt("page.len()", function(t){return t === n?0 !== this.context.length?this.context[0]._iDisplayLength:n:this.iterator("table", function(e){ut(e, t)})}); var xe = function(t, e, n){if (n){var a = new $t(t); a.one("draw", function(){n(a.ajax.json())})}if ("ssp" == Bt(t))W(t, e); else{pt(t, !0); var r = t.jqXHR; r && 4 !== r.readyState && r.abort(), J(t, [], function(n){L(t); for (var a = G(t, n), r = 0, o = a.length; o > r; r++)D(t, a[r]); W(t, e), pt(t, !1)})}}; zt("ajax.json()", function(){var t = this.context; return t.length > 0?t[0].json:void 0}), zt("ajax.params()", function(){var t = this.context; return t.length > 0?t[0].oAjaxData:void 0}), zt("ajax.reload()", function(t, e){return this.iterator("table", function(n){xe(n, e === !1, t)})}), zt("ajax.url()", function(t){var e = this.context; return t === n?0 === e.length?n:(e = e[0], e.ajax?a.isPlainObject(e.ajax)?e.ajax.url:e.ajax:e.sAjaxSource):this.iterator("table", function(e){a.isPlainObject(e.ajax)?e.ajax.url = t:e.ajax = t})}), zt("ajax.url().load()", function(t, e){return this.iterator("table", function(n){xe(n, e === !1, t)})}); var Ie = function(t, e, r, o, i){var s, l, u, c, f, d, h = [], p = typeof e; for (e && "string" !== p && "function" !== p && e.length !== n || (e = [e]), u = 0, c = e.length; c > u; u++)for (l = e[u] && e[u].split?e[u].split(","):[e[u]], f = 0, d = l.length; d > f; f++)s = r("string" == typeof l[f]?a.trim(l[f]):l[f]), s && s.length && (h = h.concat(s)); var g = Gt.selector[t]; if (g.length)for (u = 0, c = g.length; c > u; u++)h = g[u](o, i, h); return ge(h)}, Ae = function(t){return t || (t = {}), t.filter && t.search === n && (t.search = t.filter), a.extend({search:"none", order:"current", page:"all"}, t)}, Fe = function(t){for (var e = 0, n = t.length; n > e; e++)if (t[e].length > 0)return t[0] = t[e], t[0].length = 1, t.length = 1, t.context = [t.context[e]], t; return t.length = 0, t}, Le = function(t, e){var n, r, o, i = [], s = t.aiDisplay, l = t.aiDisplayMaster, u = e.search, c = e.order, f = e.page; if ("ssp" == Bt(t))return"removed" === u?[]:de(0, l.length); if ("current" == f)for (n = t._iDisplayStart, r = t.fnDisplayEnd(); r > n; n++)i.push(s[n]); else if ("current" == c || "applied" == c)i = "none" == u?l.slice():"applied" == u?s.slice():a.map(l, function(t, e){return - 1 === a.inArray(t, s)?t:null}); else if ("index" == c || "original" == c)for (n = 0, r = t.aoData.length; r > n; n++)"none" == u?i.push(n):(o = a.inArray(n, s), ( - 1 === o && "removed" == u || o >= 0 && "applied" == u) && i.push(n)); return i}, Pe = function(t, e, r){var o = function(e){var o = oe(e); if (null !== o && !r)return[o]; var i = Le(t, r); if (null !== o && - 1 !== a.inArray(o, i))return[o]; if (!e)return i; if ("function" == typeof e)return a.map(i, function(n){var a = t.aoData[n]; return e(n, a._aData, a.nTr)?n:null}); var s = he(fe(t.aoData, i, "nTr")); if (e.nodeName && - 1 !== a.inArray(e, s))return[e._DT_RowIndex]; if ("string" == typeof e && "#" === e.charAt(0)){var l = t.aIds[e.replace(/^#/, "")]; if (l !== n)return[l.idx]}return a(s).filter(e).map(function(){return this._DT_RowIndex}).toArray()}; return Ie("row", e, o, t, r)}; zt("rows()", function(t, e){t === n?t = "":a.isPlainObject(t) && (e = t, t = ""), e = Ae(e); var r = this.iterator("table", function(n){return Pe(n, t, e)}, 1); return r.selector.rows = t, r.selector.opts = e, r}), zt("rows().nodes()", function(){return this.iterator("row", function(t, e){return t.aoData[e].nTr || n}, 1)}), zt("rows().data()", function(){return this.iterator(!0, "rows", function(t, e){return fe(t.aoData, e, "_aData")}, 1)}), Yt("rows().cache()", "row().cache()", function(t){return this.iterator("row", function(e, n){var a = e.aoData[n]; return"search" === t?a._aFilterData:a._aSortData}, 1)}), Yt("rows().invalidate()", "row().invalidate()", function(t){return this.iterator("row", function(e, n){R(e, n, t)})}), Yt("rows().indexes()", "row().index()", function(){return this.iterator("row", function(t, e){return e}, 1)}), Yt("rows().ids()", "row().id()", function(t){for (var e = [], n = this.context, a = 0, r = n.length; r > a; a++)for (var o = 0, i = this[a].length; i > o; o++){var s = n[a].rowIdFn(n[a].aoData[this[a][o]]._aData); e.push((t === !0?"#":"") + s)}return new $t(n, e)}), Yt("rows().remove()", "row().remove()", function(){var t = this; return this.iterator("row", function(e, a, r){var o = e.aoData, i = o[a]; o.splice(a, 1); for (var s = 0, l = o.length; l > s; s++)null !== o[s].nTr && (o[s].nTr._DT_RowIndex = s); P(e.aiDisplayMaster, a), P(e.aiDisplay, a), P(t[r], a, !1), Ut(e); var u = e.rowIdFn(i._aData); u !== n && delete e.aIds[u]}), this.iterator("table", function(t){for (var e = 0, n = t.aoData.length; n > e; e++)t.aoData[e].idx = e}), this}), zt("rows.add()", function(t){var e = this.iterator("table", function(e){var n, a, r, o = []; for (a = 0, r = t.length; r > a; a++)n = t[a], n.nodeName && "TR" === n.nodeName.toUpperCase()?o.push(y(e, n)[0]):o.push(D(e, n)); return o}, 1), n = this.rows( - 1); return n.pop(), a.merge(n, e), n}), zt("row()", function(t, e){return Fe(this.rows(t, e))}), zt("row().data()", function(t){var e = this.context; return t === n?e.length && this.length?e[0].aoData[this[0]]._aData:n:(e[0].aoData[this[0]]._aData = t, R(e[0], this[0], "data"), this)}), zt("row().node()", function(){var t = this.context; return t.length && this.length?t[0].aoData[this[0]].nTr || null:null}), zt("row.add()", function(t){t instanceof a && t.length && (t = t[0]); var e = this.iterator("table", function(e){return t.nodeName && "TR" === t.nodeName.toUpperCase()?y(e, t)[0]:D(e, t)}); return this.row(e[0])}); var Re = function(t, e, n, r){var o = [], i = function(e, n){if (a.isArray(e) || e instanceof a)for (var r = 0, s = e.length; s > r; r++)i(e[r], n); else if (e.nodeName && "tr" === e.nodeName.toLowerCase())o.push(e); else{var l = a("<tr><td/></tr>").addClass(n); a("td", l).addClass(n).html(e)[0].colSpan = b(t), o.push(l[0])}}; i(n, r), e._details && e._details.remove(), e._details = a(o), e._detailsShow && e._details.insertAfter(e.nTr)}, je = function(t, e){var a = t.context; if (a.length){var r = a[0].aoData[e !== n?e:t[0]]; r && r._details && (r._details.remove(), r._detailsShow = n, r._details = n)}}, He = function(t, e){var n = t.context; if (n.length && t.length){var a = n[0].aoData[t[0]]; a._details && (a._detailsShow = e, e?a._details.insertAfter(a.nTr):a._details.detach(), Ne(n[0]))}}, Ne = function(t){var e = new $t(t), n = ".dt.DT_details", a = "draw" + n, r = "column-visibility" + n, o = "destroy" + n, i = t.aoData; e.off(a + " " + r + " " + o), ce(i, "_details").length > 0 && (e.on(a, function(n, a){t === a && e.rows({page:"current"}).eq(0).each(function(t){var e = i[t]; e._detailsShow && e._details.insertAfter(e.nTr)})}), e.on(r, function(e, n, a, r){if (t === n)for (var o, s = b(n), l = 0, u = i.length; u > l; l++)o = i[l], o._details && o._details.children("td[colspan]").attr("colspan", s)}), e.on(o, function(n, a){if (t === a)for (var r = 0, o = i.length; o > r; r++)i[r]._details && je(e, r)}))}, ke = "", Oe = ke + "row().child", Me = Oe + "()"; zt(Me, function(t, e){var a = this.context; return t === n?a.length && this.length?a[0].aoData[this[0]]._details:n:(t === !0?this.child.show():t === !1?je(this):a.length && this.length && Re(a[0], a[0].aoData[this[0]], t, e), this)}), zt([Oe + ".show()", Me + ".show()"], function(t){return He(this, !0), this}), zt([Oe + ".hide()", Me + ".hide()"], function(){return He(this, !1), this}), zt([Oe + ".remove()", Me + ".remove()"], function(){return je(this), this}), zt(Oe + ".isShown()", function(){var t = this.context; return t.length && this.length?t[0].aoData[this[0]]._detailsShow || !1:!1}); var We = /^(.+):(name|visIdx|visible)$/, Ue = function(t, e, n, a, r){for (var o = [], i = 0, s = r.length; s > i; i++)o.push(w(t, r[i], e)); return o}, Ee = function(t, e, n){var r = t.aoColumns, o = ce(r, "sName"), i = ce(r, "nTh"), s = function(e){var s = oe(e); if ("" === e)return de(r.length); if (null !== s)return[s >= 0?s:r.length + s]; if ("function" == typeof e){var l = Le(t, n); return a.map(r, function(n, a){return e(a, Ue(t, a, 0, 0, l), i[a])?a:null})}var u = "string" == typeof e?e.match(We):""; if (!u)return a(i).filter(e).map(function(){return a.inArray(this, i)}).toArray(); switch (u[2]){case"visIdx":case"visible":var c = parseInt(u[1], 10); if (0 > c){var f = a.map(r, function(t, e){return t.bVisible?e:null}); return[f[f.length + c]]}return[p(t, c)]; case"name":return a.map(o, function(t, e){return t === u[1]?e:null})}}; return Ie("column", e, s, t, n)}, Be = function(t, e, r, o){var i, s, l, u, c = t.aoColumns, f = c[e], d = t.aoData; if (r === n)return f.bVisible; if (f.bVisible !== r){if (r){var p = a.inArray(!0, ce(c, "bVisible"), e + 1); for (s = 0, l = d.length; l > s; s++)u = d[s].nTr, i = d[s].anCells, u && u.insertBefore(i[e], i[p] || null)} else a(ce(t.aoData, "anCells", e)).detach(); f.bVisible = r, O(t, t.aoHeader), O(t, t.aoFooter), (o === n || o) && (h(t), (t.oScroll.sX || t.oScroll.sY) && bt(t)), Wt(t, null, "column-visibility", [t, e, r]), Pt(t)}}; zt("columns()", function(t, e){t === n?t = "":a.isPlainObject(t) && (e = t, t = ""), e = Ae(e); var r = this.iterator("table", function(n){return Ee(n, t, e)}, 1); return r.selector.cols = t, r.selector.opts = e, r}), Yt("columns().header()", "column().header()", function(t, e){return this.iterator("column", function(t, e){return t.aoColumns[e].nTh}, 1)}), Yt("columns().footer()", "column().footer()", function(t, e){return this.iterator("column", function(t, e){return t.aoColumns[e].nTf}, 1)}), Yt("columns().data()", "column().data()", function(){return this.iterator("column-rows", Ue, 1)}), Yt("columns().dataSrc()", "column().dataSrc()", function(){return this.iterator("column", function(t, e){return t.aoColumns[e].mData}, 1)}), Yt("columns().cache()", "column().cache()", function(t){return this.iterator("column-rows", function(e, n, a, r, o){return fe(e.aoData, o, "search" === t?"_aFilterData":"_aSortData", n)}, 1)}), Yt("columns().nodes()", "column().nodes()", function(){return this.iterator("column-rows", function(t, e, n, a, r){return fe(t.aoData, r, "anCells", e)}, 1)}), Yt("columns().visible()", "column().visible()", function(t, e){return this.iterator("column", function(a, r){return t === n?a.aoColumns[r].bVisible:void Be(a, r, t, e)})}), Yt("columns().indexes()", "column().index()", function(t){return this.iterator("column", function(e, n){return"visible" === t?g(e, n):n}, 1)}), zt("columns.adjust()", function(){return this.iterator("table", function(t){h(t)}, 1)}), zt("column.index()", function(t, e){if (0 !== this.context.length){var n = this.context[0]; if ("fromVisible" === t || "toData" === t)return p(n, e); if ("fromData" === t || "toVisible" === t)return g(n, e)}}), zt("column()", function(t, e){return Fe(this.columns(t, e))}); var Je = function(t, e, r){var o, i, s, l, u, c, f, d = t.aoData, h = Le(t, r), p = he(fe(d, h, "anCells")), g = a([].concat.apply([], p)), b = t.aoColumns.length, v = function(e){var r = "function" == typeof e; if (null === e || e === n || r){for (i = [], s = 0, l = h.length; l > s; s++)for (o = h[s], u = 0; b > u; u++)c = {row:o, column:u}, r?(f = d[o], e(c, w(t, o, u), f.anCells?f.anCells[u]:null) && i.push(c)):i.push(c); return i}return a.isPlainObject(e)?[e]:g.filter(e).map(function(t, e){if (e.parentNode)o = e.parentNode._DT_RowIndex; else for (t = 0, l = d.length; l > t; t++)if ( - 1 !== a.inArray(e, d[t].anCells)){o = t; break}return{row:o, column:a.inArray(e, d[o].anCells)}}).toArray()}; return Ie("cell", e, v, t, r)}; zt("cells()", function(t, e, r){if (a.isPlainObject(t) && (t.row === n?(r = t, t = null):(r = e, e = null)), a.isPlainObject(e) && (r = e, e = null), null === e || e === n)return this.iterator("table", function(e){return Je(e, t, Ae(r))}); var o, i, s, l, u, c = this.columns(e, r), f = this.rows(t, r), d = this.iterator("table", function(t, e){for (o = [], i = 0, s = f[e].length; s > i; i++)for (l = 0, u = c[e].length; u > l; l++)o.push({row:f[e][i], column:c[e][l]}); return o}, 1); return a.extend(d.selector, {cols:e, rows:t, opts:r}), d}), Yt("cells().nodes()", "cell().node()", function(){return this.iterator("cell", function(t, e, a){var r = t.aoData[e].anCells; return r?r[a]:n}, 1)}), zt("cells().data()", function(){return this.iterator("cell", function(t, e, n){return w(t, e, n)}, 1)}), Yt("cells().cache()", "cell().cache()", function(t){return t = "search" === t?"_aFilterData":"_aSortData", this.iterator("cell", function(e, n, a){return e.aoData[n][t][a]}, 1)}), Yt("cells().render()", "cell().render()", function(t){return this.iterator("cell", function(e, n, a){return w(e, n, a, t)}, 1)}), Yt("cells().indexes()", "cell().index()", function(){return this.iterator("cell", function(t, e, n){return{row:e, column:n, columnVisible:g(t, n)}}, 1)}), Yt("cells().invalidate()", "cell().invalidate()", function(t){return this.iterator("cell", function(e, n, a){R(e, n, t, a)})}), zt("cell()", function(t, e, n){return Fe(this.cells(t, e, n))}), zt("cell().data()", function(t){var e = this.context, a = this[0]; return t === n?e.length && a.length?w(e[0], a[0].row, a[0].column):n:(C(e[0], a[0].row, a[0].column, t), R(e[0], a[0].row, "data", a[0].column), this)}), zt("order()", function(t, e){var r = this.context; return t === n?0 !== r.length?r[0].aaSorting:n:("number" == typeof t?t = [[t, e]]:a.isArray(t[0]) || (t = Array.prototype.slice.call(arguments)), this.iterator("table", function(e){e.aaSorting = t.slice()}))}), zt("order.listener()", function(t, e, n){return this.iterator("table", function(a){
|
3 |
At(a, t, e, n)})}), zt(["columns().order()", "column().order()"], function(t){var e = this; return this.iterator("table", function(n, r){var o = []; a.each(e[r], function(e, n){o.push([n, t])}), n.aaSorting = o})}), zt("search()", function(t, e, r, o){var i = this.context; return t === n?0 !== i.length?i[0].oPreviousSearch.sSearch:n:this.iterator("table", function(n){n.oFeatures.bFilter && z(n, a.extend({}, n.oPreviousSearch, {sSearch:t + "", bRegex:null === e?!1:e, bSmart:null === r?!0:r, bCaseInsensitive:null === o?!0:o}), 1)})}), Yt("columns().search()", "column().search()", function(t, e, r, o){return this.iterator("column", function(i, s){var l = i.aoPreSearchCols; return t === n?l[s].sSearch:void(i.oFeatures.bFilter && (a.extend(l[s], {sSearch:t + "", bRegex:null === e?!1:e, bSmart:null === r?!0:r, bCaseInsensitive:null === o?!0:o}), z(i, i.oPreviousSearch, 1)))})}), zt("state()", function(){return this.context.length?this.context[0].oSavedState:null}), zt("state.clear()", function(){return this.iterator("table", function(t){t.fnStateSaveCallback.call(t.oInstance, t, {})})}), zt("state.loaded()", function(){return this.context.length?this.context[0].oLoadedState:null}), zt("state.save()", function(){return this.iterator("table", function(t){Pt(t)})}), qt.versionCheck = qt.fnVersionCheck = function(t){for (var e, n, a = qt.version.split("."), r = t.split("."), o = 0, i = r.length; i > o; o++)if (e = parseInt(a[o], 10) || 0, n = parseInt(r[o], 10) || 0, e !== n)return e > n; return!0}, qt.isDataTable = qt.fnIsDataTable = function(t){var e = a(t).get(0), n = !1; return a.each(qt.settings, function(t, r){var o = r.nScrollHead?a("table", r.nScrollHead)[0]:null, i = r.nScrollFoot?a("table", r.nScrollFoot)[0]:null; (r.nTable === e || o === e || i === e) && (n = !0)}), n}, qt.tables = qt.fnTables = function(t){var e = !1; a.isPlainObject(t) && (e = t.api, t = t.visible); var n = a.map(qt.settings, function(e){return!t || t && a(e.nTable).is(":visible")?e.nTable:void 0}); return e?new $t(n):n}, qt.util = {throttle:mt, escapeRegex:tt}, qt.camelToHungarian = o, zt("$()", function(t, e){var n = this.rows(e).nodes(), r = a(n); return a([].concat(r.filter(t).toArray(), r.find(t).toArray()))}), a.each(["on", "one", "off"], function(t, e){zt(e + "()", function(){var t = Array.prototype.slice.call(arguments); t[0].match(/\.dt\b/) || (t[0] += ".dt"); var n = a(this.tables().nodes()); return n[e].apply(n, t), this})}), zt("clear()", function(){return this.iterator("table", function(t){L(t)})}), zt("settings()", function(){return new $t(this.context, this.context)}), zt("init()", function(){var t = this.context; return t.length?t[0].oInit:null}), zt("data()", function(){return this.iterator("table", function(t){return ce(t.aoData, "_aData")}).flatten()}), zt("destroy()", function(e){return e = e || !1, this.iterator("table", function(n){var r, o = n.nTableWrapper.parentNode, i = n.oClasses, s = n.nTable, l = n.nTBody, u = n.nTHead, c = n.nTFoot, f = a(s), d = a(l), h = a(n.nTableWrapper), p = a.map(n.aoData, function(t){return t.nTr}); n.bDestroying = !0, Wt(n, "aoDestroyCallback", "destroy", [n]), e || new $t(n).columns().visible(!0), h.unbind(".DT").find(":not(tbody *)").unbind(".DT"), a(t).unbind(".DT-" + n.sInstance), s != u.parentNode && (f.children("thead").detach(), f.append(u)), c && s != c.parentNode && (f.children("tfoot").detach(), f.append(c)), n.aaSorting = [], n.aaSortingFixed = [], Ft(n), a(p).removeClass(n.asStripeClasses.join(" ")), a("th, td", u).removeClass(i.sSortable + " " + i.sSortableAsc + " " + i.sSortableDesc + " " + i.sSortableNone), n.bJUI && (a("th span." + i.sSortIcon + ", td span." + i.sSortIcon, u).detach(), a("th, td", u).each(function(){var t = a("div." + i.sSortJUIWrapper, this); a(this).append(t.contents()), t.detach()})), d.children().detach(), d.append(p); var g = e?"remove":"detach"; f[g](), h[g](), !e && o && (o.insertBefore(s, n.nTableReinsertBefore), f.css("width", n.sDestroyWidth).removeClass(i.sTable), r = n.asDestroyStripes.length, r && d.children().each(function(t){a(this).addClass(n.asDestroyStripes[t % r])})); var b = a.inArray(n, qt.settings); - 1 !== b && qt.settings.splice(b, 1)})}), a.each(["column", "row", "cell"], function(t, e){zt(e + "s().every()", function(t){return this.iterator(e, function(a, r, o, i, s){t.call(new $t(a)[e](r, "cell" === e?o:n), r, o, i, s)})})}), zt("i18n()", function(t, e, r){var o = this.context[0], i = I(t)(o.oLanguage); return i === n && (i = e), r !== n && a.isPlainObject(i) && (i = i[r] !== n?i[r]:i._), i.replace("%d", r)}), qt.version = "1.10.9", qt.settings = [], qt.models = {}, qt.models.oSearch = {bCaseInsensitive:!0, sSearch:"", bRegex:!1, bSmart:!0}, qt.models.oRow = {nTr:null, anCells:null, _aData:[], _aSortData:null, _aFilterData:null, _sFilterRow:null, _sRowStripe:"", src:null, idx: - 1}, qt.models.oColumn = {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}, qt.defaults = {aaData:null, aaSorting:[[0, "asc"]], aaSortingFixed:[], ajax:null, aLengthMenu:[10, 25, 50, 100], aoColumns:null, aoColumnDefs:null, aoSearchCols:[], asStripeClasses:null, bAutoWidth:!0, bDeferRender:!1, bDestroy:!1, bFilter:!0, bInfo:!0, bJQueryUI:!1, 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(t){return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.oLanguage.sThousands)}, fnHeaderCallback:null, fnInfoCallback:null, fnInitComplete:null, fnPreDrawCallback:null, fnRowCallback:null, fnServerData:null, fnServerParams:null, fnStateLoadCallback:function(t){try{return JSON.parse(( - 1 === t.iStateDuration?sessionStorage:localStorage).getItem("DataTables_" + t.sInstance + "_" + location.pathname))} catch (e){}}, fnStateLoadParams:null, fnStateLoaded:null, fnStateSaveCallback:function(t, e){try{( - 1 === t.iStateDuration?sessionStorage:localStorage).setItem("DataTables_" + t.sInstance + "_" + location.pathname, JSON.stringify(e))} catch (n){}}, fnStateSaveParams:null, 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:"", sThousands:",", sLengthMenu:"Show _MENU_ entries", sLoadingRecords:"Loading...", sProcessing:"Processing...", sSearch:"Search:", sSearchPlaceholder:"", sUrl:"", sZeroRecords:"No matching records found"}, oSearch:a.extend({}, qt.models.oSearch), sAjaxDataProp:"data", sAjaxSource:null, sDom:"lfrtip", searchDelay:null, sPaginationType:"simple_numbers", sScrollX:"", sScrollXInner:"", sScrollY:"", sServerMethod:"GET", renderer:null, rowId:"DT_RowId"}, r(qt.defaults), qt.defaults.column = {aDataSort:null, iDataSort: - 1, asSorting:["asc", "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}, r(qt.defaults.column), qt.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, 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:[], 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, bAjaxDataGet:!0, jqXHR:null, json:n, oAjaxData:n, fnServerData:null, aoServerParams:[], sServerMethod:null, fnFormatNumber:null, aLengthMenu:null, iDraw:0, bDrawing:!1, iDrawError: - 1, _iDisplayLength:10, _iDisplayStart:0, _iRecordsTotal:0, _iRecordsDisplay:0, bJUI:null, oClasses:{}, bFiltered:!1, bSorted:!1, bSortCellsTop:null, oInit:null, aoDestroyCallback:[], fnRecordsTotal:function(){return"ssp" == Bt(this)?1 * this._iRecordsTotal:this.aiDisplayMaster.length}, fnRecordsDisplay:function(){return"ssp" == Bt(this)?1 * this._iRecordsDisplay:this.aiDisplay.length}, fnDisplayEnd:function(){var t = this._iDisplayLength, e = this._iDisplayStart, n = e + t, a = this.aiDisplay.length, r = this.oFeatures, o = r.bPaginate; return r.bServerSide?o === !1 || - 1 === t?e + a:Math.min(e + t, this._iRecordsDisplay):!o || n > a || - 1 === t?a:n}, oInstance:null, sInstance:null, iTabIndex:0, nScrollHead:null, nScrollFoot:null, aLastSort:[], oPlugins:{}, rowIdFn:null, rowId:null}, qt.ext = Gt = {buttons:{}, classes:{}, errMode:"alert", feature:[], search:[], selector:{cell:[], column:[], row:[]}, internal:{}, legacy:{ajax:null}, pager:{}, renderer:{pageButton:{}, header:{}}, order:{}, type:{detect:[], search:{}, order:{}}, _unique:0, fnVersionCheck:qt.fnVersionCheck, iApiIndex:0, oJUIClasses:{}, sVersion:qt.version}, a.extend(Gt, {afnFiltering:Gt.search, aTypes:Gt.type.detect, ofnSearch:Gt.type.search, oSort:Gt.type.order, afnSortData:Gt.order, aoFeatures:Gt.feature, oApi:Gt.internal, oStdClasses:Gt.classes, oPagination:Gt.pager}), a.extend(qt.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", sInfo:"dataTables_info", sPaging:"dataTables_paginate paging_", sLength:"dataTables_length", sProcessing:"dataTables_processing", sSortAsc:"sorting_asc", sSortDesc:"sorting_desc", sSortable:"sorting", sSortableAsc:"sorting_asc_disabled", sSortableDesc:"sorting_desc_disabled", sSortableNone:"sorting_disabled", sSortColumn:"sorting_", sFilterInput:"", sLengthSelect:"", sScrollWrapper:"dataTables_scroll", sScrollHead:"dataTables_scrollHead", sScrollHeadInner:"dataTables_scrollHeadInner", sScrollBody:"dataTables_scrollBody", sScrollFoot:"dataTables_scrollFoot", sScrollFootInner:"dataTables_scrollFootInner", sHeaderTH:"", sFooterTH:"", sSortJUIAsc:"", sSortJUIDesc:"", sSortJUI:"", sSortJUIAscAllowed:"", sSortJUIDescAllowed:"", sSortJUIWrapper:"", sSortIcon:"", sJUIHeader:"", sJUIFooter:""}), function(){var t = ""; t = ""; var e = t + "ui-state-default", n = t + "css_right ui-icon ui-icon-", r = t + "fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix"; a.extend(qt.ext.oJUIClasses, qt.ext.classes, {sPageButton:"fg-button ui-button " + e, sPageButtonActive:"ui-state-disabled", sPageButtonDisabled:"ui-state-disabled", sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_", sSortAsc:e + " sorting_asc", sSortDesc:e + " sorting_desc", sSortable:e + " sorting", sSortableAsc:e + " sorting_asc_disabled", sSortableDesc:e + " sorting_desc_disabled", sSortableNone:e + " sorting_disabled", sSortJUIAsc:n + "triangle-1-n", sSortJUIDesc:n + "triangle-1-s", sSortJUI:n + "carat-2-n-s", sSortJUIAscAllowed:n + "carat-1-n", sSortJUIDescAllowed:n + "carat-1-s", sSortJUIWrapper:"DataTables_sort_wrapper", sSortIcon:"DataTables_sort_icon", sScrollHead:"dataTables_scrollHead " + e, sScrollFoot:"dataTables_scrollFoot " + e, sHeaderTH:e, sFooterTH:e, sJUIHeader:r + " ui-corner-tl ui-corner-tr", sJUIFooter:r + " ui-corner-bl ui-corner-br"})}(); var Xe = qt.ext.pager; a.extend(Xe, {simple:function(t, e){return["previous", "next"]}, full:function(t, e){return["first", "previous", "next", "last"]}, numbers:function(t, e){return[Jt(t, e)]}, simple_numbers:function(t, e){return["previous", Jt(t, e), "next"]}, full_numbers:function(t, e){return["first", "previous", Jt(t, e), "next", "last"]}, _numbers:Jt, numbers_length:7}), a.extend(!0, qt.ext.renderer, {pageButton:{_:function(t, n, r, o, i, s){var l, u, c, f = t.oClasses, d = t.oLanguage.oPaginate, h = 0, p = function(e, n){var o, c, g, b, v = function(e){dt(t, e.data.action, !0)}; for (o = 0, c = n.length; c > o; o++)if (b = n[o], a.isArray(b)){var S = a("<" + (b.DT_el || "div") + "/>").appendTo(e); p(S, b)} else{switch (l = null, u = "", b){case"ellipsis":e.append('<span class="ellipsis">…</span>'); break; case"first":l = d.sFirst, u = b + (i > 0?"":" " + f.sPageButtonDisabled); break; case"previous":l = d.sPrevious, u = b + (i > 0?"":" " + f.sPageButtonDisabled); break; case"next":l = d.sNext, u = b + (s - 1 > i?"":" " + f.sPageButtonDisabled); break; case"last":l = d.sLast, u = b + (s - 1 > i?"":" " + f.sPageButtonDisabled); break; default:l = b + 1, u = i === b?f.sPageButtonActive:""}null !== l && (g = a("<a>", {"class":f.sPageButton + " " + u, "aria-controls":t.sTableId, "data-dt-idx":h, tabindex:t.iTabIndex, id:0 === r && "string" == typeof b?t.sTableId + "_" + b:null}).html(l).appendTo(e), Ot(g, {action:b}, v), h++)}}; try{c = a(n).find(e.activeElement).data("dt-idx")} catch (g){}p(a(n).empty(), o), c && a(n).find("[data-dt-idx=" + c + "]").focus()}}}), a.extend(qt.ext.type.detect, [function(t, e){var n = e.oLanguage.sDecimal; return se(t, n)?"num" + n:null}, function(t, e){if (t && !(t instanceof Date) && (!te.test(t) || !ee.test(t)))return null; var n = Date.parse(t); return null !== n && !isNaN(n) || re(t)?"date":null}, function(t, e){var n = e.oLanguage.sDecimal; return se(t, n, !0)?"num-fmt" + n:null}, function(t, e){var n = e.oLanguage.sDecimal; return ue(t, n)?"html-num" + n:null}, function(t, e){var n = e.oLanguage.sDecimal; return ue(t, n, !0)?"html-num-fmt" + n:null}, function(t, e){return re(t) || "string" == typeof t && - 1 !== t.indexOf("<")?"html":null}]), a.extend(qt.ext.type.search, {html:function(t){return re(t)?t:"string" == typeof t?t.replace(Zt, " ").replace(Kt, ""):""}, string:function(t){return re(t)?t:"string" == typeof t?t.replace(Zt, " "):t}}); var Ve = function(t, e, n, a){return 0 === t || t && "-" !== t?(e && (t = ie(t, e)), t.replace && (n && (t = t.replace(n, "")), a && (t = t.replace(a, ""))), 1 * t): - (1 / 0)}; return a.extend(Gt.type.order, {"date-pre":function(t){return Date.parse(t) || 0}, "html-pre":function(t){return re(t)?"":t.replace?t.replace(/<.*?>/g, "").toLowerCase():t + ""}, "string-pre":function(t){return re(t)?"":"string" == typeof t?t.toLowerCase():t.toString?t.toString():""}, "string-asc":function(t, e){return e > t? - 1:t > e?1:0}, "string-desc":function(t, e){return e > t?1:t > e? - 1:0}}), Xt(""), a.extend(!0, qt.ext.renderer, {header:{_:function(t, e, n, r){a(t.nTable).on("order.dt.DT", function(a, o, i, s){if (t === o){var l = n.idx; e.removeClass(n.sSortingClass + " " + r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[l]?r.sSortAsc:"desc" == s[l]?r.sSortDesc:n.sSortingClass)}})}, jqueryui:function(t, e, n, r){a("<div/>").addClass(r.sSortJUIWrapper).append(e.contents()).append(a("<span/>").addClass(r.sSortIcon + " " + n.sSortingClassJUI)).appendTo(e), a(t.nTable).on("order.dt.DT", function(a, o, i, s){if (t === o){var l = n.idx; e.removeClass(r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[l]?r.sSortAsc:"desc" == s[l]?r.sSortDesc:n.sSortingClass), e.find("span." + r.sSortIcon).removeClass(r.sSortJUIAsc + " " + r.sSortJUIDesc + " " + r.sSortJUI + " " + r.sSortJUIAscAllowed + " " + r.sSortJUIDescAllowed).addClass("asc" == s[l]?r.sSortJUIAsc:"desc" == s[l]?r.sSortJUIDesc:n.sSortingClassJUI)}})}}}), qt.render = {number:function(t, e, n, a, r){return{display:function(o){if ("number" != typeof o && "string" != typeof o)return o; var i = 0 > o?"-":""; o = Math.abs(parseFloat(o)); var s = parseInt(o, 10), l = n?e + (o - s).toFixed(n).substring(2):""; return i + (a || "") + s.toString().replace(/\B(?=(\d{3})+(?!\d))/g, t) + l + (r || "")}}}}, a.extend(qt.ext.internal, {_fnExternApiFunc:Vt, _fnBuildAjax:J, _fnAjaxUpdate:X, _fnAjaxParameters:V, _fnAjaxUpdateDraw:q, _fnAjaxDataSrc:G, _fnAddColumn:f, _fnColumnOptions:d, _fnAdjustColumnSizing:h, _fnVisibleToColumnIndex:p, _fnColumnIndexToVisible:g, _fnVisbleColumns:b, _fnGetColumns:v, _fnColumnTypes:S, _fnApplyColumnDefs:m, _fnHungarianMap:r, _fnCamelToHungarian:o, _fnLanguageCompat:i, _fnBrowserDetect:u, _fnAddData:D, _fnAddTr:y, _fnNodeToDataIndex:_, _fnNodeToColumnIndex:T, _fnGetCellData:w, _fnSetCellData:C, _fnSplitObjNotation:x, _fnGetObjectDataFn:I, _fnSetObjectDataFn:A, _fnGetDataMaster:F, _fnClearTable:L, _fnDeleteIndex:P, _fnInvalidate:R, _fnGetRowElements:j, _fnCreateTr:H, _fnBuildHead:k, _fnDrawHead:O, _fnDraw:M, _fnReDraw:W, _fnAddOptionsHtml:U, _fnDetectHeader:E, _fnGetUniqueThs:B, _fnFeatureHtmlFilter:$, _fnFilterComplete:z, _fnFilterCustom:Y, _fnFilterColumn:Q, _fnFilter:Z, _fnFilterCreateSearch:K, _fnEscapeRegex:tt, _fnFilterData:et, _fnFeatureHtmlInfo:rt, _fnUpdateInfo:ot, _fnInfoMacros:it, _fnInitialise:st, _fnInitComplete:lt, _fnLengthChange:ut, _fnFeatureHtmlLength:ct, _fnFeatureHtmlPaginate:ft, _fnPageChange:dt, _fnFeatureHtmlProcessing:ht, _fnProcessingDisplay:pt, _fnFeatureHtmlTable:gt, _fnScrollDraw:bt, _fnApplyToChildren:vt, _fnCalculateColumnWidths:St, _fnThrottle:mt, _fnConvertToWidth:Dt, _fnGetWidestNode:yt, _fnGetMaxLenString:_t, _fnStringToCss:Tt, _fnSortFlatten:wt, _fnSort:Ct, _fnSortAria:xt, _fnSortListener:It, _fnSortAttachListener:At, _fnSortingClasses:Ft, _fnSortData:Lt, _fnSaveState:Pt, _fnLoadState:Rt, _fnSettingsFromNode:jt, _fnLog:Ht, _fnMap:Nt, _fnBindAction:Ot, _fnCallbackReg:Mt, _fnCallbackFire:Wt, _fnLengthOverflow:Ut, _fnRenderer:Et, _fnDataSource:Bt, _fnRowAttributes:N, _fnCalculateEnd:function(){}}), a.fn.dataTable = qt, a.fn.dataTableSettings = qt.settings, a.fn.dataTableExt = qt.ext, a.fn.DataTable = function(t){return a(this).dataTable(t).api()}, a.each(qt, function(t, e){a.fn.DataTable[t] = e}), a.fn.dataTable})}(window, document), function(t, e, n){var a = function(t, n){"use strict"; t.extend(!0, n.defaults, {dom:"<'row'<'col-sm-5'><'col-sm-4'f><'col-sm-3'l>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>", renderer:"bootstrap"}), t.extend(n.ext.classes, {sWrapper:"dataTables_wrapper form-inline dt-bootstrap", sFilterInput:"form-control input-sm", sLengthSelect:"form-control input-sm"}), n.ext.renderer.pageButton.bootstrap = function(a, r, o, i, s, l){var u, c, f, d = new n.Api(a), h = a.oClasses, p = a.oLanguage.oPaginate, g = 0, b = function(e, n){var r, i, f, v, S = function(e){e.preventDefault(), t(e.currentTarget).hasClass("disabled") || d.page(e.data.action).draw("page")}; for (r = 0, i = n.length; i > r; r++)if (v = n[r], t.isArray(v))b(e, v); else{switch (u = "", c = "", v){case"ellipsis":u = "…", c = "disabled"; break; case"first":u = p.sFirst, c = v + (s > 0?"":" disabled"); break; case"previous":u = p.sPrevious, c = v + (s > 0?"":" disabled"); break; case"next":u = p.sNext, c = v + (l - 1 > s?"":" disabled"); break; case"last":u = p.sLast, c = v + (l - 1 > s?"":" disabled"); break; default:u = v + 1, c = s === v?"active":""}u && (f = t("<li>", {"class":h.sPageButton + " " + c, id:0 === o && "string" == typeof v?a.sTableId + "_" + v:null}).append(t("<a>", {href:"#", "aria-controls":a.sTableId, "data-dt-idx":g, tabindex:a.iTabIndex}).html(u)).appendTo(e), a.oApi._fnBindAction(f, {action:v}, S), g++)}}; try{f = t(r).find(e.activeElement).data("dt-idx")} catch (v){}b(t(r).empty().html('<ul class="pagination"/>').children("ul"), i), f && t(r).find("[data-dt-idx=" + f + "]").focus()}, n.TableTools && (t.extend(!0, n.TableTools.classes, {container:"DTTT btn-group", buttons:{normal:"btn btn-default", disabled:"disabled"}, collection:{container:"DTTT_dropdown dropdown-menu", buttons:{normal:"", disabled:"disabled"}}, print:{info:"DTTT_print_info"}, select:{row:"active"}}), t.extend(!0, n.TableTools.DEFAULTS.oTags, {collection:{container:"ul", button:"li", liner:"a"}}))}; "function" == typeof define && define.amd?define(["jquery", "datatables"], a):"object" == typeof exports?a(require("jquery"), require("datatables")):jQuery && a(jQuery, jQuery.fn.dataTable)}(window, document);
|
1 |
!function(t, e, n){!function(t){"use strict"; "function" == typeof define && define.amd?define("datatables", ["jquery"], t):"object" == typeof exports?module.exports = t(require("jquery")):jQuery && !jQuery.fn.dataTable && t(jQuery)}(function(a){"use strict"; function r(t){var e, n, o = "a aa ai ao as b fn i m o s ", i = {}; a.each(t, function(a, s){e = a.match(/^([^A-Z]+?)([A-Z])/), e && - 1 !== o.indexOf(e[1] + " ") && (n = a.replace(e[0], e[2].toLowerCase()), i[n] = a, "o" === e[1] && r(t[a]))}), t._hungarianMap = i}function o(t, e, i){t._hungarianMap || r(t); var s; a.each(e, function(r, l){s = t._hungarianMap[r], s === n || !i && e[s] !== n || ("o" === s.charAt(0)?(e[s] || (e[s] = {}), a.extend(!0, e[s], e[r]), o(t[s], e[s], i)):e[s] = e[r])})}function i(t){var e = qt.defaults.oLanguage, n = t.sZeroRecords; !t.sEmptyTable && n && "No data available in table" === e.sEmptyTable && Nt(t, t, "sZeroRecords", "sEmptyTable"), !t.sLoadingRecords && n && "Loading..." === e.sLoadingRecords && Nt(t, t, "sZeroRecords", "sLoadingRecords"), t.sInfoThousands && (t.sThousands = t.sInfoThousands); var a = t.sDecimal; a && Xt(a)}function s(t){be(t, "ordering", "bSort"), be(t, "orderMulti", "bSortMulti"), be(t, "orderClasses", "bSortClasses"), be(t, "orderCellsTop", "bSortCellsTop"), be(t, "order", "aaSorting"), be(t, "orderFixed", "aaSortingFixed"), be(t, "paging", "bPaginate"), be(t, "pagingType", "sPaginationType"), be(t, "pageLength", "iDisplayLength"), be(t, "searching", "bFilter"), "boolean" == typeof t.sScrollX && (t.sScrollX = t.sScrollX?"100%":""); var e = t.aoSearchCols; if (e)for (var n = 0, a = e.length; a > n; n++)e[n] && o(qt.models.oSearch, e[n])}function l(t){be(t, "orderable", "bSortable"), be(t, "orderData", "aDataSort"), be(t, "orderSequence", "asSorting"), be(t, "orderDataType", "sortDataType"); var e = t.aDataSort; e && !a.isArray(e) && (t.aDataSort = [e])}function u(t){if (!qt.__browser){var e = {}; qt.__browser = e; var n = a("<div/>").css({position:"fixed", top:0, left:0, height:1, width:1, overflow:"hidden"}).append(a("<div/>").css({position:"absolute", top:1, left:1, width:100, overflow:"scroll"}).append(a("<div/>").css({width:"100%", height:10}))).appendTo("body"), r = n.children(), o = r.children(); e.barWidth = r[0].offsetWidth - r[0].clientWidth, e.bScrollOversize = 100 === o[0].offsetWidth && 100 !== r[0].clientWidth, e.bScrollbarLeft = 1 !== Math.round(o.offset().left), e.bBounding = n[0].getBoundingClientRect().width?!0:!1, n.remove()}a.extend(t.oBrowser, qt.__browser), t.oScroll.iBarWidth = qt.__browser.barWidth}function c(t, e, a, r, o, i){var s, l = r, u = !1; for (a !== n && (s = a, u = !0); l !== o; )t.hasOwnProperty(l) && (s = u?e(s, t[l], l, t):t[l], u = !0, l += i); return s}function f(t, n){var r = qt.defaults.column, o = t.aoColumns.length, i = a.extend({}, qt.models.oColumn, r, {nTh:n?n:e.createElement("th"), sTitle:r.sTitle?r.sTitle:n?n.innerHTML:"", aDataSort:r.aDataSort?r.aDataSort:[o], mData:r.mData?r.mData:o, idx:o}); t.aoColumns.push(i); var s = t.aoPreSearchCols; s[o] = a.extend({}, qt.models.oSearch, s[o]), d(t, o, a(n).data())}function d(t, e, r){var i = t.aoColumns[e], s = t.oClasses, u = a(i.nTh); if (!i.sWidthOrig){i.sWidthOrig = u.attr("width") || null; var c = (u.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/); c && (i.sWidthOrig = c[1])}r !== n && null !== r && (l(r), o(qt.defaults.column, r), r.mDataProp === n || r.mData || (r.mData = r.mDataProp), r.sType && (i._sManualType = r.sType), r.className && !r.sClass && (r.sClass = r.className), a.extend(i, r), Nt(i, r, "sWidth", "sWidthOrig"), r.iDataSort !== n && (i.aDataSort = [r.iDataSort]), Nt(i, r, "aDataSort")); var f = i.mData, d = I(f), h = i.mRender?I(i.mRender):null, p = function(t){return"string" == typeof t && - 1 !== t.indexOf("@")}; i._bAttrSrc = a.isPlainObject(f) && (p(f.sort) || p(f.type) || p(f.filter)), i.fnGetData = function(t, e, a){var r = d(t, e, n, a); return h && e?h(r, e, t, a):r}, i.fnSetData = function(t, e, n){return A(f)(t, e, n)}, "number" != typeof f && (t._rowReadObject = !0), t.oFeatures.bSort || (i.bSortable = !1, u.addClass(s.sSortableNone)); var g = - 1 !== a.inArray("asc", i.asSorting), b = - 1 !== a.inArray("desc", i.asSorting); i.bSortable && (g || b)?g && !b?(i.sSortingClass = s.sSortableAsc, i.sSortingClassJUI = s.sSortJUIAscAllowed):!g && b?(i.sSortingClass = s.sSortableDesc, i.sSortingClassJUI = s.sSortJUIDescAllowed):(i.sSortingClass = s.sSortable, i.sSortingClassJUI = s.sSortJUI):(i.sSortingClass = s.sSortableNone, i.sSortingClassJUI = "")}function h(t){if (t.oFeatures.bAutoWidth !== !1){var e = t.aoColumns; St(t); for (var n = 0, a = e.length; a > n; n++)e[n].nTh.style.width = e[n].sWidth}var r = t.oScroll; ("" !== r.sY || "" !== r.sX) && bt(t), Wt(t, null, "column-sizing", [t])}function p(t, e){var n = v(t, "bVisible"); return"number" == typeof n[e]?n[e]:null}function g(t, e){var n = v(t, "bVisible"), r = a.inArray(e, n); return - 1 !== r?r:null}function b(t){return v(t, "bVisible").length}function v(t, e){var n = []; return a.map(t.aoColumns, function(t, a){t[e] && n.push(a)}), n}function S(t){var e, a, r, o, i, s, l, u, c, f = t.aoColumns, d = t.aoData, h = qt.ext.type.detect; for (e = 0, a = f.length; a > e; e++)if (l = f[e], c = [], !l.sType && l._sManualType)l.sType = l._sManualType; else if (!l.sType){for (r = 0, o = h.length; o > r; r++){for (i = 0, s = d.length; s > i && (c[i] === n && (c[i] = w(t, i, e, "type")), u = h[r](c[i], t), u || r === h.length - 1) && "html" !== u; i++); if (u){l.sType = u; break}}l.sType || (l.sType = "string")}}function m(t, e, r, o){var i, s, l, u, c, d, h, p = t.aoColumns; if (e)for (i = e.length - 1; i >= 0; i--){h = e[i]; var g = h.targets !== n?h.targets:h.aTargets; for (a.isArray(g) || (g = [g]), l = 0, u = g.length; u > l; l++)if ("number" == typeof g[l] && g[l] >= 0){for (; p.length <= g[l]; )f(t); o(g[l], h)} else if ("number" == typeof g[l] && g[l] < 0)o(p.length + g[l], h); else if ("string" == typeof g[l])for (c = 0, d = p.length; d > c; c++)("_all" == g[l] || a(p[c].nTh).hasClass(g[l])) && o(c, h)}if (r)for (i = 0, s = r.length; s > i; i++)o(i, r[i])}function D(t, e, r, o){var i = t.aoData.length, s = a.extend(!0, {}, qt.models.oRow, {src:r?"dom":"data", idx:i}); s._aData = e, t.aoData.push(s); for (var l = t.aoColumns, u = 0, c = l.length; c > u; u++)l[u].sType = null; t.aiDisplayMaster.push(i); var f = t.rowIdFn(e); return f !== n && (t.aIds[f] = s), (r || !t.oFeatures.bDeferRender) && H(t, i, r, o), i}function y(t, e){var n; return e instanceof a || (e = a(e)), e.map(function(e, a){return n = j(t, a), D(t, n.data, a, n.cells)})}function _(t, e){return e._DT_RowIndex !== n?e._DT_RowIndex:null}function T(t, e, n){return a.inArray(n, t.aoData[e].anCells)}function w(t, e, a, r){var o = t.iDraw, i = t.aoColumns[a], s = t.aoData[e]._aData, l = i.sDefaultContent, u = i.fnGetData(s, r, {settings:t, row:e, col:a}); if (u === n)return t.iDrawError != o && null === l && (Ht(t, 0, "Requested unknown parameter " + ("function" == typeof i.mData?"{function}":"'" + i.mData + "'") + " for row " + e, 4), t.iDrawError = o), l; if (u !== s && null !== u || null === l){if ("function" == typeof u)return u.call(s)} else u = l; return null === u && "display" == r?"":u}function C(t, e, n, a){var r = t.aoColumns[n], o = t.aoData[e]._aData; r.fnSetData(o, a, {settings:t, row:e, col:n})}function x(t){return a.map(t.match(/(\\.|[^\.])+/g) || [""], function(t){return t.replace(/\\./g, ".")})}function I(t){if (a.isPlainObject(t)){var e = {}; return a.each(t, function(t, n){n && (e[t] = I(n))}), function(t, a, r, o){var i = e[a] || e._; return i !== n?i(t, a, r, o):t}}if (null === t)return function(t){return t}; if ("function" == typeof t)return function(e, n, a, r){return t(e, n, a, r)}; if ("string" != typeof t || - 1 === t.indexOf(".") && - 1 === t.indexOf("[") && - 1 === t.indexOf("("))return function(e, n){return e[t]}; var r = function(t, e, o){var i, s, l, u; if ("" !== o)for (var c = x(o), f = 0, d = c.length; d > f; f++){if (i = c[f].match(ve), s = c[f].match(Se), i){if (c[f] = c[f].replace(ve, ""), "" !== c[f] && (t = t[c[f]]), l = [], c.splice(0, f + 1), u = c.join("."), a.isArray(t))for (var h = 0, p = t.length; p > h; h++)l.push(r(t[h], e, u)); var g = i[0].substring(1, i[0].length - 1); t = "" === g?l:l.join(g); break}if (s)c[f] = c[f].replace(Se, ""), t = t[c[f]](); else{if (null === t || t[c[f]] === n)return n; t = t[c[f]]}}return t}; return function(e, n){return r(e, n, t)}}function A(t){if (a.isPlainObject(t))return A(t._); if (null === t)return function(){}; if ("function" == typeof t)return function(e, n, a){t(e, "set", n, a)}; if ("string" != typeof t || - 1 === t.indexOf(".") && - 1 === t.indexOf("[") && - 1 === t.indexOf("("))return function(e, n){e[t] = n}; var e = function(t, r, o){for (var i, s, l, u, c, f = x(o), d = f[f.length - 1], h = 0, p = f.length - 1; p > h; h++){if (s = f[h].match(ve), l = f[h].match(Se), s){if (f[h] = f[h].replace(ve, ""), t[f[h]] = [], i = f.slice(), i.splice(0, h + 1), c = i.join("."), a.isArray(r))for (var g = 0, b = r.length; b > g; g++)u = {}, e(u, r[g], c), t[f[h]].push(u); else t[f[h]] = r; return}l && (f[h] = f[h].replace(Se, ""), t = t[f[h]](r)), (null === t[f[h]] || t[f[h]] === n) && (t[f[h]] = {}), t = t[f[h]]}d.match(Se)?t = t[d.replace(Se, "")](r):t[d.replace(ve, "")] = r}; return function(n, a){return e(n, a, t)}}function F(t){return ce(t.aoData, "_aData")}function L(t){t.aoData.length = 0, t.aiDisplayMaster.length = 0, t.aiDisplay.length = 0, t.aIds = {}}function P(t, e, a){for (var r = - 1, o = 0, i = t.length; i > o; o++)t[o] == e?r = o:t[o] > e && t[o]--; - 1 != r && a === n && t.splice(r, 1)}function R(t, e, a, r){var o, i, s = t.aoData[e], l = function(n, a){for (; n.childNodes.length; )n.removeChild(n.firstChild); n.innerHTML = w(t, e, a, "display")}; if ("dom" !== a && (a && "auto" !== a || "dom" !== s.src)){var u = s.anCells; if (u)if (r !== n)l(u[r], r); else for (o = 0, i = u.length; i > o; o++)l(u[o], o)} else s._aData = j(t, s, r, r === n?n:s._aData).data; s._aSortData = null, s._aFilterData = null; var c = t.aoColumns; if (r !== n)c[r].sType = null; else{for (o = 0, i = c.length; i > o; o++)c[o].sType = null; N(t, s)}}function j(t, e, r, o){var i, s, l, u = [], c = e.firstChild, f = 0, d = t.aoColumns, h = t._rowReadObject; o = o !== n?o:h?{}:[]; var p = function(t, e){if ("string" == typeof t){var n = t.indexOf("@"); if ( - 1 !== n){var a = t.substring(n + 1), r = A(t); r(o, e.getAttribute(a))}}}, g = function(t){if (r === n || r === f)if (s = d[f], l = a.trim(t.innerHTML), s && s._bAttrSrc){var e = A(s.mData._); e(o, l), p(s.mData.sort, t), p(s.mData.type, t), p(s.mData.filter, t)} else h?(s._setter || (s._setter = A(s.mData)), s._setter(o, l)):o[f] = l; f++}; if (c)for (; c; )i = c.nodeName.toUpperCase(), ("TD" == i || "TH" == i) && (g(c), u.push(c)), c = c.nextSibling; else{u = e.anCells; for (var b = 0, v = u.length; v > b; b++)g(u[b])}var S = c?e:e.nTr; if (S){var m = S.getAttribute("id"); m && A(t.rowId)(o, m)}return{data:o, cells:u}}function H(t, n, a, r){var o, i, s, l, u, c = t.aoData[n], f = c._aData, d = []; if (null === c.nTr){for (o = a || e.createElement("tr"), c.nTr = o, c.anCells = d, o._DT_RowIndex = n, N(t, c), l = 0, u = t.aoColumns.length; u > l; l++)s = t.aoColumns[l], i = a?r[l]:e.createElement(s.sCellType), d.push(i), (!a || s.mRender || s.mData !== l) && (i.innerHTML = w(t, n, l, "display")), s.sClass && (i.className += " " + s.sClass), s.bVisible && !a?o.appendChild(i):!s.bVisible && a && i.parentNode.removeChild(i), s.fnCreatedCell && s.fnCreatedCell.call(t.oInstance, i, w(t, n, l), f, n, l); Wt(t, "aoRowCreatedCallback", null, [o, f, n])}c.nTr.setAttribute("role", "row")}function N(t, e){var n = e.nTr, r = e._aData; if (n){var o = t.rowIdFn(r); if (o && (n.id = o), r.DT_RowClass){var i = r.DT_RowClass.split(" "); e.__rowc = e.__rowc?ge(e.__rowc.concat(i)):i, a(n).removeClass(e.__rowc.join(" ")).addClass(r.DT_RowClass)}r.DT_RowAttr && a(n).attr(r.DT_RowAttr), r.DT_RowData && a(n).data(r.DT_RowData)}}function k(t){var e, n, r, o, i, s = t.nTHead, l = t.nTFoot, u = 0 === a("th, td", s).length, c = t.oClasses, f = t.aoColumns; for (u && (o = a("<tr/>").appendTo(s)), e = 0, n = f.length; n > e; e++)i = f[e], r = a(i.nTh).addClass(i.sClass), u && r.appendTo(o), t.oFeatures.bSort && (r.addClass(i.sSortingClass), i.bSortable !== !1 && (r.attr("tabindex", t.iTabIndex).attr("aria-controls", t.sTableId), At(t, i.nTh, e))), i.sTitle != r[0].innerHTML && r.html(i.sTitle), Et(t, "header")(t, r, i, c); if (u && E(t.aoHeader, s), a(s).find(">tr").attr("role", "row"), a(s).find(">tr>th, >tr>td").addClass(c.sHeaderTH), a(l).find(">tr>th, >tr>td").addClass(c.sFooterTH), null !== l){var d = t.aoFooter[0]; for (e = 0, n = d.length; n > e; e++)i = f[e], i.nTf = d[e].cell, i.sClass && a(i.nTf).addClass(i.sClass)}}function O(t, e, r){var o, i, s, l, u, c, f, d, h, p = [], g = [], b = t.aoColumns.length; if (e){for (r === n && (r = !1), o = 0, i = e.length; i > o; o++){for (p[o] = e[o].slice(), p[o].nTr = e[o].nTr, s = b - 1; s >= 0; s--)t.aoColumns[s].bVisible || r || p[o].splice(s, 1); g.push([])}for (o = 0, i = p.length; i > o; o++){if (f = p[o].nTr)for (; c = f.firstChild; )f.removeChild(c); for (s = 0, l = p[o].length; l > s; s++)if (d = 1, h = 1, g[o][s] === n){for (f.appendChild(p[o][s].cell), g[o][s] = 1; p[o + d] !== n && p[o][s].cell == p[o + d][s].cell; )g[o + d][s] = 1, d++; for (; p[o][s + h] !== n && p[o][s].cell == p[o][s + h].cell; ){for (u = 0; d > u; u++)g[o + u][s + h] = 1; h++}a(p[o][s].cell).attr("rowspan", d).attr("colspan", h)}}}}function M(t){var e = Wt(t, "aoPreDrawCallback", "preDraw", [t]); if ( - 1 !== a.inArray(!1, e))return void pt(t, !1); var r = [], o = 0, i = t.asStripeClasses, s = i.length, l = (t.aoOpenRows.length, t.oLanguage), u = t.iInitDisplayStart, c = "ssp" == Bt(t), f = t.aiDisplay; t.bDrawing = !0, u !== n && - 1 !== u && (t._iDisplayStart = c?u:u >= t.fnRecordsDisplay()?0:u, t.iInitDisplayStart = - 1); var d = t._iDisplayStart, h = t.fnDisplayEnd(); if (t.bDeferLoading)t.bDeferLoading = !1, t.iDraw++, pt(t, !1); else if (c){if (!t.bDestroying && !X(t))return} else t.iDraw++; if (0 !== f.length)for (var p = c?0:d, g = c?t.aoData.length:h, v = p; g > v; v++){var S = f[v], m = t.aoData[S]; null === m.nTr && H(t, S); var D = m.nTr; if (0 !== s){var y = i[o % s]; m._sRowStripe != y && (a(D).removeClass(m._sRowStripe).addClass(y), m._sRowStripe = y)}Wt(t, "aoRowCallback", null, [D, m._aData, o, v]), r.push(D), o++} else{var _ = l.sZeroRecords; 1 == t.iDraw && "ajax" == Bt(t)?_ = l.sLoadingRecords:l.sEmptyTable && 0 === t.fnRecordsTotal() && (_ = l.sEmptyTable), r[0] = a("<tr/>", {"class":s?i[0]:""}).append(a("<td />", {valign:"top", colSpan:b(t), "class":t.oClasses.sRowEmpty}).html(_))[0]}Wt(t, "aoHeaderCallback", "header", [a(t.nTHead).children("tr")[0], F(t), d, h, f]), Wt(t, "aoFooterCallback", "footer", [a(t.nTFoot).children("tr")[0], F(t), d, h, f]); var T = a(t.nTBody); T.children().detach(), T.append(a(r)), Wt(t, "aoDrawCallback", "draw", [t]), t.bSorted = !1, t.bFiltered = !1, t.bDrawing = !1}function W(t, e){var n = t.oFeatures, a = n.bSort, r = n.bFilter; a && Ct(t), r?z(t, t.oPreviousSearch):t.aiDisplay = t.aiDisplayMaster.slice(), e !== !0 && (t._iDisplayStart = 0), t._drawHold = e, M(t), t._drawHold = !1}function U(t){var e = t.oClasses, n = a(t.nTable), r = a("<div/>").insertBefore(n), o = t.oFeatures, i = a("<div/>", {id:t.sTableId + "_wrapper", "class":e.sWrapper + (t.nTFoot?"":" " + e.sNoFooter)}); t.nHolding = r[0], t.nTableWrapper = i[0], t.nTableReinsertBefore = t.nTable.nextSibling; for (var s, l, u, c, f, d, h = t.sDom.split(""), p = 0; p < h.length; p++){if (s = null, l = h[p], "<" == l){if (u = a("<div/>")[0], c = h[p + 1], "'" == c || '"' == c){for (f = "", d = 2; h[p + d] != c; )f += h[p + d], d++; if ("H" == f?f = e.sJUIHeader:"F" == f && (f = e.sJUIFooter), - 1 != f.indexOf(".")){var g = f.split("."); u.id = g[0].substr(1, g[0].length - 1), u.className = g[1]} else"#" == f.charAt(0)?u.id = f.substr(1, f.length - 1):u.className = f; p += d}i.append(u), i = a(u)} else if (">" == l)i = i.parent(); else if ("l" == l && o.bPaginate && o.bLengthChange)s = ct(t); else if ("f" == l && o.bFilter)s = $(t); else if ("r" == l && o.bProcessing)s = ht(t); else if ("t" == l)s = gt(t); else if ("i" == l && o.bInfo)s = rt(t); else if ("p" == l && o.bPaginate)s = ft(t); else if (0 !== qt.ext.feature.length)for (var b = qt.ext.feature, v = 0, S = b.length; S > v; v++)if (l == b[v].cFeature){s = b[v].fnInit(t); break}if (s){var m = t.aanFeatures; m[l] || (m[l] = []), m[l].push(s), i.append(s)}}r.replaceWith(i), t.nHolding = null}function E(t, e){var n, r, o, i, s, l, u, c, f, d, h, p = a(e).children("tr"), g = function(t, e, n){for (var a = t[e]; a[n]; )n++; return n}; for (t.splice(0, t.length), o = 0, l = p.length; l > o; o++)t.push([]); for (o = 0, l = p.length; l > o; o++)for (n = p[o], c = 0, r = n.firstChild; r; ){if ("TD" == r.nodeName.toUpperCase() || "TH" == r.nodeName.toUpperCase())for (f = 1 * r.getAttribute("colspan"), d = 1 * r.getAttribute("rowspan"), f = f && 0 !== f && 1 !== f?f:1, d = d && 0 !== d && 1 !== d?d:1, u = g(t, o, c), h = 1 === f?!0:!1, s = 0; f > s; s++)for (i = 0; d > i; i++)t[o + i][u + s] = {cell:r, unique:h}, t[o + i].nTr = n; r = r.nextSibling}}function B(t, e, n){var a = []; n || (n = t.aoHeader, e && (n = [], E(n, e))); for (var r = 0, o = n.length; o > r; r++)for (var i = 0, s = n[r].length; s > i; i++)!n[r][i].unique || a[i] && t.bSortCellsTop || (a[i] = n[r][i].cell); return a}function J(t, e, n){if (Wt(t, "aoServerParams", "serverParams", [e]), e && a.isArray(e)){var r = {}, o = /(.*?)\[\]$/; a.each(e, function(t, e){var n = e.name.match(o); if (n){var a = n[0]; r[a] || (r[a] = []), r[a].push(e.value)} else r[e.name] = e.value}), e = r}var i, s = t.ajax, l = t.oInstance, u = function(e){Wt(t, null, "xhr", [t, e, t.jqXHR]), n(e)}; if (a.isPlainObject(s) && s.data){i = s.data; var c = a.isFunction(i)?i(e, t):i; e = a.isFunction(i) && c?c:a.extend(!0, e, c), delete s.data}var f = {data:e, success:function(e){var n = e.error || e.sError; n && Ht(t, 0, n), t.json = e, u(e)}, dataType:"json", cache:!1, type:t.sServerMethod, error:function(e, n, r){var o = Wt(t, null, "xhr", [t, null, t.jqXHR]); - 1 === a.inArray(!0, o) && ("parsererror" == n?Ht(t, 0, "Invalid JSON response", 1):4 === e.readyState && Ht(t, 0, "Ajax error", 7)), pt(t, !1)}}; t.oAjaxData = e, Wt(t, null, "preXhr", [t, e]), t.fnServerData?t.fnServerData.call(l, t.sAjaxSource, a.map(e, function(t, e){return{name:e, value:t}}), u, t):t.sAjaxSource || "string" == typeof s?t.jqXHR = a.ajax(a.extend(f, {url:s || t.sAjaxSource})):a.isFunction(s)?t.jqXHR = s.call(l, e, u, t):(t.jqXHR = a.ajax(a.extend(f, s)), s.data = i)}function X(t){return t.bAjaxDataGet?(t.iDraw++, pt(t, !0), J(t, V(t), function(e){q(t, e)}), !1):!0}function V(t){var e, n, r, o, i = t.aoColumns, s = i.length, l = t.oFeatures, u = t.oPreviousSearch, c = t.aoPreSearchCols, f = [], d = wt(t), h = t._iDisplayStart, p = l.bPaginate !== !1?t._iDisplayLength: - 1, g = function(t, e){f.push({name:t, value:e})}; g("sEcho", t.iDraw), g("iColumns", s), g("sColumns", ce(i, "sName").join(",")), g("iDisplayStart", h), g("iDisplayLength", p); var b = {draw:t.iDraw, columns:[], order:[], start:h, length:p, search:{value:u.sSearch, regex:u.bRegex}}; for (e = 0; s > e; e++)r = i[e], o = c[e], n = "function" == typeof r.mData?"function":r.mData, b.columns.push({data:n, name:r.sName, searchable:r.bSearchable, orderable:r.bSortable, search:{value:o.sSearch, regex:o.bRegex}}), g("mDataProp_" + e, n), l.bFilter && (g("sSearch_" + e, o.sSearch), g("bRegex_" + e, o.bRegex), g("bSearchable_" + e, r.bSearchable)), l.bSort && g("bSortable_" + e, r.bSortable); l.bFilter && (g("sSearch", u.sSearch), g("bRegex", u.bRegex)), l.bSort && (a.each(d, function(t, e){b.order.push({column:e.col, dir:e.dir}), g("iSortCol_" + t, e.col), g("sSortDir_" + t, e.dir)}), g("iSortingCols", d.length)); var v = qt.ext.legacy.ajax; return null === v?t.sAjaxSource?f:b:v?f:b}function q(t, e){var a = function(t, a){return e[t] !== n?e[t]:e[a]}, r = G(t, e), o = a("sEcho", "draw"), i = a("iTotalRecords", "recordsTotal"), s = a("iTotalDisplayRecords", "recordsFiltered"); if (o){if (1 * o < t.iDraw)return; t.iDraw = 1 * o}L(t), t._iRecordsTotal = parseInt(i, 10), t._iRecordsDisplay = parseInt(s, 10); for (var l = 0, u = r.length; u > l; l++)D(t, r[l]); t.aiDisplay = t.aiDisplayMaster.slice(), t.bAjaxDataGet = !1, M(t), t._bInitComplete || lt(t, e), t.bAjaxDataGet = !0, pt(t, !1)}function G(t, e){var r = a.isPlainObject(t.ajax) && t.ajax.dataSrc !== n?t.ajax.dataSrc:t.sAjaxDataProp; return"data" === r?e.aaData || e[r]:"" !== r?I(r)(e):e}function $(t){var n = t.oClasses, r = t.sTableId, o = t.oLanguage, i = t.oPreviousSearch, s = t.aanFeatures, l = '<input type="search" class="' + n.sFilterInput + '"/>', u = o.sSearch; u = u.match(/_INPUT_/)?u.replace("_INPUT_", l):u + l; var c = a("<div/>", {id:s.f?null:r + "_filter", "class":n.sFilter}).append(a("<label/>").append(u)), f = function(){var e = (s.f, this.value?this.value:""); e != i.sSearch && (z(t, {sSearch:e, bRegex:i.bRegex, bSmart:i.bSmart, bCaseInsensitive:i.bCaseInsensitive}), t._iDisplayStart = 0, M(t))}, d = null !== t.searchDelay?t.searchDelay:"ssp" === Bt(t)?400:0, h = a("input", c).val(i.sSearch).attr("placeholder", o.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT", d?mt(f, d):f).bind("keypress.DT", function(t){return 13 == t.keyCode?!1:void 0}).attr("aria-controls", r); return a(t.nTable).on("search.dt.DT", function(n, a){if (t === a)try{h[0] !== e.activeElement && h.val(i.sSearch)} catch (r){}}), c[0]}function z(t, e, a){var r = t.oPreviousSearch, o = t.aoPreSearchCols, i = function(t){r.sSearch = t.sSearch, r.bRegex = t.bRegex, r.bSmart = t.bSmart, r.bCaseInsensitive = t.bCaseInsensitive}, s = function(t){return t.bEscapeRegex !== n?!t.bEscapeRegex:t.bRegex}; if (S(t), "ssp" != Bt(t)){Z(t, e.sSearch, a, s(e), e.bSmart, e.bCaseInsensitive), i(e); for (var l = 0; l < o.length; l++)Q(t, o[l].sSearch, l, s(o[l]), o[l].bSmart, o[l].bCaseInsensitive); Y(t)} else i(e); t.bFiltered = !0, Wt(t, null, "search", [t])}function Y(t){for (var e, n, r = qt.ext.search, o = t.aiDisplay, i = 0, s = r.length; s > i; i++){for (var l = [], u = 0, c = o.length; c > u; u++)n = o[u], e = t.aoData[n], r[i](t, e._aFilterData, n, e._aData, u) && l.push(n); o.length = 0, a.merge(o, l)}}function Q(t, e, n, a, r, o){if ("" !== e)for (var i, s = t.aiDisplay, l = K(e, a, r, o), u = s.length - 1; u >= 0; u--)i = t.aoData[s[u]]._aFilterData[n], l.test(i) || s.splice(u, 1)}function Z(t, e, n, a, r, o){var i, s, l, u = K(e, a, r, o), c = t.oPreviousSearch.sSearch, f = t.aiDisplayMaster; if (0 !== qt.ext.search.length && (n = !0), s = et(t), e.length <= 0)t.aiDisplay = f.slice(); else for ((s || n || c.length > e.length || 0 !== e.indexOf(c) || t.bSorted) && (t.aiDisplay = f.slice()), i = t.aiDisplay, l = i.length - 1; l >= 0; l--)u.test(t.aoData[i[l]]._sFilterRow) || i.splice(l, 1)}function K(t, e, n, r){if (t = e?t:tt(t), n){var o = a.map(t.match(/"[^"]+"|[^ ]+/g) || [""], function(t){if ('"' === t.charAt(0)){var e = t.match(/^"(.*)"$/); t = e?e[1]:t}return t.replace('"', "")}); t = "^(?=.*?" + o.join(")(?=.*?") + ").*$"}return new RegExp(t, r?"i":"")}function tt(t){return t.replace(ne, "\\$1")}function et(t){var e, n, a, r, o, i, s, l, u = t.aoColumns, c = qt.ext.type.search, f = !1; for (n = 0, r = t.aoData.length; r > n; n++)if (l = t.aoData[n], !l._aFilterData){for (i = [], a = 0, o = u.length; o > a; a++)e = u[a], e.bSearchable?(s = w(t, n, a, "filter"), c[e.sType] && (s = c[e.sType](s)), null === s && (s = ""), "string" != typeof s && s.toString && (s = s.toString())):s = "", s.indexOf && - 1 !== s.indexOf("&") && (me.innerHTML = s, s = De?me.textContent:me.innerText), s.replace && (s = s.replace(/[\r\n]/g, "")), i.push(s); l._aFilterData = i, l._sFilterRow = i.join(" "), f = !0}return f}function nt(t){return{search:t.sSearch, smart:t.bSmart, regex:t.bRegex, caseInsensitive:t.bCaseInsensitive}}function at(t){return{sSearch:t.search, bSmart:t.smart, bRegex:t.regex, bCaseInsensitive:t.caseInsensitive}}function rt(t){var e = t.sTableId, n = t.aanFeatures.i, r = a("<div/>", {"class":t.oClasses.sInfo, id:n?null:e + "_info"}); return n || (t.aoDrawCallback.push({fn:ot, sName:"information"}), r.attr("role", "status").attr("aria-live", "polite"), a(t.nTable).attr("aria-describedby", e + "_info")), r[0]}function ot(t){var e = t.aanFeatures.i; if (0 !== e.length){var n = t.oLanguage, r = t._iDisplayStart + 1, o = t.fnDisplayEnd(), i = t.fnRecordsTotal(), s = t.fnRecordsDisplay(), l = s?n.sInfo:n.sInfoEmpty; s !== i && (l += " " + n.sInfoFiltered), l += n.sInfoPostFix, l = it(t, l); var u = n.fnInfoCallback; null !== u && (l = u.call(t.oInstance, t, r, o, i, s, l)), a(e).html(l)}}function it(t, e){var n = t.fnFormatNumber, a = t._iDisplayStart + 1, r = t._iDisplayLength, o = t.fnRecordsDisplay(), i = - 1 === r; return e.replace(/_START_/g, n.call(t, a)).replace(/_END_/g, n.call(t, t.fnDisplayEnd())).replace(/_MAX_/g, n.call(t, t.fnRecordsTotal())).replace(/_TOTAL_/g, n.call(t, o)).replace(/_PAGE_/g, n.call(t, i?1:Math.ceil(a / r))).replace(/_PAGES_/g, n.call(t, i?1:Math.ceil(o / r)))}function st(t){var e, n, a, r = t.iInitDisplayStart, o = t.aoColumns, i = t.oFeatures, s = t.bDeferLoading; if (!t.bInitialised)return void setTimeout(function(){st(t)}, 200); for (U(t), k(t), O(t, t.aoHeader), O(t, t.aoFooter), pt(t, !0), i.bAutoWidth && St(t), e = 0, n = o.length; n > e; e++)a = o[e], a.sWidth && (a.nTh.style.width = Tt(a.sWidth)); Wt(t, null, "preInit", [t]), W(t); var l = Bt(t); ("ssp" != l || s) && ("ajax" == l?J(t, [], function(n){var a = G(t, n); for (e = 0; e < a.length; e++)D(t, a[e]); t.iInitDisplayStart = r, W(t), pt(t, !1), lt(t, n)}, t):(pt(t, !1), lt(t)))}function lt(t, e){t._bInitComplete = !0, (e || t.oInit.aaData) && h(t), Wt(t, "aoInitComplete", "init", [t, e])}function ut(t, e){var n = parseInt(e, 10); t._iDisplayLength = n, Ut(t), Wt(t, null, "length", [t, n])}function ct(t){for (var e = t.oClasses, n = t.sTableId, r = t.aLengthMenu, o = a.isArray(r[0]), i = o?r[0]:r, s = o?r[1]:r, l = a("<select/>", {name:n + "_length", "aria-controls":n, "class":e.sLengthSelect}), u = 0, c = i.length; c > u; u++)l[0][u] = new Option(s[u], i[u]); var f = a("<div><label/></div>").addClass(e.sLength); return t.aanFeatures.l || (f[0].id = n + "_length"), f.children().append(t.oLanguage.sLengthMenu.replace("_MENU_", l[0].outerHTML)), a("select", f).val(t._iDisplayLength).bind("change.DT", function(e){ut(t, a(this).val()), M(t)}), a(t.nTable).bind("length.dt.DT", function(e, n, r){t === n && a("select", f).val(r)}), f[0]}function ft(t){var e = t.sPaginationType, n = qt.ext.pager[e], r = "function" == typeof n, o = function(t){M(t)}, i = a("<div/>").addClass(t.oClasses.sPaging + e)[0], s = t.aanFeatures; return r || n.fnInit(t, i, o), s.p || (i.id = t.sTableId + "_paginate", t.aoDrawCallback.push({fn:function(t){if (r){var e, a, i = t._iDisplayStart, l = t._iDisplayLength, u = t.fnRecordsDisplay(), c = - 1 === l, f = c?0:Math.ceil(i / l), d = c?1:Math.ceil(u / l), h = n(f, d); for (e = 0, a = s.p.length; a > e; e++)Et(t, "pageButton")(t, s.p[e], e, h, f, d)} else n.fnUpdate(t, o)}, sName:"pagination"})), i}function dt(t, e, n){var a = t._iDisplayStart, r = t._iDisplayLength, o = t.fnRecordsDisplay(); 0 === o || - 1 === r?a = 0:"number" == typeof e?(a = e * r, a > o && (a = 0)):"first" == e?a = 0:"previous" == e?(a = r >= 0?a - r:0, 0 > a && (a = 0)):"next" == e?o > a + r && (a += r):"last" == e?a = Math.floor((o - 1) / r) * r:Ht(t, 0, "Unknown paging action: " + e, 5); var i = t._iDisplayStart !== a; return t._iDisplayStart = a, i && (Wt(t, null, "page", [t]), n && M(t)), i}function ht(t){return a("<div/>", {id:t.aanFeatures.r?null:t.sTableId + "_processing", "class":t.oClasses.sProcessing}).html(t.oLanguage.sProcessing).insertBefore(t.nTable)[0]}function pt(t, e){t.oFeatures.bProcessing && a(t.aanFeatures.r).css("display", e?"block":"none"), Wt(t, null, "processing", [t, e])}function gt(t){var e = a(t.nTable); e.attr("role", "grid"); var n = t.oScroll; if ("" === n.sX && "" === n.sY)return t.nTable; var r = n.sX, o = n.sY, i = t.oClasses, s = e.children("caption"), l = s.length?s[0]._captionSide:null, u = a(e[0].cloneNode(!1)), c = a(e[0].cloneNode(!1)), f = e.children("tfoot"), d = "<div/>", h = function(t){return t?Tt(t):null}; n.sX && "100%" === e.attr("width") && e.removeAttr("width"), f.length || (f = null); var p = a(d, {"class":i.sScrollWrapper}).append(a(d, {"class":i.sScrollHead}).css({overflow:"hidden", position:"relative", border:0, width:r?h(r):"100%"}).append(a(d, {"class":i.sScrollHeadInner}).css({"box-sizing":"content-box", width:n.sXInner || "100%"}).append(u.removeAttr("id").css("margin-left", 0).append("top" === l?s:null).append(e.children("thead"))))).append(a(d, {"class":i.sScrollBody}).css({position:"relative", overflow:"auto", width:h(r)}).append(e)); f && p.append(a(d, {"class":i.sScrollFoot}).css({overflow:"hidden", border:0, width:r?h(r):"100%"}).append(a(d, {"class":i.sScrollFootInner}).append(c.removeAttr("id").css("margin-left", 0).append("bottom" === l?s:null).append(e.children("tfoot"))))); var g = p.children(), b = g[0], v = g[1], S = f?g[2]:null; return r && a(v).on("scroll.DT", function(t){var e = this.scrollLeft; b.scrollLeft = e, f && (S.scrollLeft = e)}), a(v).css(o && n.bCollapse?"max-height":"height", o), t.nScrollHead = b, t.nScrollBody = v, t.nScrollFoot = S, t.aoDrawCallback.push({fn:bt, sName:"scrolling"}), p[0]}function bt(t){var e, n, r, o, i, s, l, u, c, f = t.oScroll, d = f.sX, h = f.sXInner, g = f.sY, b = f.iBarWidth, v = a(t.nScrollHead), S = v[0].style, m = v.children("div"), D = m[0].style, y = m.children("table"), _ = t.nScrollBody, T = a(_), w = _.style, C = a(t.nScrollFoot), x = C.children("div"), I = x.children("table"), A = a(t.nTHead), F = a(t.nTable), L = F[0], P = L.style, R = t.nTFoot?a(t.nTFoot):null, j = t.oBrowser, H = j.bScrollOversize, N = [], k = [], O = [], M = function(t){var e = t.style; e.paddingTop = "0", e.paddingBottom = "0", e.borderTopWidth = "0", e.borderBottomWidth = "0", e.height = 0}; F.children("thead, tfoot").remove(), i = A.clone().prependTo(F), e = A.find("tr"), r = i.find("tr"), i.find("th, td").removeAttr("tabindex"), R && (s = R.clone().prependTo(F), n = R.find("tr"), o = s.find("tr")), d || (w.width = "100%", v[0].style.width = "100%"), a.each(B(t, i), function(e, n){l = p(t, e), n.style.width = t.aoColumns[l].sWidth}), R && vt(function(t){t.style.width = ""}, o), c = F.outerWidth(), "" === d?(P.width = "100%", H && (F.find("tbody").height() > _.offsetHeight || "scroll" == T.css("overflow-y")) && (P.width = Tt(F.outerWidth() - b)), c = F.outerWidth()):"" !== h && (P.width = Tt(h), c = F.outerWidth()), vt(M, r), vt(function(t){O.push(t.innerHTML), N.push(Tt(a(t).css("width")))}, r), vt(function(t, e){t.style.width = N[e]}, e), a(r).height(0), R && (vt(M, o), vt(function(t){k.push(Tt(a(t).css("width")))}, o), vt(function(t, e){t.style.width = k[e]}, n), a(o).height(0)), vt(function(t, e){t.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + O[e] + "</div>", t.style.width = N[e]}, r), R && vt(function(t, e){t.innerHTML = "", t.style.width = k[e]}, o), F.outerWidth() < c?(u = _.scrollHeight > _.offsetHeight || "scroll" == T.css("overflow-y")?c + b:c, H && (_.scrollHeight > _.offsetHeight || "scroll" == T.css("overflow-y")) && (P.width = Tt(u - b)), ("" === d || "" !== h) && Ht(t, 1, "Possible column misalignment", 6)):u = "100%", w.width = Tt(u), S.width = Tt(u), R && (t.nScrollFoot.style.width = Tt(u)), g || H && (w.height = Tt(L.offsetHeight + b)); var W = F.outerWidth(); y[0].style.width = Tt(W), D.width = Tt(W); var U = F.height() > _.clientHeight || "scroll" == T.css("overflow-y"), E = "padding" + (j.bScrollbarLeft?"Left":"Right"); D[E] = U?b + "px":"0px", R && (I[0].style.width = Tt(W), x[0].style.width = Tt(W), x[0].style[E] = U?b + "px":"0px"), T.scroll(), !t.bSorted && !t.bFiltered || t._drawHold || (_.scrollTop = 0)}function vt(t, e, n){for (var a, r, o = 0, i = 0, s = e.length; s > i; ){for (a = e[i].firstChild, r = n?n[i].firstChild:null; a; )1 === a.nodeType && (n?t(a, r, o):t(a, o), o++), a = a.nextSibling, r = n?r.nextSibling:null; i++}}function St(e){var n, r, o, i, s, l = e.nTable, u = e.aoColumns, c = e.oScroll, f = c.sY, d = c.sX, g = c.sXInner, S = u.length, m = v(e, "bVisible"), D = a("th", e.nTHead), y = l.getAttribute("width"), _ = l.parentNode, T = !1, w = e.oBrowser, C = w.bScrollOversize, x = l.style.width; for (x && - 1 !== x.indexOf("%") && (y = x), n = 0; n < m.length; n++)r = u[m[n]], null !== r.sWidth && (r.sWidth = Dt(r.sWidthOrig, _), T = !0); if (C || !T && !d && !f && S == b(e) && S == D.length)for (n = 0; S > n; n++){var I = p(e, n); I && (u[I].sWidth = Tt(D.eq(n).width()))} else{var A = a(l).clone().css("visibility", "hidden").removeAttr("id"); A.find("tbody tr").remove(); var F = a("<tr/>").appendTo(A.find("tbody")); for (A.find("thead, tfoot").remove(), A.append(a(e.nTHead).clone()).append(a(e.nTFoot).clone()), A.find("tfoot th, tfoot td").css("width", ""), D = B(e, A.find("thead")[0]), n = 0; n < m.length; n++)r = u[m[n]], D[n].style.width = null !== r.sWidthOrig && "" !== r.sWidthOrig?Tt(r.sWidthOrig):""; if (e.aoData.length)for (n = 0; n < m.length; n++)o = m[n], r = u[o], a(yt(e, o)).clone(!1).append(r.sContentPadding).appendTo(F); var L = a("<div/>").css(d || f?{position:"absolute", top:0, left:0, height:1, right:0, overflow:"hidden"}:{}).append(A).appendTo(_); if (d && g?A.width(g):d?(A.css("width", "auto"), A.width() < _.clientWidth && A.width(_.clientWidth)):f?A.width(_.clientWidth):y && A.width(y), d){var P = 0; for (n = 0; n < m.length; n++)r = u[m[n]], s = w.bBounding?D[n].getBoundingClientRect().width:a(D[n]).outerWidth(), P += null === r.sWidthOrig?s:parseInt(r.sWidth, 10) + s - a(D[n]).width(); A.width(Tt(P)), l.style.width = Tt(P)}for (n = 0; n < m.length; n++)r = u[m[n]], i = a(D[n]).width(), i && (r.sWidth = Tt(i)); l.style.width = Tt(A.css("width")), L.remove()}if (y && (l.style.width = Tt(y)), (y || d) && !e._reszEvt){var R = function(){a(t).bind("resize.DT-" + e.sInstance, mt(function(){h(e)}))}; C?setTimeout(R, 1e3):R(), e._reszEvt = !0}}function mt(t, e){var a, r, o = e !== n?e:200; return function(){var e = this, i = + new Date, s = arguments; a && a + o > i?(clearTimeout(r), r = setTimeout(function(){a = n, t.apply(e, s)}, o)):(a = i, t.apply(e, s))}}function Dt(t, n){if (!t)return 0; var r = a("<div/>").css("width", Tt(t)).appendTo(n || e.body), o = r[0].offsetWidth; return r.remove(), o}function yt(t, e){var n = _t(t, e); if (0 > n)return null; var r = t.aoData[n]; return r.nTr?r.anCells[e]:a("<td/>").html(w(t, n, e, "display"))[0]}function _t(t, e){for (var n, a = - 1, r = - 1, o = 0, i = t.aoData.length; i > o; o++)n = w(t, o, e, "display") + "", n = n.replace(ye, ""), n.length > a && (a = n.length, r = o); return r}function Tt(t){return null === t?"0px":"number" == typeof t?0 > t?"0px":t + "px":t.match(/\d$/)?t + "px":t}function wt(t){var e, r, o, i, s, l, u, c = [], f = t.aoColumns, d = t.aaSortingFixed, h = a.isPlainObject(d), p = [], g = function(t){t.length && !a.isArray(t[0])?p.push(t):a.merge(p, t)}; for (a.isArray(d) && g(d), h && d.pre && g(d.pre), g(t.aaSorting), h && d.post && g(d.post), e = 0; e < p.length; e++)for (u = p[e][0], i = f[u].aDataSort, r = 0, o = i.length; o > r; r++)s = i[r], l = f[s].sType || "string", p[e]._idx === n && (p[e]._idx = a.inArray(p[e][1], f[s].asSorting)), c.push({src:u, col:s, dir:p[e][1], index:p[e]._idx, type:l, formatter:qt.ext.type.order[l + "-pre"]}); return c}function Ct(t){var e, n, a, r, o, i = [], s = qt.ext.type.order, l = t.aoData, u = (t.aoColumns, 0), c = t.aiDisplayMaster; for (S(t), o = wt(t), e = 0, n = o.length; n > e; e++)r = o[e], r.formatter && u++, Lt(t, r.col); if ("ssp" != Bt(t) && 0 !== o.length){for (e = 0, a = c.length; a > e; e++)i[c[e]] = e; u === o.length?c.sort(function(t, e){var n, a, r, s, u, c = o.length, f = l[t]._aSortData, d = l[e]._aSortData; for (r = 0; c > r; r++)if (u = o[r], n = f[u.col], a = d[u.col], s = a > n? - 1:n > a?1:0, 0 !== s)return"asc" === u.dir?s: - s; return n = i[t], a = i[e], a > n? - 1:n > a?1:0}):c.sort(function(t, e){var n, a, r, u, c, f, d = o.length, h = l[t]._aSortData, p = l[e]._aSortData; for (r = 0; d > r; r++)if (c = o[r], n = h[c.col], a = p[c.col], f = s[c.type + "-" + c.dir] || s["string-" + c.dir], u = f(n, a), 0 !== u)return u; return n = i[t], a = i[e], a > n? - 1:n > a?1:0})}t.bSorted = !0}function xt(t){for (var e, n, a = t.aoColumns, r = wt(t), o = t.oLanguage.oAria, i = 0, s = a.length; s > i; i++){var l = a[i], u = l.asSorting, c = l.sTitle.replace(/<.*?>/g, ""), f = l.nTh;
|
2 |
+
f.removeAttribute("aria-sort"), l.bSortable?(r.length > 0 && r[0].col == i?(f.setAttribute("aria-sort", "asc" == r[0].dir?"ascending":"descending"), n = u[r[0].index + 1] || u[0]):n = u[0], e = c + ("asc" === n?o.sSortAscending:o.sSortDescending)):e = c, f.setAttribute("aria-label", e)}}function It(t, e, r, o){var i, s = t.aoColumns[e], l = t.aaSorting, u = s.asSorting, c = function(t, e){var r = t._idx; return r === n && (r = a.inArray(t[1], u)), r + 1 < u.length?r + 1:e?null:0}; if ("number" == typeof l[0] && (l = t.aaSorting = [l]), r && t.oFeatures.bSortMulti){var f = a.inArray(e, ce(l, "0")); - 1 !== f?(i = c(l[f], !0), null === i && 1 === l.length && (i = 0), null === i?l.splice(f, 1):(l[f][1] = u[i], l[f]._idx = i)):(l.push([e, u[0], 0]), l[l.length - 1]._idx = 0)} else l.length && l[0][0] == e?(i = c(l[0]), l.length = 1, l[0][1] = u[i], l[0]._idx = i):(l.length = 0, l.push([e, u[0]]), l[0]._idx = 0); W(t), "function" == typeof o && o(t)}function At(t, e, n, a){var r = t.aoColumns[n]; Ot(e, {}, function(e){r.bSortable !== !1 && (t.oFeatures.bProcessing?(pt(t, !0), setTimeout(function(){It(t, n, e.shiftKey, a), "ssp" !== Bt(t) && pt(t, !1)}, 0)):It(t, n, e.shiftKey, a))})}function Ft(t){var e, n, r, o = t.aLastSort, i = t.oClasses.sSortColumn, s = wt(t), l = t.oFeatures; if (l.bSort && l.bSortClasses){for (e = 0, n = o.length; n > e; e++)r = o[e].src, a(ce(t.aoData, "anCells", r)).removeClass(i + (2 > e?e + 1:3)); for (e = 0, n = s.length; n > e; e++)r = s[e].src, a(ce(t.aoData, "anCells", r)).addClass(i + (2 > e?e + 1:3))}t.aLastSort = s}function Lt(t, e){var n, a = t.aoColumns[e], r = qt.ext.order[a.sSortDataType]; r && (n = r.call(t.oInstance, t, e, g(t, e))); for (var o, i, s = qt.ext.type.order[a.sType + "-pre"], l = 0, u = t.aoData.length; u > l; l++)o = t.aoData[l], o._aSortData || (o._aSortData = []), (!o._aSortData[e] || r) && (i = r?n[l]:w(t, l, e, "sort"), o._aSortData[e] = s?s(i):i)}function Pt(t){if (t.oFeatures.bStateSave && !t.bDestroying){var e = {time: + new Date, start:t._iDisplayStart, length:t._iDisplayLength, order:a.extend(!0, [], t.aaSorting), search:nt(t.oPreviousSearch), columns:a.map(t.aoColumns, function(e, n){return{visible:e.bVisible, search:nt(t.aoPreSearchCols[n])}})}; Wt(t, "aoStateSaveParams", "stateSaveParams", [t, e]), t.oSavedState = e, t.fnStateSaveCallback.call(t.oInstance, t, e)}}function Rt(t, e){var r, o, i = t.aoColumns; if (t.oFeatures.bStateSave){var s = t.fnStateLoadCallback.call(t.oInstance, t); if (s && s.time){var l = Wt(t, "aoStateLoadParams", "stateLoadParams", [t, s]); if ( - 1 === a.inArray(!1, l)){var u = t.iStateDuration; if (!(u > 0 && s.time < + new Date - 1e3 * u) && i.length === s.columns.length){for (t.oLoadedState = a.extend(!0, {}, s), s.start !== n && (t._iDisplayStart = s.start, t.iInitDisplayStart = s.start), s.length !== n && (t._iDisplayLength = s.length), s.order !== n && (t.aaSorting = [], a.each(s.order, function(e, n){t.aaSorting.push(n[0] >= i.length?[0, n[1]]:n)})), s.search !== n && a.extend(t.oPreviousSearch, at(s.search)), r = 0, o = s.columns.length; o > r; r++){var c = s.columns[r]; c.visible !== n && (i[r].bVisible = c.visible), c.search !== n && a.extend(t.aoPreSearchCols[r], at(c.search))}Wt(t, "aoStateLoaded", "stateLoaded", [t, s])}}}}}function jt(t){var e = qt.settings, n = a.inArray(t, ce(e, "nTable")); return - 1 !== n?e[n]:null}function Ht(e, n, a, r){if (a = "DataTables warning: " + (e?"table id=" + e.sTableId + " - ":"") + a, r && (a += ". For more information about this error, please see http://datatables.net/tn/" + r), n)t.console && console.log && console.log(a); else{var o = qt.ext, i = o.sErrMode || o.errMode; if (e && Wt(e, null, "error", [e, r, a]), "alert" == i)alert(a); else{if ("throw" == i)throw new Error(a); "function" == typeof i && i(e, r, a)}}}function Nt(t, e, r, o){return a.isArray(r)?void a.each(r, function(n, r){a.isArray(r)?Nt(t, e, r[0], r[1]):Nt(t, e, r)}):(o === n && (o = r), void(e[r] !== n && (t[o] = e[r])))}function kt(t, e, n){var r; for (var o in e)e.hasOwnProperty(o) && (r = e[o], a.isPlainObject(r)?(a.isPlainObject(t[o]) || (t[o] = {}), a.extend(!0, t[o], r)):n && "data" !== o && "aaData" !== o && a.isArray(r)?t[o] = r.slice():t[o] = r); return t}function Ot(t, e, n){a(t).bind("click.DT", e, function(e){t.blur(), n(e)}).bind("keypress.DT", e, function(t){13 === t.which && (t.preventDefault(), n(t))}).bind("selectstart.DT", function(){return!1})}function Mt(t, e, n, a){n && t[e].push({fn:n, sName:a})}function Wt(t, e, n, r){var o = []; if (e && (o = a.map(t[e].slice().reverse(), function(e, n){return e.fn.apply(t.oInstance, r)})), null !== n){var i = a.Event(n + ".dt"); a(t.nTable).trigger(i, r), o.push(i.result)}return o}function Ut(t){var e = t._iDisplayStart, n = t.fnDisplayEnd(), a = t._iDisplayLength; e >= n && (e = n - a), e -= e % a, ( - 1 === a || 0 > e) && (e = 0), t._iDisplayStart = e}function Et(t, e){var n = t.renderer, r = qt.ext.renderer[e]; return a.isPlainObject(n) && n[e]?r[n[e]] || r._:"string" == typeof n?r[n] || r._:r._}function Bt(t){return t.oFeatures.bServerSide?"ssp":t.ajax || t.sAjaxSource?"ajax":"dom"}function Jt(t, e){var n = [], a = Xe.numbers_length, r = Math.floor(a / 2); return a >= e?n = de(0, e):r >= t?(n = de(0, a - 2), n.push("ellipsis"), n.push(e - 1)):t >= e - 1 - r?(n = de(e - (a - 2), e), n.splice(0, 0, "ellipsis"), n.splice(0, 0, 0)):(n = de(t - r + 2, t + r - 1), n.push("ellipsis"), n.push(e - 1), n.splice(0, 0, "ellipsis"), n.splice(0, 0, 0)), n.DT_el = "span", n}function Xt(t){a.each({num:function(e){return Ve(e, t)}, "num-fmt":function(e){return Ve(e, t, ae)}, "html-num":function(e){return Ve(e, t, Kt)}, "html-num-fmt":function(e){return Ve(e, t, Kt, ae)}}, function(e, n){Gt.type.order[e + t + "-pre"] = n, e.match(/^html\-/) && (Gt.type.search[e + t] = Gt.type.search.html)})}function Vt(t){return function(){var e = [jt(this[qt.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments)); return qt.ext.internal[t].apply(this, e)}}var qt, Gt, $t, zt, Yt, Qt = {}, Zt = /[\r\n]/g, Kt = /<.*?>/g, te = /^[\w\+\-]/, ee = /[\w\+\-]$/, ne = new RegExp("(\\" + ["/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^", "-"].join("|\\") + ")", "g"), ae = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi, re = function(t){return t && t !== !0 && "-" !== t?!1:!0}, oe = function(t){var e = parseInt(t, 10); return!isNaN(e) && isFinite(t)?e:null}, ie = function(t, e){return Qt[e] || (Qt[e] = new RegExp(tt(e), "g")), "string" == typeof t && "." !== e?t.replace(/\./g, "").replace(Qt[e], "."):t}, se = function(t, e, n){var a = "string" == typeof t; return re(t)?!0:(e && a && (t = ie(t, e)), n && a && (t = t.replace(ae, "")), !isNaN(parseFloat(t)) && isFinite(t))}, le = function(t){return re(t) || "string" == typeof t}, ue = function(t, e, n){if (re(t))return!0; var a = le(t); return a && se(pe(t), e, n)?!0:null}, ce = function(t, e, a){var r = [], o = 0, i = t.length; if (a !== n)for (; i > o; o++)t[o] && t[o][e] && r.push(t[o][e][a]); else for (; i > o; o++)t[o] && r.push(t[o][e]); return r}, fe = function(t, e, a, r){var o = [], i = 0, s = e.length; if (r !== n)for (; s > i; i++)t[e[i]][a] && o.push(t[e[i]][a][r]); else for (; s > i; i++)o.push(t[e[i]][a]); return o}, de = function(t, e){var a, r = []; e === n?(e = 0, a = t):(a = e, e = t); for (var o = e; a > o; o++)r.push(o); return r}, he = function(t){for (var e = [], n = 0, a = t.length; a > n; n++)t[n] && e.push(t[n]); return e}, pe = function(t){return t.replace(Kt, "")}, ge = function(t){var e, n, a, r = [], o = t.length, i = 0; t:for (n = 0; o > n; n++){for (e = t[n], a = 0; i > a; a++)if (r[a] === e)continue t; r.push(e), i++}return r}, be = function(t, e, a){t[e] !== n && (t[a] = t[e])}, ve = /\[.*?\]$/, Se = /\(\)$/, me = a("<div>")[0], De = me.textContent !== n, ye = /<.*?>/g; qt = function(t){this.$ = function(t, e){return this.api(!0).$(t, e)}, this._ = function(t, e){return this.api(!0).rows(t, e).data()}, this.api = function(t){return new $t(t?jt(this[Gt.iApiIndex]):this)}, this.fnAddData = function(t, e){var r = this.api(!0), o = a.isArray(t) && (a.isArray(t[0]) || a.isPlainObject(t[0]))?r.rows.add(t):r.row.add(t); return(e === n || e) && r.draw(), o.flatten().toArray()}, this.fnAdjustColumnSizing = function(t){var e = this.api(!0).columns.adjust(), a = e.settings()[0], r = a.oScroll; t === n || t?e.draw(!1):("" !== r.sX || "" !== r.sY) && bt(a)}, this.fnClearTable = function(t){var e = this.api(!0).clear(); (t === n || t) && e.draw()}, this.fnClose = function(t){this.api(!0).row(t).child.hide()}, this.fnDeleteRow = function(t, e, a){var r = this.api(!0), o = r.rows(t), i = o.settings()[0], s = i.aoData[o[0][0]]; return o.remove(), e && e.call(this, i, s), (a === n || a) && r.draw(), s}, this.fnDestroy = function(t){this.api(!0).destroy(t)}, this.fnDraw = function(t){this.api(!0).draw(t)}, this.fnFilter = function(t, e, a, r, o, i){var s = this.api(!0); null === e || e === n?s.search(t, a, r, i):s.column(e).search(t, a, r, i), s.draw()}, this.fnGetData = function(t, e){var a = this.api(!0); if (t !== n){var r = t.nodeName?t.nodeName.toLowerCase():""; return e !== n || "td" == r || "th" == r?a.cell(t, e).data():a.row(t).data() || null}return a.data().toArray()}, this.fnGetNodes = function(t){var e = this.api(!0); return t !== n?e.row(t).node():e.rows().nodes().flatten().toArray()}, this.fnGetPosition = function(t){var e = this.api(!0), n = t.nodeName.toUpperCase(); if ("TR" == n)return e.row(t).index(); if ("TD" == n || "TH" == n){var a = e.cell(t).index(); return[a.row, a.columnVisible, a.column]}return null}, this.fnIsOpen = function(t){return this.api(!0).row(t).child.isShown()}, this.fnOpen = function(t, e, n){return this.api(!0).row(t).child(e, n).show().child()[0]}, this.fnPageChange = function(t, e){var a = this.api(!0).page(t); (e === n || e) && a.draw(!1)}, this.fnSetColumnVis = function(t, e, a){var r = this.api(!0).column(t).visible(e); (a === n || a) && r.columns.adjust().draw()}, this.fnSettings = function(){return jt(this[Gt.iApiIndex])}, this.fnSort = function(t){this.api(!0).order(t).draw()}, this.fnSortListener = function(t, e, n){this.api(!0).order.listener(t, e, n)}, this.fnUpdate = function(t, e, a, r, o){var i = this.api(!0); return a === n || null === a?i.row(e).data(t):i.cell(e, a).data(t), (o === n || o) && i.columns.adjust(), (r === n || r) && i.draw(), 0}, this.fnVersionCheck = Gt.fnVersionCheck; var e = this, r = t === n, c = this.length; r && (t = {}), this.oApi = this.internal = Gt.internal; for (var h in qt.ext.internal)h && (this[h] = Vt(h)); return this.each(function(){var h, p = {}, g = c > 1?kt(p, t, !0):t, b = 0, v = this.getAttribute("id"), S = !1, _ = qt.defaults, T = a(this); if ("table" != this.nodeName.toLowerCase())return void Ht(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2); s(_), l(_.column), o(_, _, !0), o(_.column, _.column, !0), o(_, a.extend(g, T.data())); var w = qt.settings; for (b = 0, h = w.length; h > b; b++){var C = w[b]; if (C.nTable == this || C.nTHead.parentNode == this || C.nTFoot && C.nTFoot.parentNode == this){var x = g.bRetrieve !== n?g.bRetrieve:_.bRetrieve, A = g.bDestroy !== n?g.bDestroy:_.bDestroy; if (r || x)return C.oInstance; if (A){C.oInstance.fnDestroy(); break}return void Ht(C, 0, "Cannot reinitialise DataTable", 3)}if (C.sTableId == this.id){w.splice(b, 1); break}}(null === v || "" === v) && (v = "DataTables_Table_" + qt.ext._unique++, this.id = v); var F = a.extend(!0, {}, qt.models.oSettings, {sDestroyWidth:T[0].style.width, sInstance:v, sTableId:v}); F.nTable = this, F.oApi = e.internal, F.oInit = g, w.push(F), F.oInstance = 1 === e.length?e:T.dataTable(), s(g), g.oLanguage && i(g.oLanguage), g.aLengthMenu && !g.iDisplayLength && (g.iDisplayLength = a.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]), g = kt(a.extend(!0, {}, _), g), Nt(F.oFeatures, g, ["bPaginate", "bLengthChange", "bFilter", "bSort", "bSortMulti", "bInfo", "bProcessing", "bAutoWidth", "bSortClasses", "bServerSide", "bDeferRender"]), Nt(F, g, ["asStripeClasses", "ajax", "fnServerData", "fnFormatNumber", "sServerMethod", "aaSorting", "aaSortingFixed", "aLengthMenu", "sPaginationType", "sAjaxSource", "sAjaxDataProp", "iStateDuration", "sDom", "bSortCellsTop", "iTabIndex", "fnStateLoadCallback", "fnStateSaveCallback", "renderer", "searchDelay", "rowId", ["iCookieDuration", "iStateDuration"], ["oSearch", "oPreviousSearch"], ["aoSearchCols", "aoPreSearchCols"], ["iDisplayLength", "_iDisplayLength"], ["bJQueryUI", "bJUI"]]), Nt(F.oScroll, g, [["sScrollX", "sX"], ["sScrollXInner", "sXInner"], ["sScrollY", "sY"], ["bScrollCollapse", "bCollapse"]]), Nt(F.oLanguage, g, "fnInfoCallback"), Mt(F, "aoDrawCallback", g.fnDrawCallback, "user"), Mt(F, "aoServerParams", g.fnServerParams, "user"), Mt(F, "aoStateSaveParams", g.fnStateSaveParams, "user"), Mt(F, "aoStateLoadParams", g.fnStateLoadParams, "user"), Mt(F, "aoStateLoaded", g.fnStateLoaded, "user"), Mt(F, "aoRowCallback", g.fnRowCallback, "user"), Mt(F, "aoRowCreatedCallback", g.fnCreatedRow, "user"), Mt(F, "aoHeaderCallback", g.fnHeaderCallback, "user"), Mt(F, "aoFooterCallback", g.fnFooterCallback, "user"), Mt(F, "aoInitComplete", g.fnInitComplete, "user"), Mt(F, "aoPreDrawCallback", g.fnPreDrawCallback, "user"), F.rowIdFn = I(g.rowId), u(F); var L = F.oClasses; if (g.bJQueryUI?(a.extend(L, qt.ext.oJUIClasses, g.oClasses), g.sDom === _.sDom && "lfrtip" === _.sDom && (F.sDom = '<"H"lfr>t<"F"ip>'), F.renderer?a.isPlainObject(F.renderer) && !F.renderer.header && (F.renderer.header = "jqueryui"):F.renderer = "jqueryui"):a.extend(L, qt.ext.classes, g.oClasses), T.addClass(L.sTable), F.iInitDisplayStart === n && (F.iInitDisplayStart = g.iDisplayStart, F._iDisplayStart = g.iDisplayStart), null !== g.iDeferLoading){F.bDeferLoading = !0; var P = a.isArray(g.iDeferLoading); F._iRecordsDisplay = P?g.iDeferLoading[0]:g.iDeferLoading, F._iRecordsTotal = P?g.iDeferLoading[1]:g.iDeferLoading}var R = F.oLanguage; a.extend(!0, R, g.oLanguage), "" !== R.sUrl && (a.ajax({dataType:"json", url:R.sUrl, success:function(t){i(t), o(_.oLanguage, t), a.extend(!0, R, t), st(F)}, error:function(){st(F)}}), S = !0), null === g.asStripeClasses && (F.asStripeClasses = [L.sStripeOdd, L.sStripeEven]); var j = F.asStripeClasses, H = T.children("tbody").find("tr").eq(0); - 1 !== a.inArray(!0, a.map(j, function(t, e){return H.hasClass(t)})) && (a("tbody tr", this).removeClass(j.join(" ")), F.asDestroyStripes = j.slice()); var N, k = [], O = this.getElementsByTagName("thead"); if (0 !== O.length && (E(F.aoHeader, O[0]), k = B(F)), null === g.aoColumns)for (N = [], b = 0, h = k.length; h > b; b++)N.push(null); else N = g.aoColumns; for (b = 0, h = N.length; h > b; b++)f(F, k?k[b]:null); if (m(F, g.aoColumnDefs, N, function(t, e){d(F, t, e)}), H.length){var M = function(t, e){return null !== t.getAttribute("data-" + e)?e:null}; a(H[0]).children("th, td").each(function(t, e){var a = F.aoColumns[t]; if (a.mData === t){var r = M(e, "sort") || M(e, "order"), o = M(e, "filter") || M(e, "search"); (null !== r || null !== o) && (a.mData = {_:t + ".display", sort:null !== r?t + ".@data-" + r:n, type:null !== r?t + ".@data-" + r:n, filter:null !== o?t + ".@data-" + o:n}, d(F, t))}})}var W = F.oFeatures; if (g.bStateSave && (W.bStateSave = !0, Rt(F, g), Mt(F, "aoDrawCallback", Pt, "state_save")), g.aaSorting === n){var U = F.aaSorting; for (b = 0, h = U.length; h > b; b++)U[b][1] = F.aoColumns[b].asSorting[0]}Ft(F), W.bSort && Mt(F, "aoDrawCallback", function(){if (F.bSorted){var t = wt(F), e = {}; a.each(t, function(t, n){e[n.src] = n.dir}), Wt(F, null, "order", [F, t, e]), xt(F)}}), Mt(F, "aoDrawCallback", function(){(F.bSorted || "ssp" === Bt(F) || W.bDeferRender) && Ft(F)}, "sc"); var J = T.children("caption").each(function(){this._captionSide = T.css("caption-side")}), X = T.children("thead"); 0 === X.length && (X = a("<thead/>").appendTo(this)), F.nTHead = X[0]; var V = T.children("tbody"); 0 === V.length && (V = a("<tbody/>").appendTo(this)), F.nTBody = V[0]; var q = T.children("tfoot"); if (0 === q.length && J.length > 0 && ("" !== F.oScroll.sX || "" !== F.oScroll.sY) && (q = a("<tfoot/>").appendTo(this)), 0 === q.length || 0 === q.children().length?T.addClass(L.sNoFooter):q.length > 0 && (F.nTFoot = q[0], E(F.aoFooter, F.nTFoot)), g.aaData)for (b = 0; b < g.aaData.length; b++)D(F, g.aaData[b]); else(F.bDeferLoading || "dom" == Bt(F)) && y(F, a(F.nTBody).children("tr")); F.aiDisplay = F.aiDisplayMaster.slice(), F.bInitialised = !0, S === !1 && st(F)}), e = null, this}; var _e = [], Te = Array.prototype, we = function(t){var e, n, r = qt.settings, o = a.map(r, function(t, e){return t.nTable}); return t?t.nTable && t.oApi?[t]:t.nodeName && "table" === t.nodeName.toLowerCase()?(e = a.inArray(t, o), - 1 !== e?[r[e]]:null):t && "function" == typeof t.settings?t.settings().toArray():("string" == typeof t?n = a(t):t instanceof a && (n = t), n?n.map(function(t){return e = a.inArray(this, o), - 1 !== e?r[e]:null}).toArray():void 0):[]}; $t = function(t, e){if (!(this instanceof $t))return new $t(t, e); var n = [], r = function(t){var e = we(t); e && (n = n.concat(e))}; if (a.isArray(t))for (var o = 0, i = t.length; i > o; o++)r(t[o]); else r(t); this.context = ge(n), e && a.merge(this, e), this.selector = {rows:null, cols:null, opts:null}, $t.extend(this, this, _e)}, qt.Api = $t, a.extend($t.prototype, {any:function(){return 0 !== this.count()}, concat:Te.concat, context:[], count:function(){return this.flatten().length}, each:function(t){for (var e = 0, n = this.length; n > e; e++)t.call(this, this[e], e, this); return this}, eq:function(t){var e = this.context; return e.length > t?new $t(e[t], this[t]):null}, filter:function(t){var e = []; if (Te.filter)e = Te.filter.call(this, t, this); else for (var n = 0, a = this.length; a > n; n++)t.call(this, this[n], n, this) && e.push(this[n]); return new $t(this.context, e)}, flatten:function(){var t = []; return new $t(this.context, t.concat.apply(t, this.toArray()))}, join:Te.join, indexOf:Te.indexOf || function(t, e){for (var n = e || 0, a = this.length; a > n; n++)if (this[n] === t)return n; return - 1}, iterator:function(t, e, a, r){var o, i, s, l, u, c, f, d, h = [], p = this.context, g = this.selector; for ("string" == typeof t && (r = a, a = e, e = t, t = !1), i = 0, s = p.length; s > i; i++){var b = new $t(p[i]); if ("table" === e)o = a.call(b, p[i], i), o !== n && h.push(o); else if ("columns" === e || "rows" === e)o = a.call(b, p[i], this[i], i), o !== n && h.push(o); else if ("column" === e || "column-rows" === e || "row" === e || "cell" === e)for (f = this[i], "column-rows" === e && (c = Le(p[i], g.opts)), l = 0, u = f.length; u > l; l++)d = f[l], o = "cell" === e?a.call(b, p[i], d.row, d.column, i, l):a.call(b, p[i], d, i, l, c), o !== n && h.push(o)}if (h.length || r){var v = new $t(p, t?h.concat.apply([], h):h), S = v.selector; return S.rows = g.rows, S.cols = g.cols, S.opts = g.opts, v}return this}, lastIndexOf:Te.lastIndexOf || function(t, e){return this.indexOf.apply(this.toArray.reverse(), arguments)}, length:0, map:function(t){var e = []; if (Te.map)e = Te.map.call(this, t, this); else for (var n = 0, a = this.length; a > n; n++)e.push(t.call(this, this[n], n)); return new $t(this.context, e)}, pluck:function(t){return this.map(function(e){return e[t]})}, pop:Te.pop, push:Te.push, reduce:Te.reduce || function(t, e){return c(this, t, e, 0, this.length, 1)}, reduceRight:Te.reduceRight || function(t, e){return c(this, t, e, this.length - 1, - 1, - 1)}, reverse:Te.reverse, selector:null, shift:Te.shift, sort:Te.sort, splice:Te.splice, toArray:function(){return Te.slice.call(this)}, to$:function(){return a(this)}, toJQuery:function(){return a(this)}, unique:function(){return new $t(this.context, ge(this))}, unshift:Te.unshift}), $t.extend = function(t, e, n){if (n.length && e && (e instanceof $t || e.__dt_wrapper)){var r, o, i, s = function(t, e, n){return function(){var a = e.apply(t, arguments); return $t.extend(a, a, n.methodExt), a}}; for (r = 0, o = n.length; o > r; r++)i = n[r], e[i.name] = "function" == typeof i.val?s(t, i.val, i):a.isPlainObject(i.val)?{}:i.val, e[i.name].__dt_wrapper = !0, $t.extend(t, e[i.name], i.propExt)}}, $t.register = zt = function(t, e){if (a.isArray(t))for (var n = 0, r = t.length; r > n; n++)$t.register(t[n], e); else{var o, i, s, l, u = t.split("."), c = _e, f = function(t, e){for (var n = 0, a = t.length; a > n; n++)if (t[n].name === e)return t[n]; return null}; for (o = 0, i = u.length; i > o; o++){l = - 1 !== u[o].indexOf("()"), s = l?u[o].replace("()", ""):u[o]; var d = f(c, s); d || (d = {name:s, val:{}, methodExt:[], propExt:[]}, c.push(d)), o === i - 1?d.val = e:c = l?d.methodExt:d.propExt}}}, $t.registerPlural = Yt = function(t, e, r){$t.register(t, r), $t.register(e, function(){var t = r.apply(this, arguments); return t === this?this:t instanceof $t?t.length?a.isArray(t[0])?new $t(t.context, t[0]):t[0]:n:t})}; var Ce = function(t, e){if ("number" == typeof t)return[e[t]]; var n = a.map(e, function(t, e){return t.nTable}); return a(n).filter(t).map(function(t){var r = a.inArray(this, n); return e[r]}).toArray()}; zt("tables()", function(t){return t?new $t(Ce(t, this.context)):this}), zt("table()", function(t){var e = this.tables(t), n = e.context; return n.length?new $t(n[0]):e}), Yt("tables().nodes()", "table().node()", function(){return this.iterator("table", function(t){return t.nTable}, 1)}), Yt("tables().body()", "table().body()", function(){return this.iterator("table", function(t){return t.nTBody}, 1)}), Yt("tables().header()", "table().header()", function(){return this.iterator("table", function(t){return t.nTHead}, 1)}), Yt("tables().footer()", "table().footer()", function(){return this.iterator("table", function(t){return t.nTFoot}, 1)}), Yt("tables().containers()", "table().container()", function(){return this.iterator("table", function(t){return t.nTableWrapper}, 1)}), zt("draw()", function(t){return this.iterator("table", function(e){"page" === t?M(e):("string" == typeof t && (t = "full-hold" === t?!1:!0), W(e, t === !1))})}), zt("page()", function(t){return t === n?this.page.info().page:this.iterator("table", function(e){dt(e, t)})}), zt("page.info()", function(t){if (0 === this.context.length)return n; var e = this.context[0], a = e._iDisplayStart, r = e._iDisplayLength, o = e.fnRecordsDisplay(), i = - 1 === r; return{page:i?0:Math.floor(a / r), pages:i?1:Math.ceil(o / r), start:a, end:e.fnDisplayEnd(), length:r, recordsTotal:e.fnRecordsTotal(), recordsDisplay:o, serverSide:"ssp" === Bt(e)}}), zt("page.len()", function(t){return t === n?0 !== this.context.length?this.context[0]._iDisplayLength:n:this.iterator("table", function(e){ut(e, t)})}); var xe = function(t, e, n){if (n){var a = new $t(t); a.one("draw", function(){n(a.ajax.json())})}if ("ssp" == Bt(t))W(t, e); else{pt(t, !0); var r = t.jqXHR; r && 4 !== r.readyState && r.abort(), J(t, [], function(n){L(t); for (var a = G(t, n), r = 0, o = a.length; o > r; r++)D(t, a[r]); W(t, e), pt(t, !1)})}}; zt("ajax.json()", function(){var t = this.context; return t.length > 0?t[0].json:void 0}), zt("ajax.params()", function(){var t = this.context; return t.length > 0?t[0].oAjaxData:void 0}), zt("ajax.reload()", function(t, e){return this.iterator("table", function(n){xe(n, e === !1, t)})}), zt("ajax.url()", function(t){var e = this.context; return t === n?0 === e.length?n:(e = e[0], e.ajax?a.isPlainObject(e.ajax)?e.ajax.url:e.ajax:e.sAjaxSource):this.iterator("table", function(e){a.isPlainObject(e.ajax)?e.ajax.url = t:e.ajax = t})}), zt("ajax.url().load()", function(t, e){return this.iterator("table", function(n){xe(n, e === !1, t)})}); var Ie = function(t, e, r, o, i){var s, l, u, c, f, d, h = [], p = typeof e; for (e && "string" !== p && "function" !== p && e.length !== n || (e = [e]), u = 0, c = e.length; c > u; u++)for (l = e[u] && e[u].split?e[u].split(","):[e[u]], f = 0, d = l.length; d > f; f++)s = r("string" == typeof l[f]?a.trim(l[f]):l[f]), s && s.length && (h = h.concat(s)); var g = Gt.selector[t]; if (g.length)for (u = 0, c = g.length; c > u; u++)h = g[u](o, i, h); return ge(h)}, Ae = function(t){return t || (t = {}), t.filter && t.search === n && (t.search = t.filter), a.extend({search:"none", order:"current", page:"all"}, t)}, Fe = function(t){for (var e = 0, n = t.length; n > e; e++)if (t[e].length > 0)return t[0] = t[e], t[0].length = 1, t.length = 1, t.context = [t.context[e]], t; return t.length = 0, t}, Le = function(t, e){var n, r, o, i = [], s = t.aiDisplay, l = t.aiDisplayMaster, u = e.search, c = e.order, f = e.page; if ("ssp" == Bt(t))return"removed" === u?[]:de(0, l.length); if ("current" == f)for (n = t._iDisplayStart, r = t.fnDisplayEnd(); r > n; n++)i.push(s[n]); else if ("current" == c || "applied" == c)i = "none" == u?l.slice():"applied" == u?s.slice():a.map(l, function(t, e){return - 1 === a.inArray(t, s)?t:null}); else if ("index" == c || "original" == c)for (n = 0, r = t.aoData.length; r > n; n++)"none" == u?i.push(n):(o = a.inArray(n, s), ( - 1 === o && "removed" == u || o >= 0 && "applied" == u) && i.push(n)); return i}, Pe = function(t, e, r){var o = function(e){var o = oe(e); if (null !== o && !r)return[o]; var i = Le(t, r); if (null !== o && - 1 !== a.inArray(o, i))return[o]; if (!e)return i; if ("function" == typeof e)return a.map(i, function(n){var a = t.aoData[n]; return e(n, a._aData, a.nTr)?n:null}); var s = he(fe(t.aoData, i, "nTr")); if (e.nodeName && - 1 !== a.inArray(e, s))return[e._DT_RowIndex]; if ("string" == typeof e && "#" === e.charAt(0)){var l = t.aIds[e.replace(/^#/, "")]; if (l !== n)return[l.idx]}return a(s).filter(e).map(function(){return this._DT_RowIndex}).toArray()}; return Ie("row", e, o, t, r)}; zt("rows()", function(t, e){t === n?t = "":a.isPlainObject(t) && (e = t, t = ""), e = Ae(e); var r = this.iterator("table", function(n){return Pe(n, t, e)}, 1); return r.selector.rows = t, r.selector.opts = e, r}), zt("rows().nodes()", function(){return this.iterator("row", function(t, e){return t.aoData[e].nTr || n}, 1)}), zt("rows().data()", function(){return this.iterator(!0, "rows", function(t, e){return fe(t.aoData, e, "_aData")}, 1)}), Yt("rows().cache()", "row().cache()", function(t){return this.iterator("row", function(e, n){var a = e.aoData[n]; return"search" === t?a._aFilterData:a._aSortData}, 1)}), Yt("rows().invalidate()", "row().invalidate()", function(t){return this.iterator("row", function(e, n){R(e, n, t)})}), Yt("rows().indexes()", "row().index()", function(){return this.iterator("row", function(t, e){return e}, 1)}), Yt("rows().ids()", "row().id()", function(t){for (var e = [], n = this.context, a = 0, r = n.length; r > a; a++)for (var o = 0, i = this[a].length; i > o; o++){var s = n[a].rowIdFn(n[a].aoData[this[a][o]]._aData); e.push((t === !0?"#":"") + s)}return new $t(n, e)}), Yt("rows().remove()", "row().remove()", function(){var t = this; return this.iterator("row", function(e, a, r){var o = e.aoData, i = o[a]; o.splice(a, 1); for (var s = 0, l = o.length; l > s; s++)null !== o[s].nTr && (o[s].nTr._DT_RowIndex = s); P(e.aiDisplayMaster, a), P(e.aiDisplay, a), P(t[r], a, !1), Ut(e); var u = e.rowIdFn(i._aData); u !== n && delete e.aIds[u]}), this.iterator("table", function(t){for (var e = 0, n = t.aoData.length; n > e; e++)t.aoData[e].idx = e}), this}), zt("rows.add()", function(t){var e = this.iterator("table", function(e){var n, a, r, o = []; for (a = 0, r = t.length; r > a; a++)n = t[a], n.nodeName && "TR" === n.nodeName.toUpperCase()?o.push(y(e, n)[0]):o.push(D(e, n)); return o}, 1), n = this.rows( - 1); return n.pop(), a.merge(n, e), n}), zt("row()", function(t, e){return Fe(this.rows(t, e))}), zt("row().data()", function(t){var e = this.context; return t === n?e.length && this.length?e[0].aoData[this[0]]._aData:n:(e[0].aoData[this[0]]._aData = t, R(e[0], this[0], "data"), this)}), zt("row().node()", function(){var t = this.context; return t.length && this.length?t[0].aoData[this[0]].nTr || null:null}), zt("row.add()", function(t){t instanceof a && t.length && (t = t[0]); var e = this.iterator("table", function(e){return t.nodeName && "TR" === t.nodeName.toUpperCase()?y(e, t)[0]:D(e, t)}); return this.row(e[0])}); var Re = function(t, e, n, r){var o = [], i = function(e, n){if (a.isArray(e) || e instanceof a)for (var r = 0, s = e.length; s > r; r++)i(e[r], n); else if (e.nodeName && "tr" === e.nodeName.toLowerCase())o.push(e); else{var l = a("<tr><td/></tr>").addClass(n); a("td", l).addClass(n).html(e)[0].colSpan = b(t), o.push(l[0])}}; i(n, r), e._details && e._details.remove(), e._details = a(o), e._detailsShow && e._details.insertAfter(e.nTr)}, je = function(t, e){var a = t.context; if (a.length){var r = a[0].aoData[e !== n?e:t[0]]; r && r._details && (r._details.remove(), r._detailsShow = n, r._details = n)}}, He = function(t, e){var n = t.context; if (n.length && t.length){var a = n[0].aoData[t[0]]; a._details && (a._detailsShow = e, e?a._details.insertAfter(a.nTr):a._details.detach(), Ne(n[0]))}}, Ne = function(t){var e = new $t(t), n = ".dt.DT_details", a = "draw" + n, r = "column-visibility" + n, o = "destroy" + n, i = t.aoData; e.off(a + " " + r + " " + o), ce(i, "_details").length > 0 && (e.on(a, function(n, a){t === a && e.rows({page:"current"}).eq(0).each(function(t){var e = i[t]; e._detailsShow && e._details.insertAfter(e.nTr)})}), e.on(r, function(e, n, a, r){if (t === n)for (var o, s = b(n), l = 0, u = i.length; u > l; l++)o = i[l], o._details && o._details.children("td[colspan]").attr("colspan", s)}), e.on(o, function(n, a){if (t === a)for (var r = 0, o = i.length; o > r; r++)i[r]._details && je(e, r)}))}, ke = "", Oe = ke + "row().child", Me = Oe + "()"; zt(Me, function(t, e){var a = this.context; return t === n?a.length && this.length?a[0].aoData[this[0]]._details:n:(t === !0?this.child.show():t === !1?je(this):a.length && this.length && Re(a[0], a[0].aoData[this[0]], t, e), this)}), zt([Oe + ".show()", Me + ".show()"], function(t){return He(this, !0), this}), zt([Oe + ".hide()", Me + ".hide()"], function(){return He(this, !1), this}), zt([Oe + ".remove()", Me + ".remove()"], function(){return je(this), this}), zt(Oe + ".isShown()", function(){var t = this.context; return t.length && this.length?t[0].aoData[this[0]]._detailsShow || !1:!1}); var We = /^(.+):(name|visIdx|visible)$/, Ue = function(t, e, n, a, r){for (var o = [], i = 0, s = r.length; s > i; i++)o.push(w(t, r[i], e)); return o}, Ee = function(t, e, n){var r = t.aoColumns, o = ce(r, "sName"), i = ce(r, "nTh"), s = function(e){var s = oe(e); if ("" === e)return de(r.length); if (null !== s)return[s >= 0?s:r.length + s]; if ("function" == typeof e){var l = Le(t, n); return a.map(r, function(n, a){return e(a, Ue(t, a, 0, 0, l), i[a])?a:null})}var u = "string" == typeof e?e.match(We):""; if (!u)return a(i).filter(e).map(function(){return a.inArray(this, i)}).toArray(); switch (u[2]){case"visIdx":case"visible":var c = parseInt(u[1], 10); if (0 > c){var f = a.map(r, function(t, e){return t.bVisible?e:null}); return[f[f.length + c]]}return[p(t, c)]; case"name":return a.map(o, function(t, e){return t === u[1]?e:null})}}; return Ie("column", e, s, t, n)}, Be = function(t, e, r, o){var i, s, l, u, c = t.aoColumns, f = c[e], d = t.aoData; if (r === n)return f.bVisible; if (f.bVisible !== r){if (r){var p = a.inArray(!0, ce(c, "bVisible"), e + 1); for (s = 0, l = d.length; l > s; s++)u = d[s].nTr, i = d[s].anCells, u && u.insertBefore(i[e], i[p] || null)} else a(ce(t.aoData, "anCells", e)).detach(); f.bVisible = r, O(t, t.aoHeader), O(t, t.aoFooter), (o === n || o) && (h(t), (t.oScroll.sX || t.oScroll.sY) && bt(t)), Wt(t, null, "column-visibility", [t, e, r]), Pt(t)}}; zt("columns()", function(t, e){t === n?t = "":a.isPlainObject(t) && (e = t, t = ""), e = Ae(e); var r = this.iterator("table", function(n){return Ee(n, t, e)}, 1); return r.selector.cols = t, r.selector.opts = e, r}), Yt("columns().header()", "column().header()", function(t, e){return this.iterator("column", function(t, e){return t.aoColumns[e].nTh}, 1)}), Yt("columns().footer()", "column().footer()", function(t, e){return this.iterator("column", function(t, e){return t.aoColumns[e].nTf}, 1)}), Yt("columns().data()", "column().data()", function(){return this.iterator("column-rows", Ue, 1)}), Yt("columns().dataSrc()", "column().dataSrc()", function(){return this.iterator("column", function(t, e){return t.aoColumns[e].mData}, 1)}), Yt("columns().cache()", "column().cache()", function(t){return this.iterator("column-rows", function(e, n, a, r, o){return fe(e.aoData, o, "search" === t?"_aFilterData":"_aSortData", n)}, 1)}), Yt("columns().nodes()", "column().nodes()", function(){return this.iterator("column-rows", function(t, e, n, a, r){return fe(t.aoData, r, "anCells", e)}, 1)}), Yt("columns().visible()", "column().visible()", function(t, e){return this.iterator("column", function(a, r){return t === n?a.aoColumns[r].bVisible:void Be(a, r, t, e)})}), Yt("columns().indexes()", "column().index()", function(t){return this.iterator("column", function(e, n){return"visible" === t?g(e, n):n}, 1)}), zt("columns.adjust()", function(){return this.iterator("table", function(t){h(t)}, 1)}), zt("column.index()", function(t, e){if (0 !== this.context.length){var n = this.context[0]; if ("fromVisible" === t || "toData" === t)return p(n, e); if ("fromData" === t || "toVisible" === t)return g(n, e)}}), zt("column()", function(t, e){return Fe(this.columns(t, e))}); var Je = function(t, e, r){var o, i, s, l, u, c, f, d = t.aoData, h = Le(t, r), p = he(fe(d, h, "anCells")), g = a([].concat.apply([], p)), b = t.aoColumns.length, v = function(e){var r = "function" == typeof e; if (null === e || e === n || r){for (i = [], s = 0, l = h.length; l > s; s++)for (o = h[s], u = 0; b > u; u++)c = {row:o, column:u}, r?(f = d[o], e(c, w(t, o, u), f.anCells?f.anCells[u]:null) && i.push(c)):i.push(c); return i}return a.isPlainObject(e)?[e]:g.filter(e).map(function(t, e){if (e.parentNode)o = e.parentNode._DT_RowIndex; else for (t = 0, l = d.length; l > t; t++)if ( - 1 !== a.inArray(e, d[t].anCells)){o = t; break}return{row:o, column:a.inArray(e, d[o].anCells)}}).toArray()}; return Ie("cell", e, v, t, r)}; zt("cells()", function(t, e, r){if (a.isPlainObject(t) && (t.row === n?(r = t, t = null):(r = e, e = null)), a.isPlainObject(e) && (r = e, e = null), null === e || e === n)return this.iterator("table", function(e){return Je(e, t, Ae(r))}); var o, i, s, l, u, c = this.columns(e, r), f = this.rows(t, r), d = this.iterator("table", function(t, e){for (o = [], i = 0, s = f[e].length; s > i; i++)for (l = 0, u = c[e].length; u > l; l++)o.push({row:f[e][i], column:c[e][l]}); return o}, 1); return a.extend(d.selector, {cols:e, rows:t, opts:r}), d}), Yt("cells().nodes()", "cell().node()", function(){return this.iterator("cell", function(t, e, a){var r = t.aoData[e].anCells; return r?r[a]:n}, 1)}), zt("cells().data()", function(){return this.iterator("cell", function(t, e, n){return w(t, e, n)}, 1)}), Yt("cells().cache()", "cell().cache()", function(t){return t = "search" === t?"_aFilterData":"_aSortData", this.iterator("cell", function(e, n, a){return e.aoData[n][t][a]}, 1)}), Yt("cells().render()", "cell().render()", function(t){return this.iterator("cell", function(e, n, a){return w(e, n, a, t)}, 1)}), Yt("cells().indexes()", "cell().index()", function(){return this.iterator("cell", function(t, e, n){return{row:e, column:n, columnVisible:g(t, n)}}, 1)}), Yt("cells().invalidate()", "cell().invalidate()", function(t){return this.iterator("cell", function(e, n, a){R(e, n, t, a)})}), zt("cell()", function(t, e, n){return Fe(this.cells(t, e, n))}), zt("cell().data()", function(t){var e = this.context, a = this[0]; return t === n?e.length && a.length?w(e[0], a[0].row, a[0].column):n:(C(e[0], a[0].row, a[0].column, t), R(e[0], a[0].row, "data", a[0].column), this)}), zt("order()", function(t, e){var r = this.context; return t === n?0 !== r.length?r[0].aaSorting:n:("number" == typeof t?t = [[t, e]]:a.isArray(t[0]) || (t = Array.prototype.slice.call(arguments)), this.iterator("table", function(e){e.aaSorting = t.slice()}))}), zt("order.listener()", function(t, e, n){return this.iterator("table", function(a){
|
3 |
At(a, t, e, n)})}), zt(["columns().order()", "column().order()"], function(t){var e = this; return this.iterator("table", function(n, r){var o = []; a.each(e[r], function(e, n){o.push([n, t])}), n.aaSorting = o})}), zt("search()", function(t, e, r, o){var i = this.context; return t === n?0 !== i.length?i[0].oPreviousSearch.sSearch:n:this.iterator("table", function(n){n.oFeatures.bFilter && z(n, a.extend({}, n.oPreviousSearch, {sSearch:t + "", bRegex:null === e?!1:e, bSmart:null === r?!0:r, bCaseInsensitive:null === o?!0:o}), 1)})}), Yt("columns().search()", "column().search()", function(t, e, r, o){return this.iterator("column", function(i, s){var l = i.aoPreSearchCols; return t === n?l[s].sSearch:void(i.oFeatures.bFilter && (a.extend(l[s], {sSearch:t + "", bRegex:null === e?!1:e, bSmart:null === r?!0:r, bCaseInsensitive:null === o?!0:o}), z(i, i.oPreviousSearch, 1)))})}), zt("state()", function(){return this.context.length?this.context[0].oSavedState:null}), zt("state.clear()", function(){return this.iterator("table", function(t){t.fnStateSaveCallback.call(t.oInstance, t, {})})}), zt("state.loaded()", function(){return this.context.length?this.context[0].oLoadedState:null}), zt("state.save()", function(){return this.iterator("table", function(t){Pt(t)})}), qt.versionCheck = qt.fnVersionCheck = function(t){for (var e, n, a = qt.version.split("."), r = t.split("."), o = 0, i = r.length; i > o; o++)if (e = parseInt(a[o], 10) || 0, n = parseInt(r[o], 10) || 0, e !== n)return e > n; return!0}, qt.isDataTable = qt.fnIsDataTable = function(t){var e = a(t).get(0), n = !1; return a.each(qt.settings, function(t, r){var o = r.nScrollHead?a("table", r.nScrollHead)[0]:null, i = r.nScrollFoot?a("table", r.nScrollFoot)[0]:null; (r.nTable === e || o === e || i === e) && (n = !0)}), n}, qt.tables = qt.fnTables = function(t){var e = !1; a.isPlainObject(t) && (e = t.api, t = t.visible); var n = a.map(qt.settings, function(e){return!t || t && a(e.nTable).is(":visible")?e.nTable:void 0}); return e?new $t(n):n}, qt.util = {throttle:mt, escapeRegex:tt}, qt.camelToHungarian = o, zt("$()", function(t, e){var n = this.rows(e).nodes(), r = a(n); return a([].concat(r.filter(t).toArray(), r.find(t).toArray()))}), a.each(["on", "one", "off"], function(t, e){zt(e + "()", function(){var t = Array.prototype.slice.call(arguments); t[0].match(/\.dt\b/) || (t[0] += ".dt"); var n = a(this.tables().nodes()); return n[e].apply(n, t), this})}), zt("clear()", function(){return this.iterator("table", function(t){L(t)})}), zt("settings()", function(){return new $t(this.context, this.context)}), zt("init()", function(){var t = this.context; return t.length?t[0].oInit:null}), zt("data()", function(){return this.iterator("table", function(t){return ce(t.aoData, "_aData")}).flatten()}), zt("destroy()", function(e){return e = e || !1, this.iterator("table", function(n){var r, o = n.nTableWrapper.parentNode, i = n.oClasses, s = n.nTable, l = n.nTBody, u = n.nTHead, c = n.nTFoot, f = a(s), d = a(l), h = a(n.nTableWrapper), p = a.map(n.aoData, function(t){return t.nTr}); n.bDestroying = !0, Wt(n, "aoDestroyCallback", "destroy", [n]), e || new $t(n).columns().visible(!0), h.unbind(".DT").find(":not(tbody *)").unbind(".DT"), a(t).unbind(".DT-" + n.sInstance), s != u.parentNode && (f.children("thead").detach(), f.append(u)), c && s != c.parentNode && (f.children("tfoot").detach(), f.append(c)), n.aaSorting = [], n.aaSortingFixed = [], Ft(n), a(p).removeClass(n.asStripeClasses.join(" ")), a("th, td", u).removeClass(i.sSortable + " " + i.sSortableAsc + " " + i.sSortableDesc + " " + i.sSortableNone), n.bJUI && (a("th span." + i.sSortIcon + ", td span." + i.sSortIcon, u).detach(), a("th, td", u).each(function(){var t = a("div." + i.sSortJUIWrapper, this); a(this).append(t.contents()), t.detach()})), d.children().detach(), d.append(p); var g = e?"remove":"detach"; f[g](), h[g](), !e && o && (o.insertBefore(s, n.nTableReinsertBefore), f.css("width", n.sDestroyWidth).removeClass(i.sTable), r = n.asDestroyStripes.length, r && d.children().each(function(t){a(this).addClass(n.asDestroyStripes[t % r])})); var b = a.inArray(n, qt.settings); - 1 !== b && qt.settings.splice(b, 1)})}), a.each(["column", "row", "cell"], function(t, e){zt(e + "s().every()", function(t){return this.iterator(e, function(a, r, o, i, s){t.call(new $t(a)[e](r, "cell" === e?o:n), r, o, i, s)})})}), zt("i18n()", function(t, e, r){var o = this.context[0], i = I(t)(o.oLanguage); return i === n && (i = e), r !== n && a.isPlainObject(i) && (i = i[r] !== n?i[r]:i._), i.replace("%d", r)}), qt.version = "1.10.9", qt.settings = [], qt.models = {}, qt.models.oSearch = {bCaseInsensitive:!0, sSearch:"", bRegex:!1, bSmart:!0}, qt.models.oRow = {nTr:null, anCells:null, _aData:[], _aSortData:null, _aFilterData:null, _sFilterRow:null, _sRowStripe:"", src:null, idx: - 1}, qt.models.oColumn = {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}, qt.defaults = {aaData:null, aaSorting:[[0, "asc"]], aaSortingFixed:[], ajax:null, aLengthMenu:[10, 25, 50, 100], aoColumns:null, aoColumnDefs:null, aoSearchCols:[], asStripeClasses:null, bAutoWidth:!0, bDeferRender:!1, bDestroy:!1, bFilter:!0, bInfo:!0, bJQueryUI:!1, 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(t){return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.oLanguage.sThousands)}, fnHeaderCallback:null, fnInfoCallback:null, fnInitComplete:null, fnPreDrawCallback:null, fnRowCallback:null, fnServerData:null, fnServerParams:null, fnStateLoadCallback:function(t){try{return JSON.parse(( - 1 === t.iStateDuration?sessionStorage:localStorage).getItem("DataTables_" + t.sInstance + "_" + location.pathname))} catch (e){}}, fnStateLoadParams:null, fnStateLoaded:null, fnStateSaveCallback:function(t, e){try{( - 1 === t.iStateDuration?sessionStorage:localStorage).setItem("DataTables_" + t.sInstance + "_" + location.pathname, JSON.stringify(e))} catch (n){}}, fnStateSaveParams:null, 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:"", sThousands:",", sLengthMenu:"Show _MENU_ entries", sLoadingRecords:"Loading...", sProcessing:"Processing...", sSearch:"Search:", sSearchPlaceholder:"", sUrl:"", sZeroRecords:"No matching records found"}, oSearch:a.extend({}, qt.models.oSearch), sAjaxDataProp:"data", sAjaxSource:null, sDom:"lfrtip", searchDelay:null, sPaginationType:"simple_numbers", sScrollX:"", sScrollXInner:"", sScrollY:"", sServerMethod:"GET", renderer:null, rowId:"DT_RowId"}, r(qt.defaults), qt.defaults.column = {aDataSort:null, iDataSort: - 1, asSorting:["asc", "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}, r(qt.defaults.column), qt.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, 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:[], 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, bAjaxDataGet:!0, jqXHR:null, json:n, oAjaxData:n, fnServerData:null, aoServerParams:[], sServerMethod:null, fnFormatNumber:null, aLengthMenu:null, iDraw:0, bDrawing:!1, iDrawError: - 1, _iDisplayLength:10, _iDisplayStart:0, _iRecordsTotal:0, _iRecordsDisplay:0, bJUI:null, oClasses:{}, bFiltered:!1, bSorted:!1, bSortCellsTop:null, oInit:null, aoDestroyCallback:[], fnRecordsTotal:function(){return"ssp" == Bt(this)?1 * this._iRecordsTotal:this.aiDisplayMaster.length}, fnRecordsDisplay:function(){return"ssp" == Bt(this)?1 * this._iRecordsDisplay:this.aiDisplay.length}, fnDisplayEnd:function(){var t = this._iDisplayLength, e = this._iDisplayStart, n = e + t, a = this.aiDisplay.length, r = this.oFeatures, o = r.bPaginate; return r.bServerSide?o === !1 || - 1 === t?e + a:Math.min(e + t, this._iRecordsDisplay):!o || n > a || - 1 === t?a:n}, oInstance:null, sInstance:null, iTabIndex:0, nScrollHead:null, nScrollFoot:null, aLastSort:[], oPlugins:{}, rowIdFn:null, rowId:null}, qt.ext = Gt = {buttons:{}, classes:{}, errMode:"alert", feature:[], search:[], selector:{cell:[], column:[], row:[]}, internal:{}, legacy:{ajax:null}, pager:{}, renderer:{pageButton:{}, header:{}}, order:{}, type:{detect:[], search:{}, order:{}}, _unique:0, fnVersionCheck:qt.fnVersionCheck, iApiIndex:0, oJUIClasses:{}, sVersion:qt.version}, a.extend(Gt, {afnFiltering:Gt.search, aTypes:Gt.type.detect, ofnSearch:Gt.type.search, oSort:Gt.type.order, afnSortData:Gt.order, aoFeatures:Gt.feature, oApi:Gt.internal, oStdClasses:Gt.classes, oPagination:Gt.pager}), a.extend(qt.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", sInfo:"dataTables_info", sPaging:"dataTables_paginate paging_", sLength:"dataTables_length", sProcessing:"dataTables_processing", sSortAsc:"sorting_asc", sSortDesc:"sorting_desc", sSortable:"sorting", sSortableAsc:"sorting_asc_disabled", sSortableDesc:"sorting_desc_disabled", sSortableNone:"sorting_disabled", sSortColumn:"sorting_", sFilterInput:"", sLengthSelect:"", sScrollWrapper:"dataTables_scroll", sScrollHead:"dataTables_scrollHead", sScrollHeadInner:"dataTables_scrollHeadInner", sScrollBody:"dataTables_scrollBody", sScrollFoot:"dataTables_scrollFoot", sScrollFootInner:"dataTables_scrollFootInner", sHeaderTH:"", sFooterTH:"", sSortJUIAsc:"", sSortJUIDesc:"", sSortJUI:"", sSortJUIAscAllowed:"", sSortJUIDescAllowed:"", sSortJUIWrapper:"", sSortIcon:"", sJUIHeader:"", sJUIFooter:""}), function(){var t = ""; t = ""; var e = t + "ui-state-default", n = t + "css_right ui-icon ui-icon-", r = t + "fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix"; a.extend(qt.ext.oJUIClasses, qt.ext.classes, {sPageButton:"fg-button ui-button " + e, sPageButtonActive:"ui-state-disabled", sPageButtonDisabled:"ui-state-disabled", sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_", sSortAsc:e + " sorting_asc", sSortDesc:e + " sorting_desc", sSortable:e + " sorting", sSortableAsc:e + " sorting_asc_disabled", sSortableDesc:e + " sorting_desc_disabled", sSortableNone:e + " sorting_disabled", sSortJUIAsc:n + "triangle-1-n", sSortJUIDesc:n + "triangle-1-s", sSortJUI:n + "carat-2-n-s", sSortJUIAscAllowed:n + "carat-1-n", sSortJUIDescAllowed:n + "carat-1-s", sSortJUIWrapper:"DataTables_sort_wrapper", sSortIcon:"DataTables_sort_icon", sScrollHead:"dataTables_scrollHead " + e, sScrollFoot:"dataTables_scrollFoot " + e, sHeaderTH:e, sFooterTH:e, sJUIHeader:r + " ui-corner-tl ui-corner-tr", sJUIFooter:r + " ui-corner-bl ui-corner-br"})}(); var Xe = qt.ext.pager; a.extend(Xe, {simple:function(t, e){return["previous", "next"]}, full:function(t, e){return["first", "previous", "next", "last"]}, numbers:function(t, e){return[Jt(t, e)]}, simple_numbers:function(t, e){return["previous", Jt(t, e), "next"]}, full_numbers:function(t, e){return["first", "previous", Jt(t, e), "next", "last"]}, _numbers:Jt, numbers_length:7}), a.extend(!0, qt.ext.renderer, {pageButton:{_:function(t, n, r, o, i, s){var l, u, c, f = t.oClasses, d = t.oLanguage.oPaginate, h = 0, p = function(e, n){var o, c, g, b, v = function(e){dt(t, e.data.action, !0)}; for (o = 0, c = n.length; c > o; o++)if (b = n[o], a.isArray(b)){var S = a("<" + (b.DT_el || "div") + "/>").appendTo(e); p(S, b)} else{switch (l = null, u = "", b){case"ellipsis":e.append('<span class="ellipsis">…</span>'); break; case"first":l = d.sFirst, u = b + (i > 0?"":" " + f.sPageButtonDisabled); break; case"previous":l = d.sPrevious, u = b + (i > 0?"":" " + f.sPageButtonDisabled); break; case"next":l = d.sNext, u = b + (s - 1 > i?"":" " + f.sPageButtonDisabled); break; case"last":l = d.sLast, u = b + (s - 1 > i?"":" " + f.sPageButtonDisabled); break; default:l = b + 1, u = i === b?f.sPageButtonActive:""}null !== l && (g = a("<a>", {"class":f.sPageButton + " " + u, "aria-controls":t.sTableId, "data-dt-idx":h, tabindex:t.iTabIndex, id:0 === r && "string" == typeof b?t.sTableId + "_" + b:null}).html(l).appendTo(e), Ot(g, {action:b}, v), h++)}}; try{c = a(n).find(e.activeElement).data("dt-idx")} catch (g){}p(a(n).empty(), o), c && a(n).find("[data-dt-idx=" + c + "]").focus()}}}), a.extend(qt.ext.type.detect, [function(t, e){var n = e.oLanguage.sDecimal; return se(t, n)?"num" + n:null}, function(t, e){if (t && !(t instanceof Date) && (!te.test(t) || !ee.test(t)))return null; var n = Date.parse(t); return null !== n && !isNaN(n) || re(t)?"date":null}, function(t, e){var n = e.oLanguage.sDecimal; return se(t, n, !0)?"num-fmt" + n:null}, function(t, e){var n = e.oLanguage.sDecimal; return ue(t, n)?"html-num" + n:null}, function(t, e){var n = e.oLanguage.sDecimal; return ue(t, n, !0)?"html-num-fmt" + n:null}, function(t, e){return re(t) || "string" == typeof t && - 1 !== t.indexOf("<")?"html":null}]), a.extend(qt.ext.type.search, {html:function(t){return re(t)?t:"string" == typeof t?t.replace(Zt, " ").replace(Kt, ""):""}, string:function(t){return re(t)?t:"string" == typeof t?t.replace(Zt, " "):t}}); var Ve = function(t, e, n, a){return 0 === t || t && "-" !== t?(e && (t = ie(t, e)), t.replace && (n && (t = t.replace(n, "")), a && (t = t.replace(a, ""))), 1 * t): - (1 / 0)}; return a.extend(Gt.type.order, {"date-pre":function(t){return Date.parse(t) || 0}, "html-pre":function(t){return re(t)?"":t.replace?t.replace(/<.*?>/g, "").toLowerCase():t + ""}, "string-pre":function(t){return re(t)?"":"string" == typeof t?t.toLowerCase():t.toString?t.toString():""}, "string-asc":function(t, e){return e > t? - 1:t > e?1:0}, "string-desc":function(t, e){return e > t?1:t > e? - 1:0}}), Xt(""), a.extend(!0, qt.ext.renderer, {header:{_:function(t, e, n, r){a(t.nTable).on("order.dt.DT", function(a, o, i, s){if (t === o){var l = n.idx; e.removeClass(n.sSortingClass + " " + r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[l]?r.sSortAsc:"desc" == s[l]?r.sSortDesc:n.sSortingClass)}})}, jqueryui:function(t, e, n, r){a("<div/>").addClass(r.sSortJUIWrapper).append(e.contents()).append(a("<span/>").addClass(r.sSortIcon + " " + n.sSortingClassJUI)).appendTo(e), a(t.nTable).on("order.dt.DT", function(a, o, i, s){if (t === o){var l = n.idx; e.removeClass(r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[l]?r.sSortAsc:"desc" == s[l]?r.sSortDesc:n.sSortingClass), e.find("span." + r.sSortIcon).removeClass(r.sSortJUIAsc + " " + r.sSortJUIDesc + " " + r.sSortJUI + " " + r.sSortJUIAscAllowed + " " + r.sSortJUIDescAllowed).addClass("asc" == s[l]?r.sSortJUIAsc:"desc" == s[l]?r.sSortJUIDesc:n.sSortingClassJUI)}})}}}), qt.render = {number:function(t, e, n, a, r){return{display:function(o){if ("number" != typeof o && "string" != typeof o)return o; var i = 0 > o?"-":""; o = Math.abs(parseFloat(o)); var s = parseInt(o, 10), l = n?e + (o - s).toFixed(n).substring(2):""; return i + (a || "") + s.toString().replace(/\B(?=(\d{3})+(?!\d))/g, t) + l + (r || "")}}}}, a.extend(qt.ext.internal, {_fnExternApiFunc:Vt, _fnBuildAjax:J, _fnAjaxUpdate:X, _fnAjaxParameters:V, _fnAjaxUpdateDraw:q, _fnAjaxDataSrc:G, _fnAddColumn:f, _fnColumnOptions:d, _fnAdjustColumnSizing:h, _fnVisibleToColumnIndex:p, _fnColumnIndexToVisible:g, _fnVisbleColumns:b, _fnGetColumns:v, _fnColumnTypes:S, _fnApplyColumnDefs:m, _fnHungarianMap:r, _fnCamelToHungarian:o, _fnLanguageCompat:i, _fnBrowserDetect:u, _fnAddData:D, _fnAddTr:y, _fnNodeToDataIndex:_, _fnNodeToColumnIndex:T, _fnGetCellData:w, _fnSetCellData:C, _fnSplitObjNotation:x, _fnGetObjectDataFn:I, _fnSetObjectDataFn:A, _fnGetDataMaster:F, _fnClearTable:L, _fnDeleteIndex:P, _fnInvalidate:R, _fnGetRowElements:j, _fnCreateTr:H, _fnBuildHead:k, _fnDrawHead:O, _fnDraw:M, _fnReDraw:W, _fnAddOptionsHtml:U, _fnDetectHeader:E, _fnGetUniqueThs:B, _fnFeatureHtmlFilter:$, _fnFilterComplete:z, _fnFilterCustom:Y, _fnFilterColumn:Q, _fnFilter:Z, _fnFilterCreateSearch:K, _fnEscapeRegex:tt, _fnFilterData:et, _fnFeatureHtmlInfo:rt, _fnUpdateInfo:ot, _fnInfoMacros:it, _fnInitialise:st, _fnInitComplete:lt, _fnLengthChange:ut, _fnFeatureHtmlLength:ct, _fnFeatureHtmlPaginate:ft, _fnPageChange:dt, _fnFeatureHtmlProcessing:ht, _fnProcessingDisplay:pt, _fnFeatureHtmlTable:gt, _fnScrollDraw:bt, _fnApplyToChildren:vt, _fnCalculateColumnWidths:St, _fnThrottle:mt, _fnConvertToWidth:Dt, _fnGetWidestNode:yt, _fnGetMaxLenString:_t, _fnStringToCss:Tt, _fnSortFlatten:wt, _fnSort:Ct, _fnSortAria:xt, _fnSortListener:It, _fnSortAttachListener:At, _fnSortingClasses:Ft, _fnSortData:Lt, _fnSaveState:Pt, _fnLoadState:Rt, _fnSettingsFromNode:jt, _fnLog:Ht, _fnMap:Nt, _fnBindAction:Ot, _fnCallbackReg:Mt, _fnCallbackFire:Wt, _fnLengthOverflow:Ut, _fnRenderer:Et, _fnDataSource:Bt, _fnRowAttributes:N, _fnCalculateEnd:function(){}}), a.fn.dataTable = qt, a.fn.dataTableSettings = qt.settings, a.fn.dataTableExt = qt.ext, a.fn.DataTable = function(t){return a(this).dataTable(t).api()}, a.each(qt, function(t, e){a.fn.DataTable[t] = e}), a.fn.dataTable})}(window, document), function(t, e, n){var a = function(t, n){"use strict"; t.extend(!0, n.defaults, {dom:"<'row'<'col-sm-5'><'col-sm-4'f><'col-sm-3'l>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>", renderer:"bootstrap"}), t.extend(n.ext.classes, {sWrapper:"dataTables_wrapper form-inline dt-bootstrap", sFilterInput:"form-control input-sm", sLengthSelect:"form-control input-sm"}), n.ext.renderer.pageButton.bootstrap = function(a, r, o, i, s, l){var u, c, f, d = new n.Api(a), h = a.oClasses, p = a.oLanguage.oPaginate, g = 0, b = function(e, n){var r, i, f, v, S = function(e){e.preventDefault(), t(e.currentTarget).hasClass("disabled") || d.page(e.data.action).draw("page")}; for (r = 0, i = n.length; i > r; r++)if (v = n[r], t.isArray(v))b(e, v); else{switch (u = "", c = "", v){case"ellipsis":u = "…", c = "disabled"; break; case"first":u = p.sFirst, c = v + (s > 0?"":" disabled"); break; case"previous":u = p.sPrevious, c = v + (s > 0?"":" disabled"); break; case"next":u = p.sNext, c = v + (l - 1 > s?"":" disabled"); break; case"last":u = p.sLast, c = v + (l - 1 > s?"":" disabled"); break; default:u = v + 1, c = s === v?"active":""}u && (f = t("<li>", {"class":h.sPageButton + " " + c, id:0 === o && "string" == typeof v?a.sTableId + "_" + v:null}).append(t("<a>", {href:"#", "aria-controls":a.sTableId, "data-dt-idx":g, tabindex:a.iTabIndex}).html(u)).appendTo(e), a.oApi._fnBindAction(f, {action:v}, S), g++)}}; try{f = t(r).find(e.activeElement).data("dt-idx")} catch (v){}b(t(r).empty().html('<ul class="pagination"/>').children("ul"), i), f && t(r).find("[data-dt-idx=" + f + "]").focus()}, n.TableTools && (t.extend(!0, n.TableTools.classes, {container:"DTTT btn-group", buttons:{normal:"btn btn-default", disabled:"disabled"}, collection:{container:"DTTT_dropdown dropdown-menu", buttons:{normal:"", disabled:"disabled"}}, print:{info:"DTTT_print_info"}, select:{row:"active"}}), t.extend(!0, n.TableTools.DEFAULTS.oTags, {collection:{container:"ul", button:"li", liner:"a"}}))}; "function" == typeof define && define.amd?define(["jquery", "datatables"], a):"object" == typeof exports?a(require("jquery"), require("datatables")):jQuery && a(jQuery, jQuery.fn.dataTable)}(window, document);
|
assets/global/plugins/icons/fonts/icons.svg
CHANGED
@@ -9,10 +9,10 @@
|
|
9 |
</metadata>
|
10 |
<defs>
|
11 |
<font id="Simple-Line-Icons" horiz-adv-x="512" >
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
c-2.72,22.184-7.376,51.296-12,92.296C 382.72,433.296, 326.784,480, 256.128,480C 256.088,480, 256.040,480, 256,480c-0.048,0-0.096,0-0.128,0
|
17 |
C 185.216,480, 129.28,433.296, 121.784,366.8c-4.624-41-9.28-70.112-12-92.296c-7-57.168-35.672-101.168-35.672-101.168
|
18 |
c 6-16.376, 78.544-19.328, 97.128-28.64L 31.984,78.656c0,0-31.984-11.232-31.984-37.736l0-42.264 C0-19.032, 14.312-32, 31.984-32l 448.032,0
|
@@ -24,7 +24,7 @@
|
|
24 |
c 1.408-10.088, 2.672-19.2, 3.656-27.296c 3.984-32.512, 14.112-61.256, 23.264-81.816c-7.064-1.408-14.344-2.72-19.672-3.656
|
25 |
c-22.456-3.888-36.784-6.576-47.624-12.016c-10.936-5.488-17.784-16.736-17.656-28.968c 0.144-12.232, 7.232-23.344, 18.296-28.576l 139.248-66.032
|
26 |
c 1-0.488, 1.656-0.784, 2.72-1.16c 4.92-1.872, 10.248-5.968, 10.968-7.672L 480.016,0L 32,0 z" />
|
27 |
-
|
28 |
c 10.072,4.624, 17.024,14.16, 18.376,25.16c 1.36,11-3.080,21.92-11.728,28.856c-33.24,26.688-48.728,85.344-48.728,116.592L 143.832,368
|
29 |
c0,33.432, 58.2,79.928, 112.064,79.928c 54.336,0, 111.96-45.768, 111.96-79.928l0-79.96 c0-30.776-12.8-89.656-47.128-116.68
|
30 |
c-8.752-6.888-13.296-17.84-11.984-28.904c 1.312-11.080, 8.296-20.656, 18.424-25.312l 47.96-22.752l 7.904,31.936l-42.504,19.888
|
@@ -32,7 +32,7 @@
|
|
32 |
c0-34.936, 15.944-105.624, 60.696-141.544L 32.008,80.184c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 351.96,0 l0,32
|
33 |
L 32.032,0.184L 32.032,32.656 z M 495.968,64.064l-48,0 l0,48 c0,8.84-7.168,16-16,16s-16-7.16-16-16l0-48 l-48,0 c-8.832,0-16-7.16-16-16c0-8.832, 7.168-16, 16-16l 48,0 l0-48
|
34 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,48 l 48,0 c 8.832,0, 16,7.168, 16,16C 511.968,56.904, 504.808,64.064, 495.968,64.064z" />
|
35 |
-
|
36 |
c 10.072,4.624, 17.024,14.16, 18.376,25.16c 1.36,11-3.080,21.92-11.728,28.856c-33.24,26.688-48.728,85.352-48.728,116.592l0,79.96
|
37 |
c0,33.432, 58.2,79.928, 112.064,79.928c 54.336,0, 111.968-45.768, 111.968-79.928l0-79.96 c0-30.776-12.8-89.656-47.128-116.688
|
38 |
c-8.752-6.888-13.296-17.84-11.984-28.904c 1.312-11.080, 8.296-20.656, 18.424-25.312l 81.12-38.624l 19.072,27.032l-86.832,40.672
|
@@ -41,7 +41,7 @@
|
|
41 |
l-26,31.992L 31.752,0.12z M 506.104,118.248c-6.952,5.456-17.016,4.216-22.456-2.736l-68.424-104.352l-42.528,42.536
|
42 |
c-6.248,6.248-16.384,6.248-22.632,0s-6.248-16.376,0-22.624l 56.568-56.568c 6.248-6.248, 16.376-6.248, 22.624,0
|
43 |
c 1.52,1.512, 2.656,3.272, 3.44,5.144l 76.152,116.152C 514.288,102.752, 513.064,112.808, 506.104,118.248z" />
|
44 |
-
|
45 |
c0-34.936, 15.944-105.616, 60.696-141.536L 31.72,80.216c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 303.968,0 l0,32
|
46 |
L 31.744,0.216l0,32.472 c0,12.72, 9.552,16.712, 13.36,18.472l 140.52,66.312c 10.072,4.624, 17.024,14.168, 18.376,25.168
|
47 |
c 1.36,11-3.080,21.912-11.728,28.848c-33.24,26.688-48.728,85.344-48.728,116.6l0,79.96 c0,33.432, 58.2,79.928, 112.064,79.928
|
@@ -51,7 +51,7 @@
|
|
51 |
c-6.248,6.24-16.384,6.24-22.624,0c-6.248-6.248-6.248-16.392,0-22.624l 45.248-45.256l-45.248-45.248c-6.248-6.24-6.248-16.384,0-22.632
|
52 |
c 6.24-6.232, 16.376-6.232, 22.624,0l 45.248,45.256l 45.256-45.256c 6.24-6.232, 16.376-6.232, 22.616,0c 6.248,6.248, 6.248,16.392,0,22.632
|
53 |
L 462.312,40.6z" />
|
54 |
-
|
55 |
M 508.656,419.184c-1.512,7.44-8.080,12.784-15.672,12.784l-78.312,0 L 414.672,447.936 c0,8.84-7.16,16-16,16L 110.904,463.936 c-8.84,0-16-7.16-16-16l0-15.968 L 19.016,431.968
|
56 |
c-7.592,0-14.16-5.344-15.672-12.784c-0.472-2.312-11.2-58.376, 19.952-96.576c 17.92-21.96, 45.304-33.464, 81.248-34.488
|
57 |
C 125.040,227.544, 176.576,182.688, 238.64,176l0-111.456 l-47.888,0 c-8.84,0-16-7.16-16-16s 7.16-16, 16-16l 129.344,0 c 8.84,0, 16,7.16, 16,16s-7.16,16-16,16
|
@@ -60,15 +60,15 @@
|
|
60 |
c0-8.648, 0.8-17.080, 1.968-25.384C 75.032,322.608, 58.648,329.984, 48.2,342.72z M 382.672,345.952c0-76.544-57.36-138.832-127.856-138.832
|
61 |
c-70.528,0-127.904,62.28-127.904,138.832L 126.912,431.936 l 255.768,0 L 382.68,345.952 z M 463.8,342.72c-10.84-13.216-28.016-20.744-51.136-22.432
|
62 |
c 1.192,8.392, 2.008,16.92, 2.008,25.664l0,54.016 l 64,0 C 479.392,385.408, 477.968,359.968, 463.8,342.72z" />
|
63 |
-
|
64 |
c 26.512,0, 48,21.488, 48,48L 400.072,432 C 400.072,458.512, 378.584,480, 352.072,480z M 368.072,16c0-8.832-7.168-16-16-16L 159.928,0 c-8.832,0-16,7.168-16,16L 143.928,432
|
65 |
c0,8.832, 7.168,16, 16,16l 192.144,0 c 8.832,0, 16-7.168, 16-16L 368.072,16 z M 256.024,79.912c-17.64,0-31.92-14.296-31.92-31.912s 14.288-31.92, 31.92-31.92
|
66 |
c 17.64,0, 31.92,14.304, 31.92,31.92S 273.664,79.912, 256.024,79.912z M 288.024,432l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0
|
67 |
c 8.832,0, 16,7.168, 16,16S 296.856,432, 288.024,432z" />
|
68 |
-
|
69 |
c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 192,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 272,47.904 l0,48.104 l 208,0 c 17.592,0, 32,14.4, 32,31.992L 512,400.096
|
70 |
C 512,417.696, 497.592,432.096, 480,432.096z M 480,128L 32,128 L 32,400.096 l 448,0 L 480,128 z" />
|
71 |
-
|
72 |
l 0.832-14.328c 1.752-29.984, 5-83.72, 7.8-129.784c 2.472-41, 4.816-79.72, 4.968-83.016c 0.080-2.264, 0.112-2.8-2-5.344
|
73 |
c-4.72-5.736-13.528-15.456-20.952-23.512c-11.512,31.016-35.704,96.528-49.064,133.2l-17.168,47.184l-35.512-35.512L 168.8,105.28l-9.096-9.080
|
74 |
l-0.28-12.84c-0.216-10.248-0.168-28.64-0.144-44.856c 0.032-11.296, 0.064-21.56-0.016-27.216c-0.144-0.264, 2.184-0.576, 1.968-0.952
|
@@ -88,7 +88,7 @@
|
|
88 |
c 0.688-0.080, 1.392-0.112, 2.080-0.112c 6.312,0, 12.856,2.968, 18.216,8.328c0,0, 23.128,24.544, 32.952,36.488
|
89 |
c 9.84,11.936, 9.456,22.128, 9.264,26.936c-0.080,3.328-9.344,154.408-12.784,213.408l 105.328,105.328c 37.328,37.344, 31.392,82.344, 17.528,96.184
|
90 |
C 494.688,474.392, 482.296,479.048, 467.16,479.048L 467.16,479.048z" />
|
91 |
-
|
92 |
l0-64.376 L 56.592,287.624 c-8.656,0-15.672-7.016-15.672-15.672s 7.016-15.672, 15.672-15.672L 72.56,256.28 l0-64.72 L 56.248,191.56 c-8.656,0-15.672-7.016-15.672-15.672
|
93 |
s 7.016-15.672, 15.672-15.672L 72.56,160.216 l0-64.232 L 56.248,95.984 c-8.656,0-15.672-7.016-15.672-15.672s 7.016-15.672, 15.672-15.672L 72.56,64.64 L 72.56,0
|
94 |
c0-26.512, 20.768-32, 32.264-32l 319.752,0 c 26.512,0, 48,21.488, 48,48L 472.576,432 C 472.576,458.512, 451.096,480, 424.576,480z M 104.56,0l0,64.64 l 16.672,0
|
@@ -96,7 +96,7 @@
|
|
96 |
s-7.016,15.672-15.672,15.672L 104.56,191.56 l0,64.72 l 17.016,0 c 8.656,0, 15.672,7.016, 15.672,15.672s-7.016,15.672-15.672,15.672L 104.56,287.624 L 104.56,352 l 15.512,0
|
97 |
c 8.656,0, 15.672,7.016, 15.672,15.672s-7.016,15.672-15.672,15.672L 104.56,383.344 L 104.56,447 c0,0.376, 0.032,0.688, 0.080,0.968
|
98 |
C 104.888,447.984, 105.2,448, 105.576,448l 255,0 l0-448 L 104.56,0 z M 440.576,16c0-8.832-7.168-16-16-16l-32,0 L 392.576,448 l 32,0 c 8.832,0, 16-7.168, 16-16L 440.576,16 z" />
|
99 |
-
|
100 |
c-8.456,7.424-19,16.672-22.672,17.952c-0.112,0-1.856,0.080-1.968,0.096c-0.584-0.048-2.072-0.344-2.224-0.36
|
101 |
c-2.536-1.032-11.544-8.784-18.784-15c-6.568-5.64-14.056-12.080-22.52-18.688l-1.544-1.184c-21.736-16.968-48.792-38.080-96.576-38.080
|
102 |
c-35.496,0-70.464,16.064-91.288,41.936c-13.96,17.344-28.648,47.512-19.336,92.736c 1.128,5.472, 5.008,9.952, 10.216,11.816
|
@@ -114,24 +114,24 @@
|
|
114 |
c-13.696-6.096-27.552-9.184-41.152-9.184c-10.2,0-19.032,1.704-26.312,4.016c-0.016-17.36, 5.056-32.456, 15.168-45.016
|
115 |
c 14.968-18.576, 40.52-30.128, 66.72-30.128c 37,0, 57.448,15.968, 77.232,31.408L 192,176.392c 8.024,6.264, 15.12,12.376, 21.344,17.72
|
116 |
c 14.256,12.248, 23.664,20.344, 33.824,22.144l0,0C 247.176,216.248, 252.016,217.064, 255.368,217.064z" />
|
117 |
-
|
118 |
C 112.040,32.112, 177.728-32, 256.792-32s 143.176,64.112, 143.176,143.168L 399.968,336.832 C 399.968,415.888, 335.856,480, 256.792,480z M 367.968,111.168
|
119 |
C 367.968,49.872, 318.096,0, 256.792,0s-112.752,49.872-112.752,111.168L 144.040,336.832 C 144.040,398.128, 195.496,448, 256.792,448
|
120 |
s 111.176-49.872, 111.176-111.168L 367.968,111.168 z M 256.168,384c-8.832,0-16-7.168-16-16l0-80 c0-8.832, 7.168-16, 16-16c 8.832,0, 16,7.168, 16,16L 272.168,368
|
121 |
C 272.168,376.832, 265,384, 256.168,384z" />
|
122 |
-
|
123 |
c0-0.024, 0.016-0.048, 0.016-0.072l0-198.76 c0-48.16-27.168-87.328-75.328-87.328s-84.328,39.168-84.328,87.328L 176.192,449.912 l-0.048,0 L 176.144,464.416
|
124 |
c0,8.84-7.16,16-16,16L 47.832,480.416 c-8.84,0-16-7.16-16-16l0-65.328 c0-0.328, 0.168-0.6, 0.184-0.92l0-205.248
|
125 |
c0-124.456, 99.392-225.328, 223.832-225.328s 224.328,100.872, 224.328,225.328L 480.176,449.912 L 480.144,449.912 z M 448.144,448.416l0-64.168 L 368.016,384.248 L 368.016,448.416 L 448.144,448.416 z
|
126 |
M 144.144,448.416l0-64.168 L 64.016,384.248 L 64.016,448.416 L 144.144,448.416 z M 255.84-0.416c-106.608,0-191.832,86.736-191.832,193.328L 64.008,352.248 l 80.168,0 l0-151.992
|
127 |
c0-65.904, 50.424-119.328, 116.328-119.328S 367.84,134.352, 367.84,200.256L 367.84,352.248 l 80.328,0 l0-159.336 C 448.168,86.32, 362.456-0.416, 255.84-0.416z" />
|
128 |
-
|
129 |
M 297.696,479.64c-0.864,0-1.728-0.032-2.576-0.096c-5.648-0.456-9.392-2.344-13.832-5.328c-2.464-1.64-4.72-3.64-6.696-5.968
|
130 |
c-0.584-0.688-1.136-1.408-1.648-2.144L 93.64,228.8c-7.080-9.704-8.12-22.512-2.68-33.216c 5.432-10.704, 16.416-17.488, 28.456-17.576
|
131 |
l 92.368-0.672l-29.040-171.096c-2.76-14.704, 5.080-29.36, 18.88-35.264c 4.112-1.768, 8.432-2.608, 12.696-2.608c 10.056,0, 18.32,4.704, 24.52,13.2
|
132 |
L 418.368,238.72c 7.080,9.704, 8.112,22.528, 2.68,33.216c-5.432,10.704-16.416,17.488-28.456,17.576l-92.368,0.16l 28.728,150.44
|
133 |
c 0.6,2.424, 0.912,4.936, 0.912,7.528c0,17.312-13.784,31.424-31.032,31.984C 298.448,479.64, 298.072,479.64, 297.696,479.64L 297.696,479.64z" />
|
134 |
-
|
135 |
c-0.504,0-1-0.016-1.504-0.016c-76.832,0-109.968,70.184-111.344,73.2c-3.656,8-13.096,11.56-21.16,7.936
|
136 |
c-8.048-3.64-11.624-13.104-7.984-21.168c 1.704-3.784, 42.688-91.968, 140.424-91.968c 0.64,0, 1.296,0.016, 1.936,0.016
|
137 |
c 101.936,1.2, 141.92,88.328, 143.56,92.032C 402.336,163.376, 398.696,172.832, 390.632,176.424z M 256,480C 114.608,480,0,365.392,0,224
|
@@ -139,7 +139,7 @@
|
|
139 |
M 175.752,240.088c 17.632,0, 31.92,14.296, 31.92,31.912s-14.288,31.912-31.92,31.912c-17.64,0-31.92-14.296-31.92-31.912
|
140 |
S 158.112,240.088, 175.752,240.088z M 335.752,240.088c 17.632,0, 31.92,14.296, 31.92,31.912s-14.288,31.912-31.92,31.912
|
141 |
c-17.64,0-31.92-14.296-31.92-31.912S 318.112,240.088, 335.752,240.088z" />
|
142 |
-
|
143 |
l-141.608,75.776c 1.512,5.488, 2.392,11.232, 2.392,17.192c0,35.624-28.872,64.504-64.504,64.504c-7.312,0-14.312-1.272-20.856-3.512
|
144 |
L 150.336,421.448C 181.832,438.368, 217.808,448, 256,448C 379.512,448, 480,347.512, 480,224z M 256,256.496c 17.92,0, 32.504-14.576, 32.504-32.504
|
145 |
S 273.92,191.496, 256,191.496S 223.504,206.080, 223.504,224S 238.080,256.496, 256,256.496z M 123.288,404.312l 85.088-136.92
|
@@ -147,7 +147,7 @@
|
|
147 |
c0,31.84, 6.72,62.128, 18.752,89.584l 142.184-76.080c-0.928-4.36-1.44-8.864-1.44-13.504c0-35.624, 28.872-64.504, 64.504-64.504
|
148 |
c 6.2,0, 12.176,0.92, 17.848,2.552l 85.096-136.896C 328.104,9.128, 293.112,0, 256,0C 132.488,0, 32,100.488, 32,224z M 386.224,41.92
|
149 |
L 301.472,178.264c 0.248,0.248, 0.48,0.512, 0.728,0.768l 142.144-76.072C 428.968,79.144, 409.224,58.416, 386.224,41.92z" />
|
150 |
-
|
151 |
c-4.672,4.472-12.224,4.472-16.912,0l-2.744-4.032c-4.672-4.472-3.152-11.704, 1.52-16.168l 38.232-34.672L 273.248,240.248 L 273.248,426.92 l 34.672-38.232
|
152 |
c 4.472-4.672, 11.704-6.192, 16.168-1.512l 4.032,2.736c 4.472,4.688, 4.472,12.24,0,16.92l-56.584,61.984
|
153 |
c-1.376,2.776-3.504,5.072-6.16,6.648l-0.712,0.744c-2.216,2.336-5.168,3.504-8.112,3.488c-2.952,0.016-5.888-1.152-8.144-3.488
|
@@ -162,15 +162,15 @@
|
|
162 |
c-4.472,4.672-11.704,3.152-16.168-1.52l-34.672-38.232L 273.256,208.248 L 460.24,208.248 l-38.552-34.576c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032
|
163 |
c 4.688-4.464, 12.248-4.464, 16.912,0l 63.872,57.752c 0.088,0.088, 0.184,0.096, 0.264,0.168l 4.24,4.048
|
164 |
c 2.336,2.248, 3.504,5.184, 3.488,8.144C 511.704,226.496, 510.536,229.456, 508.2,231.68z" />
|
165 |
-
|
166 |
c0,8.84-7.16,16-16,16s-16-7.16-16-16l0-64 L 16,400 c-8.84,0-16-7.16-16-16c0-8.832, 7.16-16, 16-16l 64,0 l0-304 c0-1.472, 0.472-2.8, 0.84-4.144
|
167 |
c 0.16-0.608, 0.128-1.232, 0.36-1.816c 1.608-4.032, 4.8-7.216, 8.832-8.84c 0.688-0.28, 1.44-0.248, 2.144-0.424
|
168 |
C 93.44,48.456, 94.64,48, 96,48l 304,0 l0-64 c0-8.84, 7.16-16, 16-16s 16,7.16, 16,16l0,64 l 64,0 c 8.84,0, 16,7.16, 16,16S 504.84,80, 496,80z M 377.744,368
|
169 |
L 112,102.608L 112,368 L 377.744,368 z M 134.64,80L 400,344.992L 400,80 L 134.64,80 z" />
|
170 |
-
|
171 |
c 26.512,0, 48,21.488, 48,48L 512.072,344 C 512.072,370.512, 490.584,392, 464.072,392z M 47.928,360l 416.144,0 c 8.832,0, 16-7.168, 16-16l0-32 L 31.928,312 l0,32
|
172 |
C 31.928,352.832, 39.104,360, 47.928,360z M 464.072,88L 47.928,88 c-8.832,0-16,7.168-16,16L 31.928,248 l 448.144,0 l0-144 C 480.072,95.168, 472.896,88, 464.072,88z" />
|
173 |
-
|
174 |
c0-3.968, 1.472-7.784, 4.128-10.72l 65.184-78.672l-202.64,0 l 65.184,78.672c 2.656,2.936, 4.128,6.752, 4.128,10.72L 223.992,288.224 c0,8.84-7.16,16-16,16
|
175 |
l-26.656,0 c-8.84,0-16-7.16-16-16s 7.16-16, 16-16l 10.656,0 l0-176.752 L 106.792-5.36c-4.232-4.688-5.312-11.44-2.752-17.216
|
176 |
c 2.576-5.784, 8.296-9.504, 14.624-9.504l 274.672,0 c 6.328,0, 12.048,3.72, 14.624,9.504C 410.52-16.8, 409.448-10.048, 405.208-5.36z M 240,320.16
|
@@ -178,14 +178,14 @@
|
|
178 |
C 208.080,334.456, 222.36,320.16, 240,320.16z M 344.24,367.656c 31.184,0, 56.464,25.168, 56.464,56.208s-25.272,56.208-56.464,56.208
|
179 |
c-31.176,0-56.464-25.168-56.464-56.208S 313.064,367.656, 344.24,367.656z M 343.992,448.168c 13.328,0, 24.168-10.792, 24.168-24.064
|
180 |
c0-13.264-10.84-24.064-24.168-24.064s-24.168,10.8-24.168,24.064C 319.832,437.376, 330.664,448.168, 343.992,448.168z" />
|
181 |
-
|
182 |
c 1.312-11.080, 8.296-20.656, 18.424-25.312l 139.248-66.032c 1.088-0.496, 13.344-2.552, 13.344-19.672l 0.016-31.232L 32,0.248L 32,32.72
|
183 |
c0,12.72, 9.544,16.712, 13.36,18.472l 140.512,66.312c 10.080,4.624, 17.032,14.16, 18.384,25.16c 1.36,11-3.080,21.92-11.728,28.856
|
184 |
c-33.24,26.688-48.728,85.352-48.728,116.592l0,79.96 C 143.808,401.496, 202.008,448, 255.864,448 M 255.864,480c-70.656,0-144.064-58.968-144.064-111.928
|
185 |
l0-79.96 c0-34.936, 15.944-105.624, 60.696-141.544L 31.976,80.248c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 447.776,0
|
186 |
c 17.672,0, 31.984,14.312, 31.984,31.984l0,48.016 c0,18.8-31.984,31.984-31.984,31.984l-139.248,66.032c 44.328,34.888, 59.328,103.424, 59.328,141.832
|
187 |
l0,79.96 C 399.832,421.032, 326.512,480, 255.864,480L 255.864,480z" />
|
188 |
-
|
189 |
c0-88.576, 44.84-169.592, 119.952-216.704c 7.472-4.736, 17.344-2.44, 22.048,5.048s 2.44,17.36-5.048,22.048
|
190 |
c-27.048,16.976-49.52,39.024-66.712,64.44l 16.776,9.688c 7.656,4.424, 10.28,14.2, 5.856,21.856c-4.44,7.672-14.232,10.28-21.856,5.856
|
191 |
l-16.8-9.696c-12.2,25.256-19.648,52.896-21.64,81.712l 17.808,0 c 8.84,0, 16,7.16, 16,16s-7.16,16-16,16L 32.976,222.496
|
@@ -202,7 +202,7 @@
|
|
202 |
M 374.056,256.136c 7.648,4.424, 10.272,14.2, 5.856,21.856c-4.416,7.648-14.208,10.272-21.856,5.848l-86.912-50.176
|
203 |
c-4.64,2.624-9.928,4.248-15.64,4.248c-17.64,0-31.92-14.296-31.92-31.904c0-17.624, 14.288-31.92, 31.92-31.92c 17.64,0, 31.92,14.296, 31.92,31.92
|
204 |
c0,0.032-0.008,0.072-0.008,0.104L 374.056,256.136z" />
|
205 |
-
|
206 |
c-43.984-26.424-48.16-143.408-48.544-167.128c 0.528-31.328, 5.592-135.56, 48.512-161.344c 8.248-4.968, 33.856-20.112, 207.624-20.112
|
207 |
c 162.080,0, 200.688,13.2, 214.504,23.144c 37.488,26.968, 41.8,119.84, 41.904,158.72C 512.176,252.728, 508.896,357.4, 470.368,385.152z
|
208 |
M 451.68,88.712c-5.576-4.016-37.592-17.112-195.816-17.112c-152.968,0-185.064,11.872-191.128,15.528c-15.44,9.264-31.736,58.44-33.016,134.016
|
@@ -211,7 +211,7 @@
|
|
211 |
c-4.952,2.984-11.112,3.064-16.128,0.232c-5.032-2.84-8.144-8.168-8.144-13.936l0-176.72 c0-5.768, 3.112-11.096, 8.144-13.936
|
212 |
c 2.44-1.376, 5.16-2.064, 7.856-2.064c 2.856,0, 5.736,0.768, 8.264,2.296l 143.968,88.376c 4.8,2.904, 7.736,8.096, 7.736,13.704
|
213 |
S 365.008,233.696, 360.208,236.584z M 223.976,162.848L 223.976,282.896 l 97-60.016L 223.976,162.848z" />
|
214 |
-
|
215 |
c 18.56,2.184, 36.328,6.952, 52.816,14.080c-12.36-17.872-27.92-33.608-45.888-46.184c 0.168-3.816, 0.264-7.672, 0.264-11.512
|
216 |
c0-117.864-92.504-253.808-261.656-253.808c-51.92,0-100.28,14.816-140.952,40.112c 7.184-0.84, 14.504-1.264, 21.92-1.264
|
217 |
c 43.080,0, 82.752,14.248, 114.232,38.2c-40.264,0.688-74.248,26.504-85.904,61.92c 5.608-1.048, 11.376-1.608, 17.312-1.608
|
@@ -227,7 +227,7 @@
|
|
227 |
c 182.016,0, 291.504,142.488, 293.632,281.672c 14.896,12.328, 28.064,26.592, 39.224,42.576c 4.064,5.344, 6.48,12.016, 6.48,19.248
|
228 |
c0,10.888-5.448,20.512-13.744,26.296c 3.592,12.312-0.504,25.64-10.504,33.784c-5.84,4.752-13,7.168-20.2,7.168
|
229 |
c-5.504,0-11.016-1.408-15.984-4.28c-10.576-6.096-21.888-10.92-33.8-14.392C 396.36,423.624, 369.64,432.656, 342.2,432.656L 342.2,432.656z" />
|
230 |
-
|
231 |
c 22.344,0, 52.488,6.72, 75.080,23.624l0-74.656 c-18.84-8.984-36.36-12.608-51.624-16.232c-15.28-3.608-31.832-5.424-49.576-5.424
|
232 |
c-19.768,0-76.832,0.544-100.248,60.2c-4.216,10.736-6.328,26.328-6.328,46.736L 184.32,288.128 l-64.424,0 l 0.312,49.064
|
233 |
c 21.328,0, 85.312,12.952, 85.312,110.936L 264.008,448.128 M 264.008,480.128L 205.52,480.128 c-17.672,0-32-14.328-32-32c0-73.248-40.816-78.936-53.312-78.936
|
@@ -237,7 +237,7 @@
|
|
237 |
c-4.528,2.28-9.44,3.392-14.328,3.392c-6.784,0-13.528-2.16-19.168-6.376c-19.048-14.264-43.424-17.248-55.904-17.248
|
238 |
c-12.8,0-17.56,4.64-18.608,5.872c-0.544,2.512-2.064,11.888-2.064,38.504l 0.112,107.264l 79.704,0 c 17.672,0, 32,14.328, 32,32l0,47.984
|
239 |
c0,17.672-14.328,32-32,32l-80.16,0 L 296.008,448.128 C 296.008,465.8, 281.68,480.128, 264.008,480.128L 264.008,480.128z" />
|
240 |
-
|
241 |
l-11.28-47.936l-69.8,0 l0-239.888 l-47.952,0 l-0.032,239.888L 159.68,248.136 l-0.128,47.936l 63.856,0 c0,0,0,58.688,0,74.592
|
242 |
C 223.416,435.704, 277.432,439.752, 290.88,439.752 M 335.664,439.672l 0.080,0 M 290.88,471.752L 290.88,471.752c-11.504,0-33.984-1.904-55.28-14.736
|
243 |
c-20.16-12.128-44.184-36.968-44.184-86.344l0-42.592 l-31.856,0 c-8.504,0-16.656-3.392-22.672-9.408c-6-6.032-9.36-14.184-9.328-22.704
|
@@ -245,7 +245,7 @@
|
|
245 |
c 14.2,0, 26.704,9.36, 30.704,22.984l 11.28,47.936c 2.84,9.672, 0.952,20.128-5.096,28.184c-6.032,8.080-15.528,12.832-25.608,12.832l-48.816,0
|
246 |
l0,31.576 l 31.816,0.016c 17.608,0, 31.92,14.232, 32,31.856l 0.216,46.376c 0.032,0.592, 0.048,1.168, 0.048,1.768c0,17.672-14.296,32-31.968,32l-0.080,0
|
247 |
l-40.888,0 C 293.864,471.72, 292.536,471.752, 290.88,471.752L 290.88,471.752z" />
|
248 |
-
|
249 |
L 168.896,467.92c-5.296,4.28-12.768,4.768-18.528,1.144L 7.776,380.080c-4.344-2.72-7.128-7.344-7.488-12.456
|
250 |
c-0.376-5.112, 1.736-10.080, 5.656-13.376l 82.608-69.408l-70.768-55.592c-4.048-3.16-6.312-8.088-6.112-13.208
|
251 |
c 0.2-5.12, 2.84-9.832, 7.112-12.68l 65.488-43.656c-3.216-2.92-5.272-7.104-5.272-11.8l0-64.168 c0-5.56, 2.888-10.72, 7.624-13.64
|
@@ -257,7 +257,7 @@
|
|
257 |
L 111.008,141.888 z M 399.104,92.672l-128.128-72.84L 270.976,163.72 l 66.328-50.984c 2.856-2.2, 6.312-3.312, 9.752-3.312c 3.096,0, 6.184,0.888, 8.872,2.688
|
258 |
l 43.168,28.784L 399.096,92.672 z M 456.728,217.76l-109.016-72.664l-63.72,48.968l 113,70.816L 456.728,217.76z M 396.832,304.296l-113.672,73.984
|
259 |
l 71.2,57.592l 114.232-71.296L 396.832,304.296z" />
|
260 |
-
|
261 |
C 63.696,419.336, 0.136,328.968, 0.136,223.992c0-141.080, 114.784-255.856, 255.856-255.856c 141.096,0, 255.872,114.784, 255.872,255.856
|
262 |
C 511.864,365.088, 397.088,479.864, 255.992,479.864z M 479.864,223.992c0-1.792-0.096-3.56-0.136-5.336
|
263 |
c-24.512,6.504-86.696,18.72-163.4,1.872c-6.76,15.448-14.256,31.288-22.64,47.408c-0.704,1.352-1.392,2.64-2.088,3.976
|
@@ -271,7 +271,7 @@
|
|
271 |
c 13.984,6.336, 27.76,11.392, 41.192,15.456c 30.368-77.16, 40.904-140.784, 44.088-165.296c-26.376-10.952-55.264-17.032-85.56-17.032
|
272 |
C 203.984,0.136, 156.096,18.016, 118.048,47.88z M 371.808,32.48c-4.616,30.8-16.072,88.696-42.984,157.832
|
273 |
c 74.224,14.776, 132.976,0.28, 147.808-4.040C 465.52,121.168, 426.264,65.528, 371.808,32.48z" />
|
274 |
-
|
275 |
c-0.736,0-1.472-0.032-2.2-0.080c-0.456-0.032-5.592-0.344-13.64-0.344c-13.328,0-39.344,0.904-63.984,6.968
|
276 |
c-31.832,7.816-68.56,44.080-79.248,51.232c-5.376,3.592-11.576,5.392-17.784,5.392c-6.184,0-12.392-1.8-17.768-5.376
|
277 |
c-1.296-0.872-39.752-42.016-77.376-51.248c-24.624-6.064-51.144-6.968-64.456-6.968c-8.048,0-13.184,0.312-13.688,0.344
|
@@ -284,12 +284,12 @@
|
|
284 |
c-6.248,6.248-16.384,6.248-22.624,0l-45.256-45.256l-45.256,45.256c-6.248,6.248-16.384,6.248-22.632,0s-6.248-16.384,0-22.624l 45.256-45.256
|
285 |
l-45.256-45.256c-6.248-6.24-6.248-16.376,0-22.624s 16.384-6.248, 22.632,0l 45.256,45.256l 45.256-45.256c 6.24-6.248, 16.376-6.248, 22.624,0
|
286 |
s 6.248,16.384,0,22.624l-45.256,45.256l 45.256,45.256C 330.048,290.496, 330.048,300.632, 323.8,306.88z" />
|
287 |
-
|
288 |
c 26.512,0, 48,21.488, 48,48L 464.072,432 C 464.072,458.512, 442.584,480, 416.072,480z M 432.072,16c0-8.832-7.168-16-16-16L 95.928,0 c-8.832,0-16,7.168-16,16L 79.928,432
|
289 |
c0,8.832, 7.168,16, 16,16l 320.144,0 c 8.832,0, 16-7.168, 16-16L 432.072,16 z M 256.024,79.912c-17.64,0-31.92-14.296-31.92-31.912s 14.28-31.92, 31.92-31.92
|
290 |
c 17.632,0, 31.92,14.304, 31.92,31.92S 273.656,79.912, 256.024,79.912z M 288.024,432l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0
|
291 |
c 8.832,0, 16,7.168, 16,16S 296.856,432, 288.024,432z" />
|
292 |
-
|
293 |
L 375.304,425.264l-77.144,51.952c-4.856,3.264-11.080,3.656-16.232,0.968c-5.184-2.656-8.512-7.936-8.704-13.752l-2.768-92.968
|
294 |
l-73.248-57.296c-4.592-3.592-6.856-9.408-5.936-15.16s 4.904-10.544, 10.408-12.512l 68.728-24.64c-0.464-0.368-0.952-0.696-1.384-1.128
|
295 |
L 3.648-4.648c-6.248-6.248-6.248-16.376,0-22.624c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 265.376,265.376
|
@@ -299,14 +299,14 @@
|
|
299 |
c-1.624,4.472-5.16,7.968-9.64,9.576l-67.296,24.128l 56.312,44.032c 3.752,2.936, 5.984,7.376, 6.144,12.128l 2.128,71.472l 59.296-39.936
|
300 |
c 3.952-2.656, 8.888-3.408, 13.424-2.096l 68.624,20.048l-19.672-68.736c-1.296-4.576-0.504-9.488, 2.168-13.424l 40.28-59.064L 397.024,268.728z
|
301 |
" />
|
302 |
-
|
303 |
C 358.28,185.488, 384.8,146.312, 384.8,87.856c0-38.064-0.168-70-0.296-87.56l 32.032,0 c 8.84,0, 16-7.144, 16-15.984s-7.16-16-16-16L 95.472-31.688
|
304 |
c-8.84,0-16,7.16-16,16s 7.16,15.984, 16,15.984l 32.968,0 c-0.12,17.56-0.296,49.504-0.296,87.56c0,58.456, 26.144,97.624, 89.072,129.528
|
305 |
c-60.616,30.92-88.568,70.408-88.568,122.6L 128.648,447.696 l-33.176,0 c-8.84,0-16,7.152-16,16c0,8.832, 7.16,15.992, 16,15.992l 321.064,0
|
306 |
c 8.84,0, 16-7.16, 16-15.992C 432.528,454.848, 425.376,447.696, 416.528,447.696z M 160.136,87.856c0-38.144, 0.176-70.112, 0.296-87.56l 192.088,0
|
307 |
c 0.112,17.456, 0.296,49.424, 0.296,87.56c0,44.504-16.56,79.016-96.592,112.2C 176.216,166.872, 160.136,132.36, 160.136,87.856z M 352.312,447.696
|
308 |
l-191.68,0 l0-107.704 c0-30.688, 10.32-70.208, 95.584-105.264c 85.28,35.056, 96.096,74.576, 96.096,105.264L 352.312,447.696 z" />
|
309 |
-
|
310 |
c 0.064,5.888-3.128,11.344-8.296,14.184l-240.72,128.8c-4.816,2.64-10.64,2.624-15.488-0.048L 8.16,293.16
|
311 |
c-5.096-2.84-8.248-8.232-8.216-14.080s 3.248-11.2, 8.408-13.984l 105.192-55.992c-1.32-2.328-2.136-4.984-2.136-7.848l0-135.392
|
312 |
c0-4.56, 1.952-8.92, 5.36-11.952c 3.472-3.080, 36.72-30.048, 138.376-30.048c 101.296,0, 135.44,25.488, 139,28.392
|
@@ -314,7 +314,7 @@
|
|
314 |
c-9.488-5.552-15.92-15.736-15.92-27.512c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32C 511.504,116.096, 504.984,126.32, 495.424,131.848z M 368.016,73.816
|
315 |
c-12.576-6.048-45.856-17.952-112.872-17.952c-67.44,0-99.968,12.672-111.736,18.768L 143.408,193.2 l 103.904-55.312c 2.36-1.28, 4.984-1.92, 7.592-1.92
|
316 |
c 2.544,0, 5.096,0.608, 7.408,1.832l 105.704,55.832L 368.016,73.816 z M 255.032,170.096L 49.232,279.376l 206.16,110.488l 206.8-110.168L 255.032,170.096z" />
|
317 |
-
|
318 |
c 1.856-0.736, 3.816-1.080, 5.752-1.080c 4.424,0, 8.768,1.84, 11.856,5.264l 60.296,66.56l 47.216-65.216
|
319 |
c 2.984-4.128, 7.752-6.576, 12.84-6.608l 0.112,0 c 5.048,0, 9.816,2.392, 12.832,6.456l 47.408,63.672l 46.592-63.576
|
320 |
c 3.016-4.112, 7.8-6.544, 12.904-6.544c 5.096,0, 9.888,2.424, 12.904,6.528l 47.784,65.144l 59-66.312
|
@@ -325,7 +325,7 @@
|
|
325 |
L 80.144,257.272 c0,105.2, 78.888,190.8, 175.84,190.8c 96.968,0, 175.856-85.592, 175.856-190.8L 431.84,25.984 z M 336,303.92c-17.64,0-31.92-14.296-31.92-31.904
|
326 |
c0-17.624, 14.28-31.92, 31.92-31.92s 31.92,14.296, 31.92,31.92C 367.92,289.624, 353.64,303.92, 336,303.92z M 176,303.92
|
327 |
c-17.64,0-31.92-14.296-31.92-31.904c0-17.624, 14.288-31.92, 31.92-31.92s 31.92,14.296, 31.92,31.92C 207.92,289.624, 193.64,303.92, 176,303.92z" />
|
328 |
-
|
329 |
c-28.232,14.144-53.832,21.016-78.232,21.016c-49.144,0-83.152-28.352-104.48-49.68l-17.792-17.808l-11.872-11.888l-17.232-17.256l-26.864-26.896
|
330 |
l-29.664-29.688c-55.344-55.4-64.184-111.8-28.632-182.904c 5.512-11.040, 11.184-23.168, 17.184-36.016
|
331 |
c 32.352-69.192, 65.792-140.744, 120.528-140.744c 1.536,0, 3.056,0.048, 4.608,0.168c 56.488,4.424, 72.512,77.144, 86.656,141.296
|
@@ -341,7 +341,7 @@
|
|
341 |
c 6,6, 6,15.736,0,21.728c-6,6-15.72,6-21.72,0l-12.176-12.176l-12.176,12.176c-6,6-15.72,6-21.72,0
|
342 |
c-6-6-6-15.728,0-21.728l 12.176-12.176l-12.176-12.176c-6-5.992-6-15.72,0-21.72c 6-6, 15.728-6, 21.72,0
|
343 |
l 12.176,12.168l 12.528-12.528c 6-6, 15.72-6, 21.72,0s 6,15.736,0,21.736L 164.944,208.28z" />
|
344 |
-
|
345 |
c 3.184,5.672, 9.44,8.752, 15.968,8.032c 6.456-0.832, 11.768-5.488, 13.44-11.784c 0.096-0.376, 9.984-37.376, 23.032-57.92
|
346 |
c 8.768-13.824, 17.656-23.592, 27.656-30.376c-6.768,29.328-11.952,73.456-3.512,118.736C 186.024,448.080, 283.848,477.816, 288.040,479.016
|
347 |
c 5.392,1.544, 11.112,0.16, 15.216-3.576c 4.096-3.752, 5.968-9.376, 4.904-14.832c-0.16-0.872-16.312-87.888, 17.968-162.032
|
@@ -354,7 +354,7 @@
|
|
354 |
c-1.2,1.704-29.656,41.984-42.2,69.12c-26.048,56.296-25.608,117.168-22.952,152.232c-26.36-15.36-66.832-49.672-79.832-119.456
|
355 |
c-12.656-67.904, 11.936-135.8, 12.2-136.472c 2.128-5.544, 1-11.832-2.904-16.296c-3.92-4.44-9.952-6.408-15.768-5.016
|
356 |
c-1.984,0.488-47.016,12.2-76.168,58.144C 106.464,226.512, 101.792,236.472, 97.848,246.16z" />
|
357 |
-
|
358 |
c-3.144,24.576-9.016,70.312-82.736,70.312c-8.84,0-16-7.16-16-16s 7.16-16, 16-16c 45.56,0, 47.968-18.704, 51-42.392
|
359 |
c 0.392-3.032, 0.768-5.936, 1.216-8.64c 1.872-11.264, 10.352-56.080, 17.672-100.512c-18.776,14.312-42.144,22.904-67.56,22.904
|
360 |
c-40.824,0-77.16-21.976-97.136-54.68c-9.608,3.632-25.912,8.168-47.696,8.168c-21.472,0-37.256-4.568-47.016-8.544
|
@@ -369,7 +369,7 @@
|
|
369 |
c-44.096,0-81.344,36.488-81.344,79.672s 37.248,79.672, 81.344,79.672c 38,0, 69.816-26.744, 77.728-62.392
|
370 |
c 0.328-3.264, 0.6-6.336, 0.808-9.144c 0.096-1.344, 0.456-2.608, 0.92-3.832c 0.080-1.44, 0.216-2.856, 0.216-4.312
|
371 |
C 480.328,99.744, 444.592,64.008, 400.656,64.008z" />
|
372 |
-
|
373 |
c-18.112,18.112-49.752,18.144-67.888,0L 14.408,266.352c-4.512-4.2-14.44-15.544-14.44-26.672l0-239.76 c0-17.592, 14.408-32, 32-32l 448,0
|
374 |
c 17.592,0, 32,14.408, 32,32L 511.968,239.048 C 512.080,240.488, 511.936,241.928, 511.656,243.352z M 134.896,116.832L 31.968,22.048L 31.968,207.64 L 134.896,116.832z
|
375 |
M 167.784,103.64c 1.144,0.76, 2.232,1.624, 3.184,2.704c 0.184,0.208, 0.312,0.456, 0.48,0.672l 70.584,65
|
@@ -377,7 +377,7 @@
|
|
377 |
l 101.24,89.848l0-180.92 L 378.728,114.72z M 51.888,258.584L 245.64,443.856c 3.032,3.016, 7.048,4.688, 11.312,4.688
|
378 |
c 4.28,0, 8.296-1.672, 11.328-4.688L 448.968,271.68l-0.488,0 l 27.448-27.896l-121.152-107.52l-67.624,60.832
|
379 |
c-18.84,14.768-45.888,15.408-65.84-0.688l-62.752-57.792L 37.664,245.288l 13.496,13.296L 51.888,258.584 z" />
|
380 |
-
|
381 |
L 415.968,348.976L 415.968,400.608 c0,8.84-7.16,16-16,16l-50.664,0 l-58.4,49.856c-18.112,18.112-49.752,18.144-67.888,0l-58.2-49.856l-52.848,0
|
382 |
c-8.84,0-16-7.16-16-16l0-52.688 L 14.408,266.36c-8.672-5.736-14.44-15.544-14.44-26.672l0-239.752 c0-17.592, 14.408-32, 32-32l 448,0
|
383 |
c 17.592,0, 32,14.408, 32,32l0,239.12 C 512.080,240.496, 511.936,241.936, 511.656,243.36z M 134.432,117.248L 31.968,22.208L 31.968,207.656 L 134.432,117.248z
|
@@ -387,7 +387,7 @@
|
|
387 |
c 3.032,3.016, 7.048,4.688, 11.312,4.688c 4.28,0, 8.296-1.672, 11.328-4.688l 32.312-27.232L 213.376,416.608 L 245.64,443.84z M 383.968,384.608l0-222.424
|
388 |
l-28.656-25.44l-68.16,61.784c-18.84,14.768-45.888,15.408-65.84-0.688L 158,139.12l-30.032,26.504L 127.968,384.608 L 383.968,384.608 z M 51.888,258.592l 44.080,44.064
|
389 |
l0-108.808 l-58.312,51.448l 13.496,13.296L 51.888,258.592 z" />
|
390 |
-
|
391 |
c0,90.008-67.32,163.24-153.344,163.24c-86.040,0-152.832-73.232-152.832-163.24l0-104.48 c0-32.256-27.744-62.744-45.336-86.4
|
392 |
c-15.824-21.256-28.312-38.048-19.88-54.832c 7.416-14.768, 25.984-16.664, 41.328-16.664l 91.68,0 c 0.024-47.104, 38.224-85.288, 85.336-85.288
|
393 |
c 47.12,0, 85.32,38.184, 85.344,85.288l 93.832,0 c 9.76,0, 32.576,0, 40.432,16.6C 483.056,87.248, 470.368,102.696, 452.808,124.056z
|
@@ -395,7 +395,7 @@
|
|
395 |
c-2.448,0-4.496,0.080-6.184,0.184c 3.296,5.104, 8.136,11.624, 12.072,16.928c 19.496,26.2, 52.072,63.184, 52.072,106.712l0,104.48
|
396 |
c0,71.232, 51.52,129.176, 118.76,129.176c 67.24,0, 119.28-57.944, 119.28-129.176l0-104.48 c0-45.008, 30.040-82.624, 51.984-109.304
|
397 |
c 3.696-4.496, 8.12-9.88, 11.56-14.48C 437.032,87.92, 435.912,87.904, 434.696,87.904z" />
|
398 |
-
|
399 |
c-97.168,0-175.92-78.76-175.92-175.904c0-25.816, 5.608-50.312, 15.592-72.392L 1.512,60.096c-3.032-5.512-2.528-12.312, 1.264-17.344
|
400 |
c 3.8-5.016, 10.216-7.376, 16.344-5.936l 80.312,18.424l 27.488-76.56c 2.144-5.952, 7.576-10.080, 13.872-10.544
|
401 |
c 0.408-0.032, 0.8-0.048, 1.184-0.048c 5.856,0, 11.296,3.216, 14.096,8.44l 81.848,152.488c 5.904-0.6, 11.896-0.904, 17.96-0.904
|
@@ -406,7 +406,7 @@
|
|
406 |
c 79.272,0, 143.768-64.496, 143.768-143.768s-64.496-143.784-143.768-143.784C 176.608,160.232, 112.112,224.744, 112.112,304.016z M 405.872,89.592
|
407 |
c-7.936,1.872-15.888-2.56-18.64-10.184l-20.264-56.488L 305.392,135.2c 37.72,11.048, 70.168,34.368, 92.752,65.368l 67.424-124.664L 405.872,89.592z
|
408 |
" />
|
409 |
-
|
410 |
c-1.64,2.808-4.216,4.616-7.096,5.296c-2.848,0.704-5.992,0.272-8.704-1.488l-4.92-3.168c-0.096-0.056-0.152-0.144-0.248-0.208
|
411 |
l-72.8-49.16c-5.44-3.504-7.208-10.84-3.968-16.456l 3.272-3.6c 3.24-5.592, 10.632-5.824, 16.080-2.32l 43.52,29.592
|
412 |
c-10.304-83-77.368-146.696-159.48-154.088L 271.976,320.512 L 336,320.512 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-64.72,0
|
@@ -419,26 +419,26 @@
|
|
419 |
c 14.688-102.36, 102.552-178.912, 206.64-178.912c 104.032,0, 191.96,76.544, 206.68,178.856l 23.92-44.432c 3.248-5.592, 9.944-8.768, 15.384-5.272
|
420 |
l 4.56,1.712C 511.984,101.36, 513.76,108.712, 510.512,114.296z M 223.752,416.512c0,17.92, 14.576,32.504, 32.496,32.504
|
421 |
c 17.92,0, 32.504-14.576, 32.504-32.504s-14.576-32.504-32.504-32.504C 238.336,384.016, 223.752,398.592, 223.752,416.512z" />
|
422 |
-
|
423 |
c-26.472,0-48-21.528-48-48l0-64.352 l-16,0.040c-26.376-0.112-47.816-21.576-47.816-47.984l0-255.904 c0-26.472, 21.528-48, 48-48l 416.232,0
|
424 |
c 26.472,0, 48,21.528, 48,48L 511.824,334.76z M 95.696,408.104c0,8.36, 6.44,15.232, 14.608,15.936l 353-71.44
|
425 |
c 0.128-0.064-2.624-8.968-15.44-8.8L 95.696,343.8 L 95.696,408.104 z M 480.12,39.896c0-8.832-7.168-16-16-16L 47.88,23.896 c-8.832,0-16,7.168-16,16L 31.88,295.808
|
426 |
c0,8.832, 7.168,16, 16,16l 400.032,0 c 15.704,0, 32.2,5.352, 32.2,15.944L 480.112,39.896 z M 95.912,199.752c-17.672,0-32-14.328-32-32s 14.328-32, 32-32
|
427 |
s 32,14.328, 32,32S 113.584,199.752, 95.912,199.752z" />
|
428 |
-
|
429 |
c 5.544-9.52, 15.752-16, 27.56-16c 17.672,0, 32,14.328, 32,32s-14.328,32-32,32c-11.816,0-22.016-6.48-27.56-16L 304,368 l0,16 c0,8.832-7.168,16-16,16l-64,0
|
430 |
c-8.832,0-16-7.168-16-16l0-16 L 59.56,368 C 54.016,377.52, 43.816,384, 32,384c-17.672,0-32-14.328-32-32s 14.328-32, 32-32c 11.816,0, 22.016,6.48, 27.56,16l 80.4,0
|
431 |
C 75.392,296.704, 32.136,225.768, 32.136,144.808L 32.136,144 L 16,144 c-8.832,0-16-7.168-16-16l0-64 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,64
|
432 |
c0,8.832-7.168,16-16,16L 64.136,144 l0,0.808 c0,89.224, 61.232,164.336, 143.864,185.696L 208,320 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,10.504
|
433 |
c 82.632-21.368, 143.864-96.48, 143.864-185.696L 447.864,144 L 432,144 c-8.832,0-16-7.168-16-16l0-64 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,64
|
434 |
C 512,136.832, 504.832,144, 496,144z M 64,80L 32,80 l0,32 l 32,0 L 64,80 z M 272,336l-32,0 l0,32 l 32,0 L 272,336 z M 480,80l-32,0 l0,32 l 32,0 L 480,80 z" />
|
435 |
-
|
436 |
c0-6.456, 3.872-12.264, 9.816-14.752c 2-0.84, 4.112-1.248, 6.184-1.248c 4.128,0, 8.168,1.592, 11.216,4.592l 92.512,91.064L 480,95.448
|
437 |
c 17.672,0, 32,14.328, 32,32L 512,416.2 C 512,433.872, 497.672,448.2, 480,448.2z M 480,127.456L 202.392,127.456 l-74.624-73.456l0,73.456 L 32,127.456 L 32,416.2 l 448,0 L 480,127.456 z
|
438 |
M 112,255.496l 288,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 112,287.496 c-8.832,0-16-7.168-16-16S 103.168,255.496, 112,255.496z M 112,319.496l 288,0
|
439 |
c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 112,351.496 c-8.832,0-16-7.168-16-16S 103.168,319.496, 112,319.496z M 112,191.496l 192,0 c 8.832,0, 16,7.168, 16,16
|
440 |
s-7.168,16-16,16L 112,223.496 c-8.832,0-16-7.168-16-16S 103.168,191.496, 112,191.496z" />
|
441 |
-
|
442 |
c 4.936,4.936, 12.512,6.112, 18.72,2.872c 6.184-3.232, 9.56-10.112, 8.344-16.984c-0.816-4.576-1.184-8.248-1.184-11.56
|
443 |
c0-35, 28.488-64.072, 63.504-64.072c 35.048,0, 60.64,29.072, 60.64,64.072c0,35.048-25.592,63.544-60.64,63.544c-3.28,0-6.936-0.376-11.512-1.184
|
444 |
c-6.936-1.28-13.752,2.16-16.984,8.344c-3.232,6.2-2.064,13.784, 2.872,18.72l 74.544,74.56c 14.44,14.376, 39.408,14.344, 53.784,0.032
|
@@ -450,20 +450,20 @@
|
|
450 |
c-30.856,0-55.968-25.128-55.968-56.016c0-1.28, 0.2-2.528, 0.376-3.784l 0.344-2.856c 0.72-6.752-2.888-13.216-9.016-16.144
|
451 |
c-6.080-2.904-13.408-1.656-18.2,3.128l-78.472,78.512c-3.064,3.032-5.472,3.064-8.592-0.032l-48.56-48.56
|
452 |
c 41.64-10.312, 69.688-47.984, 69.688-92.768c0-52.656-39.96-96.064-92.648-96.064C 135.4,209.248, 97.744,240.784, 87.448,282.392z" />
|
453 |
-
|
454 |
L-0.024,99.92 c0-19.672, 16-35.672, 35.656-35.672l 60.36,0 L 95.992-31.76 l 320.016,0 L 416.008,64.248 l 60.36,0 c 19.656,0, 35.656,16, 35.656,35.672L 512.024,316.864
|
455 |
C 512.024,336.536, 496.024,352.536, 476.368,352.536z M 127.992,448.256l 256.016,0 l0-95.72 L 127.992,352.536 L 127.992,448.256 z M 384.008,0.24L 127.992,0.24 L 127.992,176.44 l 256.016,0
|
456 |
L 384.008,0.24 z M 480.024,99.92c0-2.040-1.64-3.672-3.656-3.672l-60.36,0 L 416.008,208.44 L 95.992,208.44 l0-112.184 L 35.632,96.256 c-2.016,0-3.656,1.632-3.656,3.672
|
457 |
L 31.976,316.864 c0,2.032, 1.64,3.672, 3.656,3.672l 440.736,0 c 2.016,0, 3.656-1.64, 3.656-3.672L 480.024,99.92 z M 416,288.28l-16,0 c-8.832,0-16-7.168-16-16
|
458 |
s 7.168-16, 16-16l 16,0 c 8.832,0, 16,7.168, 16,16S 424.832,288.28, 416,288.28z" />
|
459 |
-
|
460 |
c-58.8,0-107.92-62.608-131-97.704C 233.856,401.704, 183.232,464.312, 124.44,464.312c-44.688,0-60.608-30.112-60.608-57.832
|
461 |
c0-22.504, 9.296-40.792, 23.72-54.736L 32,351.744 c-17.672,0-32-14.328-32-32l0-95.784 l 32.28,0 l0-208.28 c0-17.672, 14.328-32, 32-32l 383.84,0 c 17.672,0, 32,14.328, 32,32
|
462 |
L 480.12,223.968 L 512,223.968 L 512,319.752 z M 387.952,432.312c 19.784,0, 28.608-8.312, 28.608-25.832c0-35.544-39.672-54.72-76.984-54.72l-54.168,0
|
463 |
C 308.144,385.528, 348.16,432.312, 387.952,432.312z M 124.44,432.312c 39.8,0, 81.328-46.784, 104.064-80.544l-54.184,0
|
464 |
c-37.312,0-78.488,19.672-78.488,55.216C 95.832,424.496, 104.656,432.312, 124.44,432.312z M 480,255.968L 272,255.968 l0,63.784 l 208,0 L 480,255.968 z M 32,319.752l 208,0 l0-63.784
|
465 |
L 32,255.968 L 32,319.752 z M 64.28,223.968L 240,223.968 l0-208.28 L 64.28,15.688 L 64.28,223.968 z M 448.128,15.688L 272,15.688 L 272,223.968 l 176.128,0 L 448.128,15.688 z" />
|
466 |
-
|
467 |
S 8.040,448.12, 16.88,448.12z M 16.88,352.12l 224,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-224,0 c-8.832,0-16-7.168-16-16S 8.040,352.12, 16.88,352.12z
|
468 |
M 256.88,272.12c0,8.832-7.168,16-16,16l-224,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 224,0 C 249.712,256.12, 256.88,263.288, 256.88,272.12z
|
469 |
M 506.44,317.728L 349.984,474.176c-4.952,4.96-12.328,5.92-18.296,3.008c-6.272-2.168-10.808-8.056-10.808-15.064L 320.88,107.92
|
@@ -471,7 +471,7 @@
|
|
471 |
c 53.064,0, 96.048,35.904, 96.048,80.168c0,2.008-0.184,3.968-0.36,5.936L 352.88,426.024 l 130.92-130.928c 6.248-6.248, 16.384-6.248, 22.632,0
|
472 |
C 512.68,301.344, 512.68,311.48, 506.44,317.728z M 320.88,46.488c-1.152-22.248-27.096-46.408-64.064-46.408
|
473 |
c-37.824,0-64.176,25.28-64.176,47.936c0,22.672, 26.352,47.92, 64.176,47.92c 36.968,0, 62.912-24.128, 64.064-46.392L 320.88,46.488 z" />
|
474 |
-
|
475 |
c-11.080-35.656-12.36-67.92-3.896-97.344c-0.776-0.536-1.52-1.12-2.208-1.808L 205.056,283.952c-27.6,12.8-57.272,19.728-86.848,19.728
|
476 |
c-18.8,0-37.232-2.784-54.784-8.232c-5.344-1.672-9.44-6-10.784-11.424c-1.344-5.44, 0.232-11.168, 4.184-15.144l 109.488-110.192
|
477 |
L 13.232,3.168l-13.312-35.064l 32.184,12.44l 156.68,155.52l 110.912-111.632c 3.032-3.064, 7.144-4.72, 11.344-4.72
|
@@ -482,18 +482,18 @@
|
|
482 |
c-8.416,12.864-18.232,25.088-29.512,36.376c-11.232,11.232-23.504,21.128-36.48,29.664l 72.064,72.048c 7.352-12.784, 16.832-25, 28.504-36.664
|
483 |
c 11.928-11.92, 24.544-21.568, 37.8-29.032L 300.112,201.728z M 357.312,325.776c-30.768,30.768-42.624,65.064-36.344,106.44l 143.456-144.2
|
484 |
C 423.096,282.088, 388.624,294.464, 357.312,325.776z" />
|
485 |
-
|
486 |
C 512,425.64, 497.592,440.048, 480,440.048z M 480,39.952L 32,39.952 L 32,134.232 l 128.424,124.456l 132.392-132.248c 5.456-6.624, 15.168-5.784, 22.064-0.56
|
487 |
l 58.44,52.904L 478.72,70.592c 0.4-0.4, 0.848-0.696, 1.28-1.040L 480,39.952 z M 480,115.104L 385.984,211.312
|
488 |
c-5.704,5.624-14.64,6.2-20.968,1.376l-60.28-52.512L 172.264,291.216c-2.832,3.424-6.92,5.512-11.344,5.8
|
489 |
c-4.408,0.16-8.752-1.28-11.984-4.312L 32,178.904L 32,408.048 l 448,0 L 480,115.104 z M 368,279.936c 17.64,0, 31.92,14.304, 31.92,31.92
|
490 |
c0,17.608-14.28,31.912-31.92,31.912s-31.92-14.304-31.92-31.912C 336.080,294.24, 350.36,279.936, 368,279.936z" />
|
491 |
-
|
492 |
c-1.376,0.408-2.72,0.56-3.984,0.56C 4.856,479.592,0,474.688,0,467.312l0-415 c0-8.784, 6.936-17.936, 15.408-20.28l 161.168-63.592
|
493 |
l 159.504,64.752l 160.512-63.064c 1.376-0.376, 2.72-0.56, 3.984-0.56c 6.56,0, 11.424,4.872, 11.424,12.248L 512,392.184
|
494 |
C 512,400.968, 505.064,410.128, 496.592,412.496z M 192,389.432l 128,50.152l0-380.752 l-128-50.592L 192,389.432 z M 32,436.656l 128-47.288l0-380.88 L 32,60.624L 32,436.656 z
|
495 |
M 480,11l-128,48.192L 352,439.104 l 128-55.192L 480,11 z" />
|
496 |
-
|
497 |
c 5.232,2.816, 8.488,8.312, 8.408,14.264c-0.080,5.968-3.456,11.376-8.752,14.080L 265.856,478.048c-4.528,2.296-9.872,2.312-14.44,0.032
|
498 |
L 11.392,357.44c-5.312-2.672-8.72-8.080-8.816-14.032S 5.704,331.936, 10.92,329.096z M 258.576,445.856L 461.656,342.72L 256.168,231.984
|
499 |
L 53.080,342.576L 258.576,445.856z M 500.672,239.84l-47.488,24.112l-34.28-18.488l 40-20.312L 253.424,114.424L 50.328,225.016l 42.656,21.44L 58.8,265.080
|
@@ -502,7 +502,7 @@
|
|
502 |
M 500.672,127.84l-44.984,22.112l-34.28-18.488l 37.504-18.312L 253.424,2.424L 50.328,113.016l 39.656,17.936l-34.184,18.624L 8.64,127.872
|
503 |
c-5.312-2.672-8.72-8.080-8.816-14.032s 3.128-11.472, 8.344-14.312l 237.544-129.36c 2.392-1.296, 5.016-1.952, 7.656-1.952
|
504 |
c 2.608,0, 5.216,0.64, 7.592,1.92l 240.048,129.36c 5.232,2.816, 8.488,8.312, 8.408,14.264C 509.344,119.736, 505.968,125.144, 500.672,127.84z" />
|
505 |
-
|
506 |
c-65.048,0-112.472-52.936-112.472-118.016l0-42.64 L 105.68,319.784 c-32.872,0-62.64-26.56-66.264-58.528l-38.64-252.080
|
507 |
c-1.488-13.28, 1.112-23.752, 7.704-31.144c 6.216-6.952, 15.264-10.488, 26.872-10.488l 436.784,0 c 16.456,0, 25.888,6.608, 30.92,12.16
|
508 |
C 507.664-15.192, 512.88-6.224, 511.368,8.68z M 176.024,362.432c0,47.424, 33.064,86.016, 80.472,86.016s 79.488-38.592, 79.488-86.016l0-42.64
|
@@ -510,7 +510,7 @@
|
|
510 |
l 38.344,0 l0-36.464 C 134.488,245.784, 128,235.576, 128,223.752c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32c0,11.808-6.464,22-15.976,27.544l0,36.496 l 159.952,0
|
511 |
l0-36.496 C 326.472,245.752, 320,235.552, 320,223.752c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32c0,11.824-6.488,22.032-16.024,27.576l0,36.464 l 35.328,0
|
512 |
c 16.832,0, 32.656-14.128, 34.704-31.72l 41.672-251.64C 479.88,2.384, 478.272-0.224, 473.584-0.224z" />
|
513 |
-
|
514 |
c-4.472-7.608-1.936-17.424, 5.688-21.904c 64.624-38.016, 103.2-104.264, 103.2-177.184c0-121.184-87.968-209.144-209.16-209.144
|
515 |
c-27.096,0-53.392,5.080-78.16,15.080c-8.184,3.328-17.528-0.64-20.832-8.832c-3.312-8.2, 0.64-17.528, 8.832-20.832
|
516 |
c 28.608-11.56, 58.936-17.424, 90.16-17.424c 0.096,0, 0.192,0.008, 0.288,0.008l0-31.504 l-46.464,0 c-9.232,0-16.72-7.152-16.72-15.976
|
@@ -519,7 +519,7 @@
|
|
519 |
c-97.344,0-176.232-79.376-176.232-176.704s 78.888-175.72, 176.232-175.72C 320.816,95.632, 399.688,174.024, 399.688,271.352z M 79.248,271.352
|
520 |
c0,79.512, 64.704,144.704, 144.232,144.704c 79.512,0, 144.2-65.184, 144.2-144.704s-64.688-143.72-144.2-143.72
|
521 |
C 143.952,127.632, 79.248,191.832, 79.248,271.352z" />
|
522 |
-
|
523 |
C 259,479.928, 257.512,480.016, 256,480.016C 114.56,480.016-0.512,365.168-0.512,224c0-141.168, 115.072-256.016, 256.512-256.016
|
524 |
c 1.512,0, 3,0.088, 4.504,0.12c 0.832-0.032, 1.664-0.12, 2.496-0.12c 2.816,0, 5.592,0.2, 8.36,0.504
|
525 |
C 405.68-23.552, 512.512,87.976, 512.512,224z M 464.784,141.584c-8.816,2.56-30.96,8.12-70.032,12.696c 3.232,22.096, 5,45.448, 5,69.72
|
@@ -539,14 +539,14 @@
|
|
539 |
c 11.632,2.472, 32.456,6.232, 63.296,9.464c 12.144-44.856, 31.896-82.808, 55.568-109.984C 128.848,31.664, 86.76,67.68, 60.544,113.824z
|
540 |
M 345.328,18.408c 19.112,26.632, 34.24,62.512, 43.648,104.4c 31.704-3.64, 51.608-7.896, 61.648-10.432
|
541 |
C 426.616,70.84, 389.696,37.68, 345.328,18.408z" />
|
542 |
-
|
543 |
c 8.832,0, 16,7.168, 16,16S 120.832,424, 112,424z M 496,152c-8.832,0-16-7.168-16-16l0-80 L 400,56 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 96,0 c 8.832,0, 16,7.168, 16,16
|
544 |
L 512,136 C 512,144.832, 504.832,152, 496,152z M 112,56L 32,56 L 32,136 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-96 c0-8.832, 7.168-16, 16-16l 96,0 c 8.832,0, 16,7.168, 16,16
|
545 |
S 120.832,56, 112,56z M 496,424L 400,424 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 80,0 l0-80 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 512,408 C 512,416.832, 504.832,424, 496,424z" />
|
546 |
-
|
547 |
c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32L 512.080,344 C 512.080,361.672, 497.752,376, 480.080,376z M 32.072,392l 145.376,0 l 39.312-38.624L 226.816,344L 480.080,344
|
548 |
l0-32 l-448,0 L 32.080,392 z M 32.072,56L 32.072,280 l 448,0 l0-224 L 32.072,56 z" />
|
549 |
-
|
550 |
M 400,247.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,255.024, 391.168,247.856, 400,247.856z
|
551 |
M 400,151.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,159.024, 391.168,151.856, 400,151.856z
|
552 |
M 400,55.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,63.024, 391.168,55.856, 400,55.856z
|
@@ -556,14 +556,14 @@
|
|
556 |
M 80,55.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 64,63.024, 71.168,55.856, 80,55.856z M 480,472.048
|
557 |
L 32,472.048 c-17.592,0-32-14.408-32-32l0-432.096 c0-17.592, 14.408-32, 32-32l 448,0 c 17.592,0, 32,14.408, 32,32L 512,440.048 C 512,457.64, 497.592,472.048, 480,472.048z M 480,7.952L 32,7.952
|
558 |
L 32,440.048 l 448,0 L 480,7.952 z" />
|
559 |
-
|
560 |
c0-9.048, 7.328-16.376, 16.384-16.376s 16.384,7.328, 16.384,16.376C 346.376,188.608, 221.112,314.872, 50.936,314.872z M 51.080,478.688
|
561 |
c-9.056,0-16.384-7.328-16.384-16.384c0-9.056, 7.328-16.384, 16.384-16.384c 235.088,0, 426.336-191.248, 426.336-426.328
|
562 |
c0-9.048, 7.328-16.376, 16.384-16.376s 16.384,7.328, 16.384,16.376C 510.176,272.736, 304.224,478.688, 51.080,478.688z M 92.008,150.2
|
563 |
c-49.736,0-90.184-40.56-90.184-90.44c0-49.856, 40.456-90.456, 90.184-90.456s 90.2,40.592, 90.2,90.456
|
564 |
C 182.208,109.64, 141.744,150.2, 92.008,150.2z M 92.008,0.984c-32.304,0-58.584,26.376-58.584,58.784s 26.28,58.768, 58.584,58.768
|
565 |
c 32.312,0, 58.608-26.36, 58.608-58.768S 124.32,0.984, 92.008,0.984z" />
|
566 |
-
|
567 |
C 494.488,385.712, 388.672,480.336, 257.456,480.336c-136.672,0-247.408-105.312-254.92-244.952c-0.16-3.048-1.28-24.672-1.36-37.544l-0.040-7.16
|
568 |
c-0.656-2.96-1.056-6.016-1.056-9.168l0-107.328 c0-23.44, 19.064-42.504, 42.504-42.504l 43.144,0 c 23.44,0, 42.512,19.064, 42.512,42.504L 128.24,181.504
|
569 |
c0,23.44-19.080,42.504-42.512,42.504L 42.576,224.008 c-2.944,0-5.816-0.304-8.592-0.872c 0.24,5.192, 0.456,9.288, 0.512,10.528
|
@@ -575,7 +575,7 @@
|
|
575 |
c0-5.8-4.72-10.504-10.512-10.504L 42.576,63.672 c-5.8,0-10.504,4.704-10.504,10.504L 32.072,181.504 C 32.080,187.304, 36.784,192.008, 42.576,192.008z
|
576 |
M 416.264,181.504c0,5.8, 4.704,10.504, 10.504,10.504l 42.64,0 c 5.8,0, 10.512-4.704, 10.512-10.504l0-106.832 c0-5.8-4.72-10.504-10.512-10.504
|
577 |
l-42.64,0 c-5.8,0-10.504,4.704-10.504,10.504L 416.264,181.504 z" />
|
578 |
-
|
579 |
c-136.672,0-247.408-105.312-254.92-244.952c-0.16-3.048-1.28-24.672-1.36-37.544l-0.040-7.16c-0.656-2.96-1.056-6.016-1.056-9.168
|
580 |
l0-139.328 c0-23.44, 19.064-42.504, 42.504-42.504l 43.144,0 c 23.44,0, 42.512,19.064, 42.512,42.504L 128.24,165.496 c0,23.44-19.080,42.504-42.512,42.504L 42.568,208
|
581 |
c-2.944,0-5.816-0.304-8.592-0.872c 0.24,5.192, 0.456,9.296, 0.512,10.528C 41.080,340.048, 138.056,432.328, 257.456,432.328
|
@@ -585,36 +585,36 @@
|
|
585 |
l0-139.328 c0-5.808-4.72-10.504-10.512-10.504L 42.568,15.664 c-5.8,0-10.504,4.704-10.504,10.504L 32.064,165.496 C 32.080,171.296, 36.784,176, 42.568,176z
|
586 |
M 479.92,26.672c0-5.8-4.72-10.504-10.512-10.504l-42.64,0 c-5.8,0-10.504,4.704-10.504,10.504L 416.264,165.496 c0,5.8, 4.704,10.504, 10.504,10.504
|
587 |
l 42.64,0 c 5.8,0, 10.512-4.704, 10.512-10.504L 479.92,26.672 z" />
|
588 |
-
|
589 |
c 3,4.032, 7.704,6.424, 12.736,6.456c 5.592,0.048, 9.784-2.296, 12.832-6.28c 6.704-8.768, 164.168-216.112, 164.168-331.528
|
590 |
C 432.096,46.208, 352.736-31.352, 255.2-31.352z M 255.376,436.152c-37.2-52.832-143.472-211.032-143.472-294.608
|
591 |
c0-77.688, 64.28-140.888, 143.296-140.888c 79.888,0, 144.888,63.2, 144.888,140.888C 400.096,228.224, 293.016,384.056, 255.376,436.152z" />
|
592 |
-
|
593 |
c-0.992-3.752-0.504-7.504, 1-10.768C 0.608,221.56,0,218.544,0,215.368l0-175.656 c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32L 512,215.368
|
594 |
c0,0.856-0.184,1.664-0.248,2.504C 512.168,220.168, 512.16,222.592, 511.488,225.008z M 81.952,408.288l 343.184,0 l 46.56-160.92L 322.528,247.368
|
595 |
c-0.72-38.408-27.952-64.84-66.528-64.84s-65.312,26.44-66.032,64.84L 37.080,247.368 L 81.952,408.288z M 480,39.712L 32,39.712 L 32,215.368 l 131.56,0
|
596 |
c 13.968-40.216, 47.888-64.84, 92.44-64.84s 78.968,24.624, 92.936,64.84L 480,215.368 L 480,39.712 z" />
|
597 |
-
|
598 |
c-17.672,0-32-14.328-32-32l0-384 c0-17.672, 14.328-32, 32-32l 272,0 c 17.672,0, 32,14.328, 32,32L 336,287.992 L 208,416L 32,416 z M 304,0L 32,0 L 32,384 l 144,0 l0-128 l 128,0 L 304,0 z M 208,288L 208,370.752
|
599 |
L 290.736,288L 208,288 z" />
|
600 |
-
|
601 |
c-8.832,0-16-6.72-16-15l0-16.984 L 111.68,448.016 c-8.84,0-16-7.16-16-16l0-111.832 c0-8.84, 7.16-16, 16-16l 127.904,0 l0-32.048 L 65.288,272.136
|
602 |
c-4.576,0-8.936-1.952-11.968-5.376l-49.84-56.656c-5.376-6.064-5.376-15.184,0-21.248l 49.84-56.144c 3.056-3.424, 7.392-4.872, 11.968-4.872
|
603 |
l 174.296,0 l0-144.84 c0-8.28, 7.168-15, 16-15c 8.832,0, 16,6.72, 16,15L 271.584,127.84 l 128.232,0 c 8.84,0, 16,7.16, 16,16L 415.816,256.144 c0,8.84-7.16,16-16,16
|
604 |
L 271.584,272.144 l0,32.048 l 175.128,0 c 4.576,0, 8.936,1.952, 11.968,5.376l 49.848,56.16C 513.896,371.784, 513.896,380.904, 508.528,386.968z M 383.824,159.84
|
605 |
L 72.48,159.84 l-35.64,39.64l 35.64,40.656l 311.344,0 L 383.824,159.84 z M 439.52,336.184L 127.68,336.184 L 127.68,416.016 l 311.84,0 l 35.64-39.672L 439.52,336.184z" />
|
606 |
-
|
607 |
c-8.832,0-15-6.72-15-15L 216.632,432L 40.248,432 c-8.84,0-16-7.16-16-16l0-192 c0-8.84, 7.16-16, 16-16l 176.168,0 l0-225
|
608 |
c0-8.28, 7.168-15, 16-15c 8.832,0, 16,6.72, 16,15L 248.416,208 l 133.768,0 c 4.44,0, 8.672,1.84, 11.704,5.080l 89.56,96
|
609 |
C 489.184,315.232, 489.184,324.768, 483.456,330.92z M 375.232,240L 56.248,240 L 56.248,400 l 318.984,0 l 74.64-80L 375.232,240z" />
|
610 |
-
|
611 |
c-0.144,0-0.28-0.056-0.424-0.064L 96,480.16 c-8.8,0-19.376-6.36-23.512-14.128L 2.736,334.888c-4.144-7.768-3.312-19.968, 1.816-27.128
|
612 |
L 244.56-26.816c 2.576-3.592, 6-5.408, 9.416-5.408c 3.392,0, 6.792,1.768, 9.384,5.296L 507.312,305.2
|
613 |
C 512.504,312.296, 513.44,324.472, 509.36,332.264z M 471.184,336.184L 385.456,336.184 l 34.328,98.304L 471.184,336.184z M 287.672,448.16l 102.984,0 l-31.944-91.464
|
614 |
L 287.672,448.16z M 334.12,336.184L 185.296,336.184 l 70.336,101.048L 334.12,336.184z M 156.944,351.456L 124.856,448.16l 99.408,0 L 156.944,351.456z
|
615 |
M 340.376,304.184L 254.36,57.912L 172.632,304.184L 340.376,304.184 z M 218.464,64.456L 46.496,304.184l 92.416,0 L 218.464,64.456z M 374.272,304.184l 92.584,0
|
616 |
L 290.368,63.904L 374.272,304.184z M 94.24,438.792l 34.048-102.608L 39.664,336.184 L 94.24,438.792z" />
|
617 |
-
|
618 |
l-320.248,0.080c-17.672,0-32-14.328-32-32l0-240.472 c0-53.016, 42.984-96, 96-96l 192.328,0 c 53.016,0, 95.504,42.984, 95.504,96l 0.032,16.424
|
619 |
c 14.512-0.112, 29.304-0.2, 32.488-0.2c 52.888,0, 95.784,42.52, 95.784,95.536C 512.064,228.664, 469.168,272.104, 416.28,272.104z
|
620 |
M 351.768,63.88c0-35.296-28.2-64-63.504-64L 95.936-0.12 c-35.296,0-64,28.704-64,64L 31.888,304.352l 0.048,0 l 320.248-0.096L 351.768,63.88z
|
@@ -623,13 +623,13 @@
|
|
623 |
s-16-7.168-16-16l0-80 C 271.936,375.28, 279.104,368.12, 287.936,368.12z M 95.936,368.12c 8.832,0, 16,7.168, 16,16l0,80 c0,8.832-7.168,16-16,16
|
624 |
s-16-7.168-16-16l0-80 C 79.936,375.28, 87.104,368.12, 95.936,368.12z M 191.936,368.12c 8.832,0, 16,7.168, 16,16l0,80 c0,8.832-7.168,16-16,16
|
625 |
s-16-7.168-16-16l0-80 C 175.936,375.28, 183.104,368.12, 191.936,368.12z" />
|
626 |
-
|
627 |
c-2.936-5.768-1.872-12.768, 2.656-17.392c 2.904-2.952, 6.816-4.512, 10.768-4.512c 2.216,0, 4.472,0.488, 6.56,1.504l 152.864,63.488
|
628 |
c 2.8,1.344, 5.112,3.528, 6.608,6.248l 75.44,148.448c 3.216,5.8, 2.264,13.016-2.328,17.784C 379.672,341.696, 372.488,342.864, 366.592,339.864
|
629 |
z M 178.928,147.592l 43.504,88.84l 43.936-54.992L 178.928,147.592z M 292.352,200.192l-44.4,55.576l 88.392,34.88L 292.352,200.192z M 256,480
|
630 |
C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504
|
631 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z" />
|
632 |
-
|
633 |
c-4.576,2.8-10.16,4.168-16.232,4.168c-7.832,0-16.504-2.28-24.968-6.736c-8.248-4.344-33.232-18.56-45.456-25.544
|
634 |
c-10.768,7.56-36.064,26.936-75.92,66.832c-39.608,39.592-59.16,65.096-66.768,75.92c 6.968,12.216, 21.168,37.2, 25.488,45.424
|
635 |
c 8.184,15.504, 9.112,30.984, 2.472,41.424c-6.232,9.84-62.984,95.904-68.84,104c-5.512,7.64-15.408,11.768-26.144,11.768
|
@@ -646,7 +646,7 @@
|
|
646 |
l-5.848-0.136c-0.112,0-0.2-0.048-0.328-0.064L 379.384,480.112c-6.464-0.144-11.808-5.488-11.96-11.96l-0.016-8.208
|
647 |
c 0.984-7.616, 6.968-12.080, 13.44-11.936l 75.624-0.2L 319.328,311.496c-6.248-6.248-6.248-16.384,0-22.632
|
648 |
C 325.576,282.624, 335.704,282.624, 341.952,288.864z" />
|
649 |
-
|
650 |
c-4.576,2.8-10.16,4.168-16.232,4.168c-7.832,0-16.504-2.28-24.968-6.736c-8.248-4.344-33.232-18.56-45.456-25.544
|
651 |
c-10.768,7.56-36.064,26.936-75.92,66.832c-39.608,39.592-59.16,65.096-66.768,75.92c 6.968,12.216, 21.168,37.2, 25.488,45.424
|
652 |
c 8.184,15.504, 9.112,30.984, 2.472,41.424c-6.232,9.84-62.984,95.904-68.84,104c-5.512,7.64-15.408,11.768-26.144,11.768
|
@@ -663,7 +663,7 @@
|
|
663 |
c 6.248,6.248, 6.248,16.384,0,22.632c-6.248,6.24-16.376,6.24-22.624,0L 350.84,342.744L 351.28,420.16c 0.144,6.464-4.984,12.096-11.448,11.944
|
664 |
l-8.208-0.008c-6.48-0.16-11.832-4.008-11.968-10.472l-0.328-115.504c0-0.112, 0.44-0.192, 0.44-0.304l-0.64-5.856
|
665 |
C 319.064,296.712, 319.824,293.824, 321.92,291.744z" />
|
666 |
-
|
667 |
c-5.56,2.92-21.768,12.016-44.44,24.952l-17.64,10.064l-16.624-11.672c-12.36-8.704-39.232-29.408-80.144-70.312
|
668 |
c-41.088-41.080-61.728-67.856-70.384-80.168l-11.672-16.624l 10.080-17.64c 9.768-17.096, 21.472-37.752, 25-44.472
|
669 |
c 2.84-5.392, 3.064-9.080, 3.064-10.080c0-0.16,0-0.296-0.016-0.408c-7.68-12.248-57.296-86.968-66.336-100.16
|
@@ -675,7 +675,7 @@
|
|
675 |
c-4.344,8.248-18.56,33.232-25.544,45.456c 7.56,10.768, 26.936,36.064, 66.832,75.92c 39.592,39.608, 65.096,59.16, 75.92,66.768
|
676 |
c 12.216-6.968, 37.2-21.168, 45.424-25.488c 15.504-8.184, 30.984-9.112, 41.424-2.472c 9.84,6.232, 94.904,62.984, 103,68.84
|
677 |
C 507.728,359.6, 511.848,369.496, 511.848,380.224L 511.848,380.224z" />
|
678 |
-
|
679 |
c 17.592,0, 32,14.408, 32,32L 512,448.048 C 512,465.64, 497.592,480.048, 480,480.048z M 480-0.048L 32-0.048 L 32,448.048 l 448,0 L 480-0.048 z M 112,303.848l 32,0 l0-32 c0-8.832, 7.168-16, 16-16
|
680 |
s 16,7.168, 16,16l0,32 l 32,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-32,0 l0,32 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-32 l-32,0 c-8.832,0-16-7.168-16-16
|
681 |
S 103.168,303.848, 112,303.848z M 216.568,184.424c-6.248,6.248-16.376,6.248-22.624,0L 160,150.488l-33.944,33.936
|
@@ -684,7 +684,7 @@
|
|
684 |
l-33.936,33.936l 33.936,33.936C 222.816,168.040, 222.816,178.168, 216.568,184.424z M 304,303.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,335.848
|
685 |
c-8.832,0-16-7.168-16-16S 295.168,303.848, 304,303.848z M 304,143.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,175.848 c-8.832,0-16-7.168-16-16
|
686 |
S 295.168,143.848, 304,143.848z M 304,79.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,111.848 c-8.832,0-16-7.168-16-16S 295.168,79.848, 304,79.848z" />
|
687 |
-
|
688 |
c-115.488,0-209.080-69.224-209.080-155.816c0-53.936, 26.456-111.44, 81.704-139.688c0-0.328-0.096-0.576-0.096-0.936
|
689 |
c0-23.44-19.512-55.576-27.2-68.832l 0.032,0 c-0.608-1.44-0.976-3-0.976-4.672c0-6.56, 5.288-11.832, 11.848-11.832
|
690 |
c 0.968,0, 2.544,0.2, 3.112,0.2c 0.16,0, 0.216,0, 0.2-0.048c 40.832,6.672, 101.128,52.624, 110.064,63.512
|
@@ -699,12 +699,12 @@
|
|
699 |
c 7.744-9.392, 51.112-50.752, 86.408-56.504c-0.016,0.032, 0.032,0.032, 0.184,0.032c 0.472,0, 1.84-0.168, 2.672-0.168
|
700 |
c 5.672,0, 10.248,4.56, 10.248,10.232c0,1.44-0.328,2.8-0.84,4.032l 0.032,0 c-6.64,11.44-17.064,44.872-17.064,65.128
|
701 |
c0,0.312-0.096,0.528-0.096,0.816C 490.048,92.672, 512.168,128.296, 512.168,174.904z" />
|
702 |
-
|
703 |
l-0.016,0 l0-32 l 0.016,0 l0-191.408 c0-17.592, 14.408-32, 32-32l 448,0 c 17.592,0, 32,14.408, 32,32L 512.008,352.264 C 512.008,369.856, 497.6,384.264, 480.008,384.264z
|
704 |
M 191.992,415.264c0,8.832, 7.168,16, 16,16l 96.216,0 c 8.832,0, 16-7.168, 16-16l0-31 L 191.992,384.264 L 191.992,415.264 z M 32.008,352.264l 448,0 l0-112.128 L 303.824,240.136 l0,16.376
|
705 |
c0,17.64-14.36,32-32,32l-31.872,0 c-17.64,0-32-14.36-32-32l0-16.376 L 32.008,240.136 L 32.008,352.264 z M 271.848,175.936l-31.904,0 L 239.944,256.512 l 31.872,0 L 271.848,175.936z
|
706 |
M 32.008,16.736L 32.008,208.144 l 175.936,0 l0-32.2 c0-17.64, 14.36-32, 32-32l 31.872,0 c 17.64,0, 32,14.36, 32,32l0,32.2 l 176.184,0 l0-191.408 L 32.008,16.736 z" />
|
707 |
-
|
708 |
C 17.648,484.176-0.168,470.912-0.168,451.976l0-389.056 c0-16.048, 12.168-31.392, 27.656-35.704l 206.080-57.112c 5.512-1.528, 12.608-2.376, 19.968-2.376
|
709 |
c 5.048,0, 12.504,0.392, 19.36,2.264l 211.512,57.296c 15.528,4.2, 27.752,19.512, 27.752,35.624L 512.16,451.976 C 512.168,470.896, 494.352,484.208, 476.040,479.224
|
710 |
z M 240,1.528L 35.536,58.056c-1.544,0.424-3.704,3.248-3.704,4.856L 31.832,446.928 l 201.736-55.768c 1.952-0.544, 4.144-0.968, 6.432-1.328L 240,1.528 z
|
@@ -721,31 +721,31 @@
|
|
721 |
c 6.984,0, 13.408,4.608, 15.392,11.672C 210.784,221.016, 205.832,229.848, 197.312,232.256z M 197.312,136.256l-111.968,31.512
|
722 |
c-8.456,2.36-17.344-2.576-19.736-11.080s 2.56-17.328, 11.080-19.736l 111.968-31.512c 1.44-0.408, 2.904-0.592, 4.344-0.592
|
723 |
c 6.984,0, 13.408,4.608, 15.392,11.672C 210.784,125.024, 205.832,133.848, 197.312,136.256z" />
|
724 |
-
|
725 |
l-41.048,0 l-25.704,88.64c-10.080,34.904-34.032,38.672-43.856,38.672L 17.168,472.064 c-8.784,0-15.888-7.112-15.888-15.888s 7.112-15.888, 15.888-15.888l 68.528,0
|
726 |
c 2.168,0, 8.784,0, 13.296-15.592l 88.424-324.968c 1.92-6.856, 8.168-11.592, 15.296-11.592l 215.984,0 c 6.704,0, 12.688,4.2, 14.952,10.512
|
727 |
l 76.128,224.84C 511.528,328.36, 510.8,333.784, 507.832,338z M 319.768,409.536l 76.016-64.792L 243.728,344.744 L 319.768,409.536z M 407.512,119.904L 214.768,119.904
|
728 |
l-50.576,193.064l 308.048,0 L 407.512,119.904z M 376,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 398.096,55.936, 376,55.936z
|
729 |
M 232,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 254.096,55.936, 232,55.936z" />
|
730 |
-
|
731 |
c-10.080,34.904-34.032,38.672-43.856,38.672L 17.168,472.064 c-8.784,0-15.888-7.112-15.888-15.888s 7.112-15.888, 15.888-15.888l 68.528,0
|
732 |
c 2.168,0, 8.784,0, 13.296-15.592l 88.424-324.968c 1.92-6.856, 8.168-11.592, 15.296-11.592l 215.984,0 c 6.704,0, 12.688,4.2, 14.952,10.512
|
733 |
l 76.128,224.84C 511.528,328.36, 510.8,333.784, 507.832,338z M 407.512,119.904L 214.768,119.904 l-50.576,193.064l 308.048,0 L 407.512,119.904z M 376,55.936
|
734 |
c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 398.096,55.936, 376,55.936z M 232,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40
|
735 |
s 40,17.904, 40,40S 254.096,55.936, 232,55.936z" />
|
736 |
-
|
737 |
c0-17.672, 14.328-32, 32-32l 352,0 c 17.672,0, 32,14.328, 32,32L 464,368.648 C 464,386.32, 449.672,400.648, 432,400.648z M 208.592,431.336c0,8.832, 7.168,16, 16,16l 63.816,0
|
738 |
c 8.832,0, 16-7.168, 16-16l0-30.688 L 208.592,400.648 L 208.592,431.336 z M 432,0.664L 80,0.664 L 80,368.648 l 96.592,0 l0-32.92 c0,0-0.424-15.984, 15.904-15.984
|
739 |
c 18,0, 16.096,15.984, 16.096,15.984l0,32.92 l 95.816,0 l0-32.92 c0,0-1.064-16.064, 15.936-16.064c 16,0, 16.064,16.064, 16.064,16.064l0,32.92 L 432,368.648 L 432,0.664 z
|
740 |
" />
|
741 |
-
|
742 |
l0-91.832 c0-6.184-3.56-11.832-9.168-14.472c-5.544-2.656-12.216-1.84-16.984,2.112L 5.832,240.544c-3.72,3.048-5.856,7.592-5.84,12.392
|
743 |
s 2.168,9.344, 5.888,12.376L 213.36,435.592c 4.784,3.904, 11.392,4.656, 16.968,2.048c 5.576-2.656, 9.144-8.28, 9.144-14.456l0-89.816
|
744 |
c 92.984-2.952, 165.496-32.856, 212.168-87.488c 75.968-88.888, 59.016-218.080, 58.216-223.456C 508.672,14.592, 502.92,8.832, 495.032,8.832z
|
745 |
M 223.472,205.096c 0.016,0, 0.032,0, 0.032,0c 160.112-0.096, 221.296-54.16, 256.232-101.904c-5.112,38.248-20.032,84.36-52.504,122.016
|
746 |
c-43.168,50.048-112.72,76.424-203.768,76.424c-8.84,0-16,7.16-16,16l0,71.888 L 41.248,252.84l 166.216-137.952l0,74.2
|
747 |
c0,4.248, 1.688,8.328, 4.704,11.328C 215.168,203.408, 219.232,205.096, 223.472,205.096z" />
|
748 |
-
|
749 |
l 0.504-91.832c0-6.184, 3.56-11.832, 9.168-14.472c 5.544-2.656, 12.216-1.84, 16.984,2.112l 207.488,171.888
|
750 |
c 3.72,3.048, 5.856,7.592, 5.84,12.392s-2.168,9.344-5.888,12.376L 298.64,435.592c-4.784,3.904-11.392,4.656-16.968,2.048
|
751 |
c-5.576-2.656-9.144-8.28-9.144-14.456l-0.504-89.816C 179.048,330.424, 107.040,300.512, 60.36,245.888
|
@@ -753,7 +753,7 @@
|
|
753 |
C 128.392,205, 67.2,150.936, 32.264,103.184c 5.112,38.248, 20.032,84.36, 52.504,122.016c 43.168,50.048, 112.72,76.424, 203.768,76.424
|
754 |
c 8.84,0, 16,7.16, 16,16l0,71.888 l 166.216-136.672L 304.528,114.888l0,74.2 c0,4.248-1.688,8.328-4.704,11.328
|
755 |
C 296.832,203.408, 292.768,205.096, 288.528,205.096z" />
|
756 |
-
|
757 |
c 3.92,4.528, 4.872,10.768, 2.432,16.256s-7.832,8.848-13.76,8.848l-4.344,0 c-44.56,0-121.488-3.832-155.832-38.672l-6.928-6.88
|
758 |
c-36.64-37.384-43.144-98.688-23.84-145.288L 18.616,100.944c-24.896-25.24-24.896-66.16,0-91.408l 22.536-22.848
|
759 |
C 53.6-25.928, 69.92-32.24, 86.24-32.24c 16.312,0, 32.632,6.312, 45.072,18.928l 187.36,188.864c 17.72-9.576, 42-15.832, 62.392-15.832
|
@@ -764,24 +764,24 @@
|
|
764 |
c-7.712,31.192-3.216,74.304, 21.008,99.024l 6.896,6.96c 20.776,21.080, 74.728,27.312, 104.6,29.152l-58.68-67.768
|
765 |
c-5.248-6.064-4.984-15.2, 0.608-20.936L 394.72,265.28c 5.624-5.792, 14.72-6.128, 20.776-0.76l 65.304,58.816
|
766 |
C 478.856,291.656, 472.704,245.648, 452.832,225.496z" />
|
767 |
-
|
768 |
c0-43.576-35.456-79.040-79.048-79.040c-43.592,0-79.056,35.464-79.056,79.040c0,8.832, 7.16,15.992, 15.992,15.992s 15.992-7.16, 15.992-15.992
|
769 |
c0-25.952, 21.112-47.064, 47.080-47.064c 25.96,0, 47.080,21.112, 47.080,47.064L 239.776,209.216 L 15.832,209.216 c-8.832,0-15.992,7.168-15.992,15.992
|
770 |
c0,123.648, 90.456,202.056, 239.928,207.24L 239.768,463.936 c0,8.832, 7.16,15.984, 15.992,15.984c 8.84,0, 15.984-7.16, 15.984-15.984l0-31.488
|
771 |
C 421.248,427.272, 512.16,348.856, 512.16,225.208z M 479.576,241.192C 471.688,341.456, 390.128,400.752, 255.752,400.752
|
772 |
c-134.376,0-215.448-59.296-223.328-159.552L 479.576,241.2 z" />
|
773 |
-
|
774 |
c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 22.008,0 l 37.12-369.96c 1.552-17.312, 16.304-30.888, 33.568-30.888l 199.4,0 c 17.264,0, 32,13.576, 33.544,30.736
|
775 |
l 37.152,370.12l 22.008,0 c 8.84,0, 16,7.168, 16,16S 457.24,400.488, 448.4,400.488z M 208.24,444.12c0,2.616, 2.136,4.752, 4.76,4.752l 85.992,0
|
776 |
c 2.624,0, 4.768-2.136, 4.768-4.752l0-43.632 L 208.24,400.488 L 208.24,444.12 z M 357.384,1.4c-0.080-0.888-1.128-1.768-1.688-1.768L 156.296-0.368
|
777 |
c-0.56,0-1.616,0.872-1.712,1.92l-36.816,366.928l 276.456,0 L 357.384,1.4z" />
|
778 |
-
|
779 |
c-10.84,0-27.248,0-37.96-10.72L 9.44,216.304C 3.36,210.224,0,202.152,0,193.56c0-8.608, 3.344-16.688, 9.424-22.768l 193.4-193.36
|
780 |
C 208.88-28.656, 216.96-32, 225.552-32s 16.68,3.344, 22.744,9.424l 252.976,252.984C 512.12,241.232, 512.056,256.816, 511.992,271.864z
|
781 |
M 478.648,253.032L 225.44,0.064L 32.064,193.672L 284.76,446.424C 287.304,448, 296.464,448, 300.256,448l 7.2-0.024L 473.056,448
|
782 |
c 3.832,0, 6.936-3.12, 6.936-6.952l0-169.312 C 480.024,265.648, 480.056,255.464, 478.648,253.032z M 384.008,416c-35.344,0-64-28.656-64-64s 28.656-64, 64-64
|
783 |
s 64,28.656, 64,64S 419.352,416, 384.008,416z M 384.008,320c-17.672,0-32,14.328-32,32s 14.328,32, 32,32s 32-14.328, 32-32S 401.68,320, 384.008,320z" />
|
784 |
-
|
785 |
M 320,438.512c 72.112-21.496, 128.824-78.4, 150.352-150.512L 366.568,288 c-11.208,19.264-27.296,35.336-46.568,46.528L 320,438.512 z M 351.816,223.896
|
786 |
c0-52.968-42.896-95.904-95.816-95.904s-95.816,42.936-95.816,95.904S 203.088,319.808, 256,319.808S 351.816,276.864, 351.816,223.896z
|
787 |
M 224,445.536c 10.456,1.496, 21.128,2.312, 32,2.312c 10.864,0, 21.544-0.816, 32-2.312l0-97.904 c-10.24,2.648-20.928,4.2-32,4.2
|
@@ -792,7 +792,7 @@
|
|
792 |
C 234.248,97.552, 244.928,96, 256,96s 21.76,1.552, 32,4.2L 288,2.312 z M 320,9.336L 320,113.304 c 19.328,11.224, 35.448,27.368, 46.656,46.696l 103.736,0
|
793 |
C 448.896,87.832, 392.16,30.84, 320,9.336z M 379.752,192c 2.624,10.2, 4.080,20.88, 4.080,31.912c0,11.096-1.464,21.832-4.128,32.088l 97.704,0
|
794 |
c 1.504-10.496, 2.44-21.168, 2.44-32.080c0-10.848-0.92-21.488-2.416-31.92L 379.752,192 z" />
|
795 |
-
|
796 |
l 8.208,0.008c 6.472,0.152, 11.824,4, 11.96,10.464l 0.336,115.504c0,0.112-0.44,0.2-0.44,0.312l 0.632,5.856
|
797 |
c 0.064,3.248-0.696,6.144-2.792,8.216c-2.072,2.088-4.976,3.36-8.2,3.272l-5.848-0.136c-0.112,0-0.2-0.040-0.32-0.056
|
798 |
L 380.384,479.656c-6.464-0.144-11.816-5.488-11.96-11.96l-0.016-8.208c 0.984-7.624, 6.976-12.080, 13.44-11.936l 75.624-0.2L 320.328,311.040
|
@@ -810,7 +810,7 @@
|
|
810 |
C 7.472,479.432, 4.552,478.16, 2.496,476.072C 0.392,474-0.368,471.104-0.296,467.856L 0.336,462c0-0.112-0.44-0.192-0.44-0.312
|
811 |
l 0.336-115.504c 0.144-6.464, 5.488-10.312, 11.96-10.464l 8.712-0.008c 6.464-0.144, 11.592,5.48, 11.448,11.944L 31.912,424.768l 137.632-136.36
|
812 |
c 6.24-6.248, 16.376-6.248, 22.624,0c 6.248,6.248, 6.248,16.384,0,22.632L 55.024,447.336z" />
|
813 |
-
|
814 |
c-6.472,0.144-11.592-5.488-11.456-11.944l 0.448-77.624L 26.952,474.872c-6.248,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624
|
815 |
l 132.56-131.304l-75.544-0.2c-6.464,0.144-12.456-4.32-13.44-11.936l 0.016-8.208c 0.16-6.472, 5.504-11.824, 11.96-11.968l 114.752,0.504
|
816 |
c 0.128-0.008, 0.208-0.056, 0.32-0.056l 5.848-0.136c 3.224-0.088, 6.136,1.176, 8.2,3.272c 2.104,2.072, 2.856,4.976, 2.792,8.216
|
@@ -828,7 +828,7 @@
|
|
828 |
c-3.224,0.088-6.144-2.176-8.2-4.272c-2.104-2.072-2.856-4.968-2.792-8.216l 0.632-5.848c0-0.12-0.44-0.192-0.44-0.304
|
829 |
l 0.336-115.504c 0.144-6.464, 5.488-10.304, 11.96-10.464l 8.712-0.016c 6.472-0.144, 11.592,5.488, 11.448,11.952l-0.44,77.264l 133.632-131.512
|
830 |
c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.376,0,22.624L 375.032,127.552z" />
|
831 |
-
|
832 |
M 459.392,314.336l-38.768-34.768c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032c 4.688-4.472, 12.248-4.472, 16.912,0l 63.872,57.752
|
833 |
c 0.088,0.080, 0.192,0.096, 0.272,0.168l 4.232,4.048c 2.336,2.248, 3.504,5.184, 3.488,8.144c 0.016,2.936-1.152,5.888-3.488,8.112
|
834 |
l-4.232,4.048c-0.080,0.080-0.168,0.112-0.272,0.184l-64.864,59.216c-4.68,4.472-12.232,4.472-16.92,0l-2.736-4.032
|
@@ -838,19 +838,19 @@
|
|
838 |
l-38.608-34.624c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032c 4.688-4.472, 12.248-4.472, 16.912,0l 63.872,57.752
|
839 |
c 0.088,0.080, 0.192,0.096, 0.272,0.168l 4.232,4.048c 2.336,2.248, 3.504,5.184, 3.488,8.144c 0.016,2.936-1.152,5.888-3.488,8.112
|
840 |
L 502.904,53.616z" />
|
841 |
-
|
842 |
c-17.672,0-32-14.328-32-32l0-320 c0-17.672, 14.328-32, 32-32l 416,0 c 17.672,0, 32,14.328, 32,32L 482.92,255.648 l-32-30.544L 450.92,5.312 z M 135.064,133.312l 32.24,0
|
843 |
c 22.432,127.248, 133.272,224, 266.944,224c 5.608,0, 10.928-0.048, 16.312-0.088l-58.624-58.616c-6.232-6.248-6.232-16.376,0-22.624
|
844 |
c 3.128-3.128, 7.232-4.688, 11.328-4.688s 8.168,1.56, 11.296,4.688l 94.512,97L 414.56,470c-6.232,6.248-16.36,6.248-22.624,0
|
845 |
c-6.232-6.248-6.232-16.376,0-22.624l 58.088-58.080c-5.016,0.008-9.984,0.024-15.104,0.024C 283.392,389.32, 158.136,278.344, 135.064,133.312z" />
|
846 |
-
|
847 |
C 158.936,209.648, 160,216.688, 160,224c0,9.152-1.608,17.904-4.44,26.088L 367.44,352.896C 381.984,332.992, 405.448,320, 432,320
|
848 |
c 44.184,0, 80,35.824, 80,80c0,44.184-35.816,80-80,80S 352,444.184, 352,400c0-6.216, 0.784-12.232, 2.12-18.040L 139.2,277.672
|
849 |
C 124.56,293.808, 103.504,304, 80,304C 35.816,304,0,268.184,0,224c0-44.176, 35.816-80, 80-80c 25.448,0, 48.064,11.912, 62.712,30.432l 211.552-107.816
|
850 |
C 352.832,60.632, 352,54.424, 352,48c0-44.184, 35.816-80, 80-80s 80,35.816, 80,80S 476.184,128, 432,128z M 432,448c 26.504,0, 48-21.496, 48-48s-21.496-48-48-48
|
851 |
s-48,21.496-48,48S 405.496,448, 432,448z M 80,176c-26.512,0-48,21.496-48,48s 21.488,48, 48,48c 26.504,0, 48-21.496, 48-48S 106.504,176, 80,176z M 432,0
|
852 |
c-26.504,0-48,21.496-48,48s 21.496,48, 48,48s 48-21.496, 48-48S 458.504,0, 432,0z" />
|
853 |
-
|
854 |
c 8.648,4.312, 19.416,9.672, 31.056,18.624L 76.568,115.040c-9.2-7.064-17.664-10.784-25.848-14.856c-34.32-17.112-50.496-33.968-50.496-114.328
|
855 |
l 0.272-16.352l 15.728,0.352c 84.816,0, 100.664,19.16, 116.552,52.16c 3.48,7.232, 5.416,12.12, 11.28,21.864l-23.728,21.552
|
856 |
C 113.216,55.728, 108.776,46.496, 104.84,38.368z M 352.48,385.672c-35.384,0-64.176-28.792-64.176-64.168c0-35.392, 28.8-64.176, 64.176-64.176
|
@@ -867,7 +867,7 @@
|
|
867 |
c-0.616,2.608-1.888,5.032-3.696,7.032c-29.424,32.608-73.872,81.904-77.28,85.816c-2.224,2.704-5.304,4.624-8.784,5.424l-73.296,16.768
|
868 |
l 35.952,38l 91.016,0 c 5.56,0, 10.728,2.888, 13.632,7.624c 7.040,11.464, 15.208,27.768, 24.672,46.648c 16.024,31.976, 35.96,74.272, 53.56,94.816
|
869 |
c 20.792,24.264, 41.912,39.504, 68.448,49.424c 59.048,22.064, 119.984,24.384, 147.84,24.176C 480.952,419.384, 479.84,350.976, 461,300.264z" />
|
870 |
-
|
871 |
M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224.008-100.488, 224.008-224S 379.512-0.504, 256-0.504z M 232.472,79.76l 40.256,0
|
872 |
l0,40.624 l-40.256,0 L 232.472,79.76 z M 255.528,368.232c-23.44,0-42.752-6.32-57.92-18.944c-15.168-12.632-22.544-37.928-22.168-58.888l 0.592-1.168l 36.72,0
|
873 |
c0,12.504, 4.168,30.472, 12.504,36.92c 8.328,6.44, 18.424,9.664, 30.28,9.664c 13.664,0, 24.168-3.712, 31.536-11.136
|
@@ -875,11 +875,11 @@
|
|
875 |
c-13.288-11.984-21.496-21.616-24.616-28.904c-3.128-7.296-4.752-20.384-4.872-39.256l 38.48,0 c0,11.84, 0.752,20.568, 2.248,26.168
|
876 |
c 1.488,5.592, 5.752,11.912, 12.784,18.944c 15.112,14.576, 27.248,28.832, 36.44,42.776c 9.168,13.928, 13.76,29.296, 13.76,46.096
|
877 |
c0,23.44-7.088,41.704-21.288,54.784C 301.104,361.696, 281.176,368.232, 255.528,368.232z" />
|
878 |
-
|
879 |
C 161.448,0, 78.704,81.8, 78.704,195.032c0,8.832-7.168,16-16,16s-16-7.168-16-16C 46.704,64.16, 143.8-32, 274.664-32S 512,74.472, 512,205.344
|
880 |
C 512,336.2, 418.664,433.296, 287.8,433.296z M 240.128,255.872L 240.128,464 c0,8.832-7.168,16-16,16C 99.504,480,0,380.496,0,255.872c0-8.832, 7.168-16, 16-16
|
881 |
l 208.128,0 C 232.96,239.872, 240.128,247.040, 240.128,255.872z M 208.128,271.872L 32.656,271.872 C 40.384,366.12, 113.88,439.616, 208.128,447.344L 208.128,271.872 z" />
|
882 |
-
|
883 |
C 354,444.32, 46.44,136.648, 46.44,136.648c-2.008-2.016-3.472-4.536-4.224-7.296c-6.936-25.632-41.68-139.36-42.024-140.504
|
884 |
c-1.784-5.824-0.192-12.168, 4.104-16.464c 3.088-3.072, 7.2-4.72, 11.416-4.72c 1.656,0, 3.328,0.248, 4.96,0.784
|
885 |
c 1.176,0.384, 118.568,38.328, 137.888,44.096c 2.544,0.768, 4.872,2.144, 6.768,4.016c 12.208,12.064, 299.064,295.728, 318.104,315.392
|
@@ -891,7 +891,7 @@
|
|
891 |
c-5.056,13.024-13.928,29.76-29.288,45.248c-15.696,15.824-31.616,25.16-44.376,30.68c 1.088,1.080, 1.928,1.928, 2.256,2.248
|
892 |
c 1.832,1.808, 18.448,17.688, 39.16,17.688c 11.92,0, 23.624-5.44, 34.808-16.16c 13.256-12.712, 20.088-25.256, 20.312-37.296
|
893 |
C 480.264,381.856, 473.592,368.624, 460.208,354.816z" />
|
894 |
-
|
895 |
c 17.672,0, 32,14.328, 32,32L 431.672,234.184 l-32-30.544L 399.672-0.144 z M 487.112,459.28c-14.44,13.84-30.376,20.856-47.376,20.856
|
896 |
c-26.608,0-46.016-17.184-51.296-22.448c-7.488-7.392-219.584-219.176-219.584-219.176c-1.664-1.696-2.88-3.768-3.504-6.072
|
897 |
c-5.744-21.224-34.536-115.496-34.824-116.432c-1.488-4.832-0.16-10.096, 3.4-13.608c 2.552-2.56, 5.96-3.92, 9.456-3.92
|
@@ -900,7 +900,7 @@
|
|
900 |
M 465.216,379.44c-8.904-9.184-78.624-78.080-207.224-204.768l-9.84-9.704c-14.744-4.56-50.048-15.904-76.736-24.512
|
901 |
c 8.592,28.376, 18.904,62.656, 23.504,78.872C 222.4,246.768, 404.112,428.2, 411.016,435.016c 1.344,1.344, 13.608,13.128, 28.72,13.128
|
902 |
c 8.576,0, 16.84-3.912, 25.232-11.96c 10.032-9.624, 15.2-18.872, 15.344-27.512C 480.472,399.776, 475.392,389.944, 465.216,379.44z" />
|
903 |
-
|
904 |
c 0.192,1.752, 0.128,3.56-0.288,5.376c-1.368,7.456-7.864,13.112-15.712,13.112c-2.944,0-5.672-0.848-8.040-2.24L 172.968,400.048
|
905 |
c-5.384-1.336-9.376-5.36-11.016-10.336c-1.24-2.272-2-4.832-2-7.6L 159.952,95.84 c-15.232,10.192-34.704,16.328-55.936,16.328
|
906 |
c-48.768,0-88.32-32.304-88.32-72.136c0-39.84, 39.552-72.152, 88.32-72.152c 48.784,0, 88.304,32.304, 88.304,72.152
|
@@ -910,42 +910,42 @@
|
|
910 |
c 29.616,0, 51.2-16.696, 55.592-33.704l0-0.184 c0-1.616, 0.312-3.144, 0.76-4.608c 0.032-0.496, 0.112-0.984, 0.112-1.48
|
911 |
C 160.816,21.12, 137.616,0.024, 104.352,0.024z M 407.848,80.024c-32.984,0-55.976,21.088-55.976,40S 374.864,160, 407.848,160
|
912 |
c 32.976,0, 55.968-21.064, 55.968-39.976S 440.832,80.024, 407.848,80.024z" />
|
913 |
-
|
914 |
c-6.272-2.168-10.8-8.056-10.8-15.064l0-354.2 c-16.96,12.56-39.216,20.264-63.688,20.264c-53.032,0-96.056-35.888-96.056-80.144
|
915 |
c0-44.272, 43.024-80.168, 96.056-80.168c 53.056,0, 96.040,35.888, 96.040,80.168c0,1.96-0.184,3.88-0.352,5.816L 272.744,426.656 L 403.68,295.728
|
916 |
c 6.24-6.248, 16.376-6.248, 22.624,0S 432.552,312.112, 426.304,318.352z M 176.688,0.712c-37.824,0-64.176,25.272-64.176,47.936
|
917 |
s 26.36,47.912, 64.176,47.912c 37.016,0, 63-24.2, 64.064-46.496l0-2.84 C 239.68,24.936, 213.704,0.712, 176.688,0.712z" />
|
918 |
-
|
919 |
L 255.44,480 C 211.632,480, 176,442.624, 176,396.688l0-190.704 C 176,161.528, 210.152,128, 255.44,128z M 208,396.688C 208,424.984, 229.28,448, 255.44,448l 3.8,0
|
920 |
C 284.752,448, 304,425.936, 304,396.688l0-190.704 C 304,178.488, 286.016,160, 259.232,160L 255.44,160 C 227.504,160, 208,178.904, 208,205.984L 208,396.688 z M 400,304
|
921 |
c-8.84,0-16-7.168-16-16l0-66.536 C 384,126.264, 350.016,80, 280.128,80L 232.56,80 C 141.16,80, 128,156.92, 128,221.464L 128,288 c0,8.832-7.168,16-16,16
|
922 |
s-16-7.168-16-16l0-66.536 C 96,111.216, 141.944,48, 232.56,48L 240,48 l0-48 L 160,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 192,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16
|
923 |
L 272,0 l0,48 l 8.128,0 C 342.112,48, 416,78.096, 416,221.464L 416,288 C 416,296.832, 408.84,304, 400,304z" />
|
924 |
-
|
925 |
c 10.248,0, 16,13.16, 16,15.992l0,0.008 c0,2.912-5.44,16.208-16,16.208L 51.52,109.288 c-10.688,0-19.36,8.672-19.36,19.36L 32.16,377
|
926 |
c0,10.696, 8.664,19.36, 19.36,19.36l 409.136,0.504c 10.688,0, 19.36-8.664, 19.36-19.36l0-248.848 c0-10.688-8.672-19.36-19.36-19.36L 259.072,109.296
|
927 |
l 37.992,34.456c 4.672,4.472, 6.184,11.704, 1.512,16.168l-2.736,4.032c-4.688,4.472-12.248,4.472-16.92,0l-64.864-59.216
|
928 |
c-0.096-0.080-0.184-0.112-0.264-0.184l-4.24-4.048c-2.336-2.216-3.504-5.168-3.488-8.112c-0.016-2.952, 1.144-5.888, 3.488-8.144
|
929 |
l 4.24-4.048c 0.080-0.080, 0.184-0.096, 0.264-0.168l 63.864-57.752c 4.672-4.472, 12.232-4.472, 16.92,0l 2.736,4.032
|
930 |
c 4.672,4.472, 3.16,11.72-1.512,16.184l-38.568,34.584L 480,77.080 c 17.672,0, 32,14.32, 32,32l0,288 C 512,414.752, 497.672,429.080, 480,429.080z" />
|
931 |
-
|
932 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 0.168,223.672l 94.504-97c 3.128-3.128, 7.216-4.688, 11.312-4.688
|
933 |
s 8.184,1.56, 11.312,4.688c 6.248,6.248, 6.248,16.376,0,22.624L 58.416,208.168z M 479.832,480L 207.832,480 c-17.68,0-32-14.328-32-32l0-144 l 32.208,0 L 208.040,428.488
|
934 |
c0,10.688, 8.672,19.36, 19.36,19.36L 459.76,447.848 c 10.696,0, 19.36-8.672, 19.36-19.36l 0.504-409.144c0-10.688-8.664-19.36-19.36-19.36L 227.408-0.016
|
935 |
c-10.688,0-19.36,8.672-19.36,19.36L 208.048,144.528 l-32.208-0.040L 175.84,0 c0-17.672, 14.32-32, 32-32l 271.992,0 c 17.68,0, 32.008,14.328, 32.008,32L 511.84,448
|
936 |
C 511.832,465.672, 497.504,480, 479.832,480z" />
|
937 |
-
|
938 |
c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 94.504,97L 288.888,320.68c-6.248,6.248-16.376,6.248-22.624,0
|
939 |
c-6.256-6.248-6.256-16.376,0-22.624l 57.872-57.88L 15.92,240.176 c-8.84,0-16-7.168-16-16s 7.16-16, 16-16l 309.224,0 L 266.264,149.296z M 480.080,480l-288,0
|
940 |
c-17.68,0-32.008-14.328-32.008-32l0-144 l 32.216,0 L 192.288,428.488 c0,10.688, 8.672,19.36, 19.36,19.36L 460,447.848 c 10.704,0, 19.36-8.672, 19.36-19.36l 0.504-409.144
|
941 |
c0-10.688-8.656-19.36-19.36-19.36L 211.656-0.016 c-10.688,0-19.36,8.672-19.36,19.36L 192.296,144.528 l-32.216-0.040L 160.080,0 c0-17.672, 14.328-32, 32.008-32l 288,0
|
942 |
c 17.672,0, 32,14.328, 32,32L 512.088,448 C 512.080,465.672, 497.752,480, 480.080,480z" />
|
943 |
-
|
944 |
C 64,248.832, 56.832,256, 48,256z M 496,240L 160,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 336,0 c 8.832,0, 16,7.168, 16,16S 504.832,240, 496,240z M 48,128L 16,128
|
945 |
c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0 c 8.832,0, 16,7.168, 16,16l0,32 C 64,120.832, 56.832,128, 48,128z M 496,112L 160,112 c-8.832,0-16-7.168-16-16
|
946 |
s 7.168-16, 16-16l 336,0 c 8.832,0, 16,7.168, 16,16S 504.832,112, 496,112z M 48,384L 16,384 c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0 c 8.832,0, 16,7.168, 16,16
|
947 |
l0,32 C 64,376.832, 56.832,384, 48,384z M 160,336l 336,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 160,368 c-8.832,0-16-7.168-16-16S 151.168,336, 160,336z" />
|
948 |
-
|
949 |
c-4.776,0.312-9.32,2.144-12.368,5.84c-1.4,1.704-34.296,49.68-34.296,126.52c0,75.72, 23.544,110.232, 24.552,111.832
|
950 |
c 2.92,4.68, 8.048,7.52, 13.56,7.52c 54.056,0, 128.992,69, 179.368,189.448c 8.712,20.832, 10.512,34.536, 42.512,34.536
|
951 |
c 18.2,0, 38.6-13.032, 48.672-29.752c 20.664-34.16, 10.168-107.528, 0.464-146.736c 33,0.264, 92.736,0.712, 121.16,0.712
|
@@ -960,24 +960,24 @@
|
|
960 |
c-3,4.472-3.224,10.024-1.464,15.112c 15.632,45.016, 24.36,115.64, 9.864,139.768c-4.272,7.112-5.248,14.216-21.248,14.216
|
961 |
c-2.216,0-7.496-1.752-13-14.872C 193.168,305.088, 113.312,231.096, 47.904,224.424c-5.64-12.864-16.248-39.52-16.248-87.888
|
962 |
C 31.656,87.168, 47.296,48.976, 54.808,36.616z" />
|
963 |
-
|
964 |
c-6.12-6.376-5.904-16.496, 0.472-22.624c 6.376-6.112, 16.496-5.936, 22.624,0.472l 21.504,22.416l0-239.416 c0-8.84, 7.168-16, 16-16l 111.776,0
|
965 |
c 8.816,0, 15.968,7.128, 16,15.952l 0.504,159.832l 127.496,0 l0-159.784 c0-8.84, 7.16-16, 16-16l 111.736,0 c 8.84,0, 16,7.16, 16,16L 463.768,223.672 l 21.496-22.52
|
966 |
c 3.144-3.264, 7.344-4.92, 11.544-4.92c 3.984,0, 7.984,1.472, 11.080,4.472C 514.256,206.816, 514.464,216.944, 508.352,223.32z
|
967 |
M 431.768,252.592l0-252.416 l-79.736,0 L 352.032,159.952 c0,8.84-7.16,16-16,16l-159.44,0 c-8.816,0-15.968-7.128-16-15.952l-0.504-159.832l-79.832,0 L 80.256,252.592
|
968 |
c0,1.32-0.208,2.584-0.504,3.816l 176.88,184.312l 175.712-184.104C 432,255.32, 431.768,253.984, 431.768,252.592z" />
|
969 |
-
|
970 |
C 512-17.672, 497.672-32, 480-32z M 480,160L 320,160 l0-160 l 160,0 L 480,160 z M 480,256L 320,256 c-17.672,0-32,14.328-32,32L 288,448 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
971 |
C 512,270.328, 497.672,256, 480,256z M 480,448L 320,448 l0-160 l 160,0 L 480,448 z M 192-32L 32-32 c-17.672,0-32,14.328-32,32L0,160 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
972 |
C 224-17.672, 209.672-32, 192-32z M 192,160L 32,160 l0-160 l 160,0 L 192,160 z M 192,256L 32,256 c-17.672,0-32,14.328-32,32L0,448 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
973 |
C 224,270.328, 209.672,256, 192,256z M 192,448L 32,448 l0-160 l 160,0 L 192,448 z" />
|
974 |
-
|
975 |
c-10.872,0-20.704-4.368-27.904-11.408l-76.376,38.24C 206.232,287.576, 189.12,304, 168,304c-22.088,0-40-17.912-40-40c0-6.048, 1.44-11.72, 3.84-16.856
|
976 |
L 53.968,157.352C 49.6,158.984, 44.936,160, 40,160c-22.088,0-40-17.912-40-40s 17.912-40, 40-40s 40,17.912, 40,40c0,5.32-1.088,10.384-2.976,15.024
|
977 |
l 79.136,90.96C 159.928,224.816, 163.848,224, 168,224c 11.64,0, 22.024,5.056, 29.336,13l 74.704-37.456C 272.304,177.672, 290.064,160, 312,160
|
978 |
c 22.096,0, 40,17.912, 40,40c0,0.712-0.168,1.376-0.208,2.080L 455.84,291.464C 460.792,289.272, 466.232,288, 472,288c 22.096,0, 40,17.904, 40,40
|
979 |
C 512,350.088, 494.096,368, 472,368z" />
|
980 |
-
|
981 |
C 20.36,278.952-0.176,253.856-0.176,224c0-29.864, 20.536-54.952, 48.2-62.088L 48.024-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 80.024,161.928
|
982 |
c 27.64,7.152, 48.152,32.224, 48.152,62.072C 128.176,253.84, 107.664,278.92, 80.024,286.064z M 64.208,191.984C 64.152,191.984, 64.088,192, 64.024,192
|
983 |
c-0.072,0-0.136-0.016-0.208-0.024C 46.24,192.080, 31.968,206.4, 31.968,224c0,17.592, 14.28,31.92, 31.856,32.016
|
@@ -993,7 +993,7 @@
|
|
993 |
c-0.064,0-0.12,0.016-0.176,0.016c-0.072,0-0.144-0.016-0.208-0.016C 430.248,288.080, 415.968,302.4, 415.968,320
|
994 |
c0,17.592, 14.28,31.92, 31.848,32.016c 0.072,0, 0.144-0.016, 0.208-0.016c 0.064,0, 0.12,0.016, 0.176,0.016
|
995 |
c 17.568-0.12, 31.832-14.432, 31.832-32.016C 480.048,302.408, 465.784,288.096, 448.208,287.984z" />
|
996 |
-
|
997 |
c 4.784-0.312, 9.32-2.144, 12.368-5.84c 1.4-1.704, 34.296-49.68, 34.296-126.512c0-75.72-23.544-110.24-24.552-111.848
|
998 |
c-2.92-4.672-8.048-7.512-13.56-7.512c-54.056,0-128.992-69-179.376-189.456c-8.712-20.832-10.504-34.528-42.512-34.528
|
999 |
c-18.2,0-38.6,13.032-48.688,29.752c-20.656,34.16-10.168,107.528-0.456,146.736c-33-0.264-92.736-0.72-121.16-0.72
|
@@ -1008,39 +1008,39 @@
|
|
1008 |
s 3.232-10.032, 1.464-15.112c-15.624-45.016-24.352-115.64-9.856-139.768c 4.264-7.112, 5.248-14.216, 21.248-14.216
|
1009 |
c 2.216,0, 7.496,1.752, 13,14.872c 53.496,127.904, 133.352,201.904, 198.76,208.576c 5.64,12.864, 16.248,39.52, 16.248,87.896
|
1010 |
C 480.352,360.832, 464.712,399.016, 457.192,411.376z" />
|
1011 |
-
|
1012 |
L 13.856,274.4c-17.192-7.296-18.28-21.352-2.424-31.232l 197.648-61.792l 64.68-201.632c 4.64-7.592, 10.248-11.36, 15.632-11.36
|
1013 |
c 5.968,0, 11.648,4.576, 15.52,13.624L 509.048,458.872C 514.576,471.816, 511.432,479.616, 502.232,479.616L 502.232,479.616z" />
|
1014 |
-
|
1015 |
c-4.84,2.696-10.184,4.032-15.544,4.032c-5.856,0-11.736-1.616-16.888-4.824L 70.72,251.184c-7.976-4.952-13.256-13.104-14.688-22.2L 56.032,464
|
1016 |
c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-480 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 56.032,219.032 c 1.44-9.104, 6.72-17.256, 14.688-22.192L 439.080-26.48
|
1017 |
c 5.16-3.216, 11.032-4.832, 16.888-4.832c 5.36,0, 10.704,1.344, 15.544,4.032c 10.16,5.64, 16.456,16.344, 16.456,27.968L 487.472,447.304z
|
1018 |
M 87.6,224.008L 455.472,447.304l 0.504-446.608L 87.6,224.008z" />
|
1019 |
-
|
1020 |
c 5.352,0, 11.368-1.336, 16.208-4.032c 10.16-5.64, 17.12-16.352, 17.12-27.968l0-65.92 L 468.072,408.224c 5.16,3.2, 10.688,4.824, 16.56,4.824
|
1021 |
c 5.344,0, 7.864-1.336, 12.712-4.032c 10.16-5.64, 13.616-16.352, 13.616-27.968l0-314.096 c0-11.624-3.624-22.328-13.784-27.968
|
1022 |
c-4.84-2.688-8.864-4.032-14.216-4.032c-5.864,0-10.392,1.608-15.552,4.832L 318.96,132.872l0-65.92 c0-11.624-6.96-22.328-17.12-27.968
|
1023 |
c-4.84-2.688-10.52-4.032-15.88-4.032c-5.856,0-11.896,1.608-17.056,4.832L 16.176,196.832C 6.792,202.656, 1.040,212.936, 1.040,224
|
1024 |
s 5.688,21.336, 15.080,27.176L 268.752,408.224C 273.904,411.432, 279.768,413.048, 285.632,413.048L 285.632,413.048z" />
|
1025 |
-
|
1026 |
c-10.16-5.64-16.456-16.352-16.456-27.968L 39.816,0.696c0-11.624, 6.296-22.328, 16.456-27.968c 4.84-2.688, 10.184-4.032, 15.544-4.032
|
1027 |
c 5.856,0, 11.736,1.608, 16.888,4.832l 368.36,223.312c 9.408,5.832, 15.128,16.112, 15.128,27.168s-5.72,21.336-15.128,27.176L 89.2,474.488
|
1028 |
C 84.048,477.688, 78.168,479.304, 72.312,479.304L 72.312,479.304z" />
|
1029 |
-
|
1030 |
C 224.136,472.84, 216.976,480, 208.136,480z M 192.136,0L 112.032,0 L 112.032,448 l 80.104,0 L 192.136,0 z M 415.968,480L 304.44,480 c-8.84,0-16-7.16-16-16l0-480 c0-8.832, 7.16-16, 16-16
|
1031 |
l 111.528,0 c 8.84,0, 16,7.168, 16,16L 431.968,464 C 431.968,472.84, 424.816,480, 415.968,480z M 399.968,0l-79.528,0 L 320.44,448 l 79.528,0 L 399.968,0 z" />
|
1032 |
-
|
1033 |
c-5.36,0-11.368-1.336-16.216-4.032C 200,403.376, 193.040,392.664, 193.040,381.048l0-65.92 L 43.928,408.224c-5.16,3.2-10.688,4.824-16.56,4.824
|
1034 |
c-5.344,0-7.864-1.336-12.72-4.032C 4.504,403.376, 1.040,392.664, 1.040,381.048l0-314.096 c0-11.624, 3.624-22.328, 13.784-27.968
|
1035 |
c 4.84-2.688, 8.864-4.032, 14.216-4.032c 5.864,0, 10.392,1.608, 15.552,4.832L 193.040,132.872l0-65.92 c0-11.624, 6.96-22.328, 17.112-27.968
|
1036 |
c 4.848-2.688, 10.528-4.032, 15.888-4.032c 5.856,0, 11.896,1.608, 17.056,4.832l 252.728,157.048c 9.392,5.832, 15.144,16.112, 15.144,27.168
|
1037 |
s-5.688,21.336-15.080,27.176L 243.248,408.224C 238.096,411.432, 232.224,413.048, 226.368,413.048L 226.368,413.048z" />
|
1038 |
-
|
1039 |
L 73.424,474.488c-5.16,3.2-11.032,4.824-16.888,4.824c-5.36,0-10.704-1.336-15.544-4.032c-10.16-5.64-16.456-16.352-16.456-27.968
|
1040 |
L 24.032,0.696c0-11.624, 6.296-22.328, 16.456-27.968c 4.84-2.688, 10.184-4.032, 15.544-4.032c 5.856,0, 11.736,1.608, 16.888,4.832
|
1041 |
L 441.28,196.832c 7.968,4.936, 13.248,13.080, 14.688,22.176L 455.968-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 487.968,464 C 487.968,472.832, 480.808,480, 471.968,480z
|
1042 |
M 56.032,0.696L 56.528,447.304l 367.872-223.296L 56.032,0.696z" />
|
1043 |
-
|
1044 |
c0,8.84-7.16,16-16,16c-8.84,0-16-7.16-16-16l0-31.88 L 32,432.064 c-17.672,0-32-14.328-32-32l0-400 c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32l0,400
|
1045 |
C 512,417.728, 497.672,432.056, 480,432.056z M 480,0.064L 32,0.064 l0,400 l 127.888,0 l0-16.12 c0-8.84, 7.16-16, 16-16c 8.84,0, 16,7.16, 16,16L 191.888,400.056 l 128,0 l0-16.12
|
1046 |
c0-8.84, 7.16-16, 16-16s 16,7.16, 16,16L 351.888,400.056 L 480,400.056 L 480,0.064 z M 368,224.056l 32,0 c 8.832,0, 16,7.168, 16,16l0,32 c0,8.832-7.168,16-16,16l-32,0
|
@@ -1050,7 +1050,7 @@
|
|
1050 |
c 8.832,0, 16,7.168, 16,16l0,32 C 288,280.896, 280.832,288.056, 272,288.056z M 144,288.056l-32,0 c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0
|
1051 |
c 8.832,0, 16,7.168, 16,16l0,32 C 160,280.896, 152.832,288.056, 144,288.056z M 144,160.064l-32,0 c-8.832,0-16-7.168-16-16l0-32 c0-8.84, 7.168-16, 16-16l 32,0
|
1052 |
c 8.832,0, 16,7.16, 16,16l0,32 C 160,152.888, 152.832,160.064, 144,160.064z" />
|
1053 |
-
|
1054 |
l0-27.128 c0-0.696, 0.096-1.376, 0.184-2.064l-0.36,0 l0-46.312 C 176.040,0.832, 207.632-32, 256.568-32c 47.232,0, 79.472,32.832, 79.472,81.688L 336.040,96
|
1055 |
l-0.464,0 c 0.088,0.688, 0.208,1.368, 0.208,2.064l0,27.128 c0,18.88, 14.016,30.296, 35.264,48.848c 28.752,25.104, 61.512,56.344, 61.512,126.392
|
1056 |
C 432.568,399.448, 355.008,480, 255.992,480z M 255.384,0c-29.952,0-47.344,18.576-47.344,49.688l-0.232,21.336C 219.32,67.088, 235,64, 256,64
|
@@ -1058,39 +1058,39 @@
|
|
1058 |
l0-20.216 c-7.592-4.24-21.592-9.28-48.064-9.28c-27.784,0-40.96,4.928-47.512,8.736l0,20.768 c0,27.304-21.344,44.648-41.84,63.008
|
1059 |
c-27.16,24.336-54.936,51.92-54.936,112.232C 111.432,381.8, 174.632,448, 255.992,448c 81.376,0, 144.576-66.2, 144.576-147.568
|
1060 |
C 400.568,244.92, 376.336,221.144, 350.008,198.144z" />
|
1061 |
-
|
1062 |
C 152.032,312.848, 144.872,320.008, 136.032,320.008z M 120.032,0L 40,0 L 40,288.008 l 80.032,0 L 120.032,0 z M 311.872,224.872L 199.832,224.872 c-8.84,0-16-7.16-16-16L 183.832-16
|
1063 |
c0-8.84, 7.16-16, 16-16l 112.040,0 c 8.84,0, 16,7.16, 16,16L 327.872,208.872 C 327.872,217.72, 320.72,224.872, 311.872,224.872z M 295.872,0L 215.832,0 L 215.832,192.872
|
1064 |
l 80.040,0 L 295.872,0 z M 488,480L 376.136,480 c-8.84,0-16-7.16-16-16l0-480 c0-8.84, 7.16-16, 16-16L 488-32 c 8.84,0, 16,7.16, 16,16L 504,464 C 504,472.84, 496.84,480, 488,480z M 472,0
|
1065 |
l-79.864,0 L 392.136,448 L 472,448 L 472,0 z" />
|
1066 |
-
|
1067 |
C 31.504,347.512, 132.488,448, 256,448s 224-100.488, 224-224S 379.512,0, 256,0S 31.504,100.488, 31.504,224z M 272.168,111.84L 272.168,292.072 l 57.88-57.88
|
1068 |
c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.376,0,22.624L 255.672,351.32L 158.672,256.816c-3.128-3.128-4.688-7.216-4.688-11.312
|
1069 |
s 1.56-8.184, 4.688-11.312c 6.248-6.248, 16.376-6.248, 22.624,0l 58.872,58.88L 240.168,111.84 c0-8.84, 7.168-16, 16-16S 272.168,103, 272.168,111.84z" />
|
1070 |
-
|
1071 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z M 266.184,320.68
|
1072 |
c-6.248-6.248-6.248-16.376,0-22.624l 57.88-57.88L 143.84,240.176 c-8.84,0-16-7.168-16-16s 7.16-16, 16-16l 181.232,0 l-58.88-58.872
|
1073 |
c-6.248-6.248-6.248-16.376,0-22.624c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 94.504,97L 288.816,320.68
|
1074 |
C 282.56,326.928, 272.44,326.928, 266.184,320.68z" />
|
1075 |
-
|
1076 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z M 368.16,240.168L 187.928,240.168 l 57.88,57.88
|
1077 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 128.68,223.672l 94.504-97c 3.128-3.128, 7.216-4.688, 11.312-4.688
|
1078 |
s 8.184,1.56, 11.312,4.688c 6.248,6.248, 6.248,16.376,0,22.624l-58.88,58.872L 368.16,208.168 c 8.84,0, 16,7.168, 16,16S 377,240.168, 368.16,240.168z" />
|
1079 |
-
|
1080 |
c0-123.512-100.984-224-224.504-224S 32,100.488, 32,224S 132.488,448, 256,448S 480.504,347.512, 480.504,224z M 239.832,336.16l0-180.224 l-57.88,57.88
|
1081 |
c-6.248,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 97.008-94.504l 97,94.504c 3.128,3.128, 4.688,7.216, 4.688,11.312
|
1082 |
s-1.56,8.184-4.688,11.312c-6.248,6.248-16.376,6.248-22.624,0l-58.872-58.88L 271.84,336.16 c0,8.84-7.168,16-16,16S 239.832,345, 239.832,336.16z" />
|
1083 |
-
|
1084 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 32,224c0,56.136, 20.808,107.48, 55.048,146.832l 315.928-315.928
|
1085 |
C 363.608,20.464, 312.208-0.504, 256-0.504C 132.488-0.504, 32,100.488, 32,224z M 425.512,77.608L 109.704,393.416C 148.992,427.384, 200.12,448, 256,448
|
1086 |
c 123.512,0, 224-100.488, 224-224C 480,168.168, 459.424,116.984, 425.512,77.608z" />
|
1087 |
-
|
1088 |
l-17.928,2.56l-11.504-13.92c-5.288-6.392-32.272-28.56-62.056-42.832c 6.056,16.016, 10.52,33.504, 10.92,50.8l 0.16,0.952l0,2.736 l0,19.576
|
1089 |
l-17.432,8.904C 64.568,155.36, 32,202.624, 32,256C 32,344.224, 132.488,416, 256,416 M 256,448C 114.6,448,0,362.032,0,256c0-66.032, 39.128-123.576, 106.792-158.168
|
1090 |
c0-0.408-0.128-0.704-0.128-1.16c0-28.688-16.080-60.232-25.504-76.472l 0.024,0 C 80.44,18.456, 80,16.544, 80,14.496
|
1091 |
C 80,6.456, 86.48,0, 94.504,0c 1.208,0, 3.128,0.248, 3.832,0.248c 0.168,0, 0.264,0, 0.248-0.048c 50,8.168, 104.976,52.344, 115.912,65.672
|
1092 |
c 11.24-1.672, 18.832-1.92, 28.24-1.92C 246.704,63.952, 250.984,64, 256,64c 141.376,0, 256,85.952, 256,192C 512,362.032, 397.376,448, 256,448L 256,448z" />
|
1093 |
-
|
1094 |
c 6.28,0, 13.528,1.84, 18.92,5.496L 480,338.368L 480,110.16 L 370.544,169.92c-5.488,3.832-11.888,5.768-18.328,5.768
|
1095 |
c-5.064,0-10.128-1.2-14.784-3.608c-10.56-5.512-17.2-16.44-17.216-28.344l-0.080-62.92c0-0.624-0.504-1.128-1.144-1.128L 33.144,79.688
|
1096 |
C 32.504,79.688, 32,80.184, 32,80.8l 0.080,286.392c0,0.624, 0.504,1.12, 1.144,1.12L 319.064,368.312 M 495.184,384.328c-3.408,0-10.144-1.008-13.984-4.832
|
@@ -1098,27 +1098,27 @@
|
|
1098 |
c0-18.28, 14.816-33.128, 33.144-33.128l 285.856,0 c 18.328,0, 33.144,14.84, 33.144,33.128l 0.080,62.872l 131.488-76.656
|
1099 |
c 3.856-3.84, 8.128-3.344, 11.544-3.344c 3.544,0, 6.184,1.080, 6.512,1.216C 507.984,67.496, 512,73.496, 512,80.248L 512,367.736
|
1100 |
c0,6.752-4.016,12.776-10.232,15.328C 501.408,383.224, 498.752,384.328, 495.184,384.328L 495.184,384.328z" />
|
1101 |
-
|
1102 |
C 512,336, 496,368, 464,368z M 480,63.496c0-6.312-10.232-15.144-15-15.504L 44.76,47.992 C 41.056,48.296, 32,55.512, 32,64L 32,320.496
|
1103 |
C 32,330.632, 45.616,335.744, 48,336l 91.72,0 l 9.32,15.536L 178.12,400l 156.824,0 l 28.56-48.472l 8.8-15.528L 464,336 c 11.28,0, 15.84-14.736, 16-16L 480,63.496 z M 256,320
|
1104 |
c-61.856,0-112-50.144-112-112s 50.144-112, 112-112s 112,50.144, 112,112S 317.856,320, 256,320z M 256,128c-44.112,0-80,35.888-80,80s 35.888,80, 80,80
|
1105 |
s 80-35.888, 80-80S 300.112,128, 256,128z" />
|
1106 |
-
|
1107 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1108 |
S 379.512-0.504, 256-0.504z M 358.168,317.672L 207.968,166.528l-67.64,67.64c-6.248,6.248-16.376,6.248-22.632,0
|
1109 |
c-6.248-6.248-6.248-16.376,0-22.624l 79.192-79.2c 6.248-6.24, 16.376-6.24, 22.632,0c 0.72,0.72, 1.336,1.504, 1.896,2.32L 380.808,295.040
|
1110 |
c 6.24,6.248, 6.24,16.376,0,22.632C 374.552,323.92, 364.424,323.92, 358.168,317.672z" />
|
1111 |
-
|
1112 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1113 |
S 379.512-0.504, 256-0.504z M 272,230.496L 272,384 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-160 c0-4.528, 1.896-8.6, 4.928-11.504
|
1114 |
c 0.264-0.312, 0.48-0.648, 0.768-0.944l 79.192-79.2c 6.248-6.24, 16.376-6.24, 22.624,0c 6.248,6.248, 6.248,16.384,0,22.632L 272,230.496z" />
|
1115 |
-
|
1116 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1117 |
S 379.512-0.504, 256-0.504z M 346.504,314.504c-6.248,6.248-16.376,6.248-22.624,0L 256,246.624l-67.88,67.88
|
1118 |
c-6.248,6.248-16.376,6.248-22.632,0c-6.248-6.248-6.248-16.376,0-22.624L 233.368,224l-67.88-67.88c-6.248-6.24-6.248-16.384,0-22.624
|
1119 |
c 6.248-6.248, 16.376-6.248, 22.632,0L 256,201.376l 67.88-67.88c 6.248-6.248, 16.376-6.248, 22.624,0c 6.248,6.24, 6.248,16.384,0,22.624
|
1120 |
L 278.624,224l 67.88,67.88C 352.76,298.136, 352.76,308.264, 346.504,314.504z" />
|
1121 |
-
|
1122 |
c0-62.872, 49.424-115.984, 107.912-115.984l 14.224,0 c 8.832,0, 16,7.16, 16,16s-7.168,16-16,16l-14.224,0 c-41.152,0-76.416,38.456-76.416,83.984
|
1123 |
c0,40.232, 28.208,76.528, 63.592,82.608l 14.52,2.504l-1.296,14.672l-0.12,0.184c 0.008,77.936, 51.304,136.72, 130.592,136.72
|
1124 |
c 63.552,0, 99.256-31.312, 115.776-84.72l 3.416-11.016l 11.536-0.248c 59.432-1.248, 111.544-49.472, 111.544-109.392
|
@@ -1128,7 +1128,7 @@
|
|
1128 |
c-4.472-4.688-4.472-12.24,0-16.912l 57.752-63.872c 0.080-0.080, 0.096-0.184, 0.168-0.264l 4.048-4.232
|
1129 |
c 2.248-2.344, 5.184-3.504, 8.144-3.488c 2.936-0.016, 5.888,1.144, 8.112,3.488l 4.048,4.232c 0.080,0.080, 0.12,0.168, 0.184,0.264
|
1130 |
l 59.216,64.872c 4.472,4.672, 4.472,10.224,0,14.912L 323.168,92.264z" />
|
1131 |
-
|
1132 |
C 32.088,274.752,0,229.408,0,178.048c0-62.872, 49.424-115.984, 107.912-115.984l 46.224,0 c 8.832,0, 16,7.168, 16,16c0,8.84-7.168,16-16,16l-46.224,0
|
1133 |
c-41.152,0-76.416,38.456-76.416,83.984c0,40.232, 28.208,76.528, 63.592,82.608l 14.52,2.504l-1.288,14.664l-0.12,0.184
|
1134 |
c0,77.936, 51.288,136.72, 130.576,136.72c 63.552,0, 99.256-31.312, 115.768-84.72l 3.424-11.016l 11.528-0.248
|
@@ -1138,14 +1138,14 @@
|
|
1138 |
l-4.048-4.232c-0.080-0.080-0.096-0.176-0.168-0.256l-57.752-63.872c-4.472-4.672-4.472-12.232,0-16.92l 4.032-2.736
|
1139 |
c 4.472-4.672, 11.72-3.16, 16.184,1.512l 34.056,37.968l0-161.216 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 271.808,178.328 l 35.184-38.816
|
1140 |
c 4.472-4.672, 11.704-6.184, 16.168-1.512l 4.032,2.736c 4.472,4.688, 4.472,12.248,0,16.92L 267.992,222.528z" />
|
1141 |
-
|
1142 |
L 408,306.736z M 104,0L 104,448 l 128,0 l0-176 l 176,0 l0-272 L 104,0 z" />
|
1143 |
-
|
1144 |
c-0.872-0.664-1.704-1.416-2.456-2.288c-3.224-3.72-4.352-8.504-3.632-13.016C 0.128,362.664,0,361.36,0,360l0-256 c0-26.512, 29.496-56, 56-56
|
1145 |
l 416,0 c 26.512,0, 40,29.488, 40,56L 512,360 C 512,361.416, 511.816,362.656, 511.728,364z M 56,368l 416,0 c 0.096,0, 0.144,0, 0.216,0L 256,195.672L 40.656,367.296
|
1146 |
C 45.552,368.2, 51.576,368, 56,368z M 472,80L 56,80 c-8.824,0-24,15.168-24,24L 32,333.224 L 245.52,162.4c 3.008-2.6, 6.744-3.896, 10.48-3.896
|
1147 |
s 7.472,1.296, 10.488,3.896L 480,333.216L 480,104 C 480,95.168, 480.832,80, 472,80z" />
|
1148 |
-
|
1149 |
C 353.736,276.312, 310.752,319.296, 257.736,319.296z M 257.736,159.296c-35.288,0-64.736,29.408-64.736,64.696c0,35.288, 28.712,64, 64,64
|
1150 |
c 35.296,0, 64-28.712, 64-64C 321,188.704, 293.032,159.296, 257.736,159.296z M 511.84,227.712c-0.184,0.808-0.104,1.664-0.344,2.456
|
1151 |
c-0.104,0.336-0.312,0.528-0.432,0.824c-0.168,0.456-0.128,0.992-0.36,1.432C 464.168,338.976, 363.872,400.304, 256.992,400.304
|
@@ -1156,14 +1156,14 @@
|
|
1156 |
c 0.112,0.28, 0.328,0.488, 0.424,0.8c 0.248,0.784, 0.168,1.64, 0.344,2.456c 0.28,1.432, 0.544,2.832, 0.544,4.312
|
1157 |
C 512.392,224.872, 512.128,226.264, 511.84,227.712z M 256,79.704c-90.648,0-179.872,47.784-223.712,143.84
|
1158 |
c 43.424,95.736, 133.84,144.752, 224.712,144.752c 90.84,0, 179.248-49.072, 222.688-144.856C 436.28,127.736, 346.872,79.704, 256,79.704z" />
|
1159 |
-
|
1160 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 64,187.6 c 16.88,10.888, 40.168,20.736, 69.344,20.736c 101.328,0, 130.656-48, 210.656-48s 136,48, 136,48l0,272
|
1161 |
C 480,480.336, 420,432.336, 340,432.336z M 448,224.64c-18.080-11.792-56.392-32.304-104-32.304c-31.456,0-52.92,8.632-80.112,19.568
|
1162 |
c-33.136,13.32-70.704,28.432-130.544,28.432c-27.344,0-50.536-6.88-69.344-16.080L 64,417.992 c 12.048,10.96, 38.312,30.344, 73.344,30.344
|
1163 |
c 47.056,0, 73.544-11.424, 101.592-23.504c 27.936-12.040, 56.832-24.496, 101.064-24.496c 42.624,0, 80.064,11.784, 108,24.456L 448,224.64 z" />
|
1164 |
-
|
1165 |
c 17.672,0, 32,14.328, 32,32L 512,344 c0,17.672-14.328,32-32,32L 240,376 L 192,424L 192,424z" />
|
1166 |
-
|
1167 |
c 30.704,0, 54.904-10.504, 78.504-34.048c 22.232-22.184, 34.496-51.68, 34.496-83.056c 0.016-31.392-12.224-60.912-34.704-83.336
|
1168 |
c-1.832-1.856-98.496-106.152-179.48-193.552c-3.816-3.624-8.176-4.16-10.496-4.16c-2.288,0-6.6,0.512-10.4,4.048
|
1169 |
c-19.736,21.952-162.776,181-179.408,197.616C 44.248,248.792, 32,278.312, 32,309.696c 0.008,31.376, 12.256,60.864, 34.52,83.072
|
@@ -1171,17 +1171,17 @@
|
|
1171 |
c 16.712-16.72, 178.928-197.168, 178.928-197.168c 9.24-9.248, 21.376-13.84, 33.48-13.84c 12.112,0, 24.2,4.592, 33.456,13.84
|
1172 |
c0,0, 177.44,191.512, 179.328,193.424c 58.52,58.44, 58.52,153.12,0,211.504c-29.056,29-61.512,43.392-101.104,43.392
|
1173 |
c-37.824,0-80-30.16-111.504-62.16C 223.992,424.92, 183.12,454.92, 143.992,454.92L 143.992,454.92z" />
|
1174 |
-
|
1175 |
s 7.168-16, 16-16l 16,0 l0-128 l-16,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16S 296.832,112, 288,112z M 256,304c 17.672,0, 32,14.328, 32,32
|
1176 |
s-14.328,32-32,32s-32-14.328-32-32S 238.328,304, 256,304z M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256
|
1177 |
C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z" />
|
1178 |
-
|
1179 |
c-4.416,0.272-8.92-1.216-12.296-4.592L 44.832,75.48c-6.24-6.248-6.24-16.384,0-22.624c 0.12-0.12, 0.256-0.192, 0.384-0.312
|
1180 |
c 0.040-0.040, 0.064-0.088, 0.104-0.128l 78.456-79.952c 6.24-6.248, 16.376-6.248, 22.624,0s 6.248,16.384,0,22.624l-67.736,69.032l 41.248,41.504
|
1181 |
l 67.864-69.16c 6.24-6.248, 16.376-6.248, 22.624,0s 6.24,16.384,0,22.624l-67.928,69.224l 86.192,86.736c 3.336,3.336, 4.832,7.768, 4.608,12.136
|
1182 |
c 25.312-22.144, 58.336-35.656, 94.584-35.656c 79.528,0, 144,64.576, 144,144.24C 471.848,415.424, 407.384,480, 327.848,480z M 327.848,224
|
1183 |
c-61.624,0-112,50.136-112,112c0,61.872, 50.376,112, 112,112s 112-50.128, 112-112C 439.848,274.136, 389.48,224, 327.848,224z" />
|
1184 |
-
|
1185 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 147.832,136.4C 141.576,130.152, 141.576,120.024, 147.832,113.776z M 237.936,147.848
|
1186 |
c 5.288-23.312-0.416-46.2-18.432-64.216l-64.624-62.624c-13.6-13.592-31.68-21.080-50.912-21.080s-37.312,7.488-50.904,21.080
|
1187 |
c-28.072,28.080-28.072,73.768-0.168,101.672l 63.128,65.128c 13.6,13.592, 31.68,21.088, 50.912,21.088c 6.576,0, 12.912-1.176, 19.088-2.872
|
@@ -1193,34 +1193,34 @@
|
|
1193 |
c 28.064-28.080, 28.064-73.768, 0.16-101.672l-64.624-64.624c-13.592-13.592-31.688-21.080-50.904-21.080c-4.904,0-9.216-0.496-13.92,0.464
|
1194 |
l-25.488-25.504c 12.736-5.296, 25.816-6.968, 39.408-6.968c 26.608,0, 53.216,10.152, 73.528,30.464l 64.472,64.472
|
1195 |
C 522.176,343.144, 522.176,408.984, 481.568,449.608z" />
|
1196 |
-
|
1197 |
c-35.296,0-64-28.704-64-64l0-192 c0-35.296, 28.704-64, 64-64l 288,0 c 35.296,0, 64,28.704, 64,64L 464,224 C 464,259.296, 435.296,288, 400,288z M 160,349.064
|
1198 |
C 160,403.608, 197.28,448, 255.408,448C 312.936,448, 352,404.544, 352,349.064L 352,288 L 160,288 L 160,349.064 z M 432,32c0-17.64-14.36-32-32-32L 112,0 c-17.64,0-32,14.36-32,32L 80,224
|
1199 |
c0,17.64, 14.36,32, 32,32l 288,0 c 17.64,0, 32-14.36, 32-32L 432,32 z M 256,192c-17.672,0-32-14.328-32-32c0-11.816, 6.48-22.016, 16-27.56L 240,80 c0-8.832, 7.168-16, 16-16
|
1200 |
s 16,7.168, 16,16l0,52.44 c 9.52,5.544, 16,15.752, 16,27.56C 288,177.672, 273.672,192, 256,192z" />
|
1201 |
-
|
1202 |
c-14.12,52.688, 10.408,105.216, 66.544,120.256c 55.568,14.888, 104.544-16.968, 118.912-70.56l 6.8-26.984c 2.288-8.536, 11.056-13.6, 19.6-11.312
|
1203 |
c 8.536,2.288, 13.6,11.056, 11.312,19.592l-6.808,26.984C 360.608,453.48, 294.408,495.28, 221.504,475.752C 148.32,456.144, 113.648,386.040, 132.336,316.296
|
1204 |
l 6.432-28.848L 112,287.448 c-35.296,0-64-28.704-64-64l0-192 c0-35.296, 28.704-64, 64-64l 288,0 c 35.296,0, 64,28.704, 64,64l0,192 C 464,258.744, 435.296,287.448, 400,287.448z
|
1205 |
M 432,31.448c0-17.64-14.36-32-32-32L 112-0.552 c-17.64,0-32,14.36-32,32l0,192 c0,17.64, 14.36,32, 32,32l 288,0 c 17.64,0, 32-14.36, 32-32L 432,31.448 z M 256,191.448
|
1206 |
c-17.672,0-32-14.328-32-32c0-11.816, 6.48-22.016, 16-27.56l0-52.44 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,52.44 c 9.52,5.544, 16,15.752, 16,27.56
|
1207 |
C 288,177.12, 273.672,191.448, 256,191.448z" />
|
1208 |
-
|
1209 |
c0,110.456-89.544,200-200,200c-110.456,0-200-89.544-200-200c0-110.456, 89.544-200, 200-200c 50.184,0, 96.024,18.528, 131.144,49.072l 155.248-156.224
|
1210 |
c 6.248-6.248, 16.384-6.248, 22.632,0C 513.56-20.904, 513.56-10.776, 507.32-4.52z M 198.296,111.736
|
1211 |
C 105.368,111.736, 30.032,187.072, 30.032,280S 105.368,448.264, 198.296,448.264S 366.56,372.928, 366.56,280S 291.224,111.736, 198.296,111.736z" />
|
1212 |
-
|
1213 |
C 414.344,386.752, 321.592,480, 206.568,480S-1.704,386.752-1.704,271.728c0-115.024, 93.248-208.272, 208.272-208.272
|
1214 |
c 52.504,0, 100.336,19.48, 136.848,51.536l 141.264-142.152c 6.248-6.248, 16.384-6.248, 22.624,0C 513.56-20.904, 513.56-10.776, 507.312-4.52z
|
1215 |
M 206.296,96c-96.776,0-176,79.224-176,176s 79.224,176, 176,176s 176-79.224, 176-176S 303.072,96, 206.296,96z M 286.296,288l-64,0 l0,64 c0,8.832-7.168,16-16,16
|
1216 |
s-16-7.168-16-16l0-64 l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0 l0-64 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,64 l 64,0 c 8.832,0, 16,7.168, 16,16
|
1217 |
S 295.136,288, 286.296,288z" />
|
1218 |
-
|
1219 |
C 414.344,386.752, 321.592,480, 206.568,480S-1.704,386.752-1.704,271.728c0-115.024, 93.248-208.272, 208.272-208.272
|
1220 |
c 52.504,0, 100.336,19.48, 136.848,51.536l 141.264-142.152c 6.248-6.248, 16.384-6.248, 22.624,0C 513.56-20.904, 513.56-10.776, 507.312-4.52z
|
1221 |
M 206.296,96c-96.776,0-176,79.224-176,176s 79.224,176, 176,176s 176-79.224, 176-176S 303.072,96, 206.296,96z M 286.296,288l-160,0 c-8.832,0-16-7.168-16-16
|
1222 |
s 7.168-16, 16-16l 160,0 c 8.832,0, 16,7.168, 16,16S 295.136,288, 286.296,288z" />
|
1223 |
-
|
1224 |
c 44.8,44.872, 113.424,40.84, 163.504-9.304c 22.44-22.48, 35.032-54.888, 34.56-88.952c-0.472-33.704-13.64-65.96-36.144-88.504L 259.248,22.872
|
1225 |
c-6.040-6.472-16.168-6.768-22.616-0.696c-6.432,6.080-6.744,16.224-0.68,22.672l 217.336,231.376c 17,17.032, 26.752,41.192, 27.112,66.624
|
1226 |
c 0.36,25.448-8.832,49.44-25.184,65.832c-30.72,30.784-80.736,46.904-117.92,9.632L 50.168,113.4c-24.688-24.752-24.68-64.504-0.32-88.928
|
@@ -1229,29 +1229,29 @@
|
|
1229 |
c-6.44,6.064-6.736,16.224-0.68,22.656l 172.272,183.232c 13.544,13.608, 27.392,20.984, 41.488,22.248c 11,0.976, 27.36-1.368, 44.048-18.104
|
1230 |
c 24.768-24.816, 21.688-61.216-7.64-90.608L 153.592,6.64c-18.24-18.304-40.264-28.936-62.36-30.296
|
1231 |
C 89.608-23.768, 87.984-23.816, 86.36-23.816z" />
|
1232 |
-
|
1233 |
c 15.856-9.872, 36.824-31.040, 46.592-47.024l 80.856-132.384c 4.64-7.592, 10.248-11.36, 15.64-11.36c 5.96,0, 11.64,4.576, 15.512,13.616
|
1234 |
L 508.832,459.256C 514.36,472.192, 511.208,480, 502.016,480z M 162.776,188.040L 53.448,256.144L 420.256,411.768L 184.16,171.672
|
1235 |
C 176.944,178.072, 169.616,183.784, 162.776,188.040z M 286.36,22.368l-65.216,106.76c-3.848,6.304-8.928,13.024-14.592,19.696l 237.192,241.192
|
1236 |
L 286.36,22.368z" />
|
1237 |
-
|
1238 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1239 |
S 379.512-0.504, 256-0.504z M 368,240L 272,240 L 272,336 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-96 L 144,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 96,0 l0-96
|
1240 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 272,208 l 96,0 c 8.832,0, 16,7.168, 16,16S 376.832,240, 368,240z" />
|
1241 |
-
|
1242 |
l 1.224,0 c 13.8,0, 24.92,12.44, 25.2,12.76c 65.032,74.76, 160,198.024, 160,303.968C 448,390.8, 378.672,480.184, 257.832,480.184z M 264.248,2.408
|
1243 |
c-0.56-0.56-1.376-1.184-2.096-1.704c-0.736,0.504-1.536,1.144-2.128,1.704l-8.368,9.624C 185.96,87.4, 96,190.608, 96,284.912
|
1244 |
c0,88.504, 74.112,163.28, 161.832,163.28C 367.096,448.192, 416,366.192, 416,284.912C 416,213.32, 364.936,118.264, 264.248,2.408z M 256.56,383.296
|
1245 |
c-53.016,0-96-42.984-96-96s 42.984-96, 96-96s 96,42.984, 96,96S 309.576,383.296, 256.56,383.296z M 256.56,223.296
|
1246 |
c-35.288,0-64.736,29.408-64.736,64.704c0,35.288, 28.712,64, 64,64c 35.312,0, 64-28.712, 64-64C 319.84,252.704, 291.872,223.296, 256.56,223.296z" />
|
1247 |
-
|
1248 |
c 81.168-38, 125.248-125.976, 107.176-213.936c-21.456-104.44-123.832-171.904-228.28-150.512c-50.584,10.392-92.104,39.856-120.528,82.968
|
1249 |
c-28.432,43.128-38.368,94.752-27.976,145.336c 12.352,60.112, 51.312,109.664, 106.88,135.952c 7.984,3.776, 11.4,13.312, 7.616,21.304
|
1250 |
c-3.776,7.976-13.296,11.368-21.296,7.616C 96.056,367.064, 50.664,309.328, 36.264,239.264c-12.112-58.968-0.536-119.128, 32.592-169.392
|
1251 |
c 33.136-50.24, 81.848-84.584, 140.816-96.704c 15.216-3.128, 30.408-4.624, 45.376-4.624c 104.728,0, 198.824,73.56, 220.688,180.056
|
1252 |
C 496.792,251.104, 445.408,353.648, 350.776,397.952z M 256.008,272c 8.832,0, 16,7.168, 16,16L 272.008,464 c0,8.832-7.168,16-16,16c-8.832,0-16-7.168-16-16l0-176
|
1253 |
C 240.008,279.168, 247.176,272, 256.008,272z" />
|
1254 |
-
|
1255 |
c-3.264,5.36-10.344,7.264-15.864,4.256l-4.096-2.52c-5.504-3-5.384-10.768-2.128-16.128l 29.464-45.704
|
1256 |
c-2.512,0.552-5.048,1-7.528,1.648c-51.592,13.496-95.248,48.416-119.768,95.8c-23.168,44.76-27.52,95.848-12.256,143.872
|
1257 |
c 15.256,48.024, 49.888,87.232, 94.648,110.392c 7.624,3.944, 10.6,13.32, 6.656,20.928c-3.936,7.632-13.32,10.616-20.928,6.664
|
@@ -1266,7 +1266,7 @@
|
|
1266 |
c 6.504-1, 12.984-2.208, 19.312-3.88c 51.616-13.52, 93.696-48.432, 118.2-95.784c 23.16-44.76, 27.512-95.848, 12.24-143.864
|
1267 |
c-15.256-48.024-48.328-87.224-93.088-110.408c-7.616-3.944-10.584-13.304-6.64-20.936c 2.76-5.32, 8.168-8.384, 13.8-8.384
|
1268 |
c 2.4,0, 4.832,0.56, 7.136,1.744c 52.136,26.968, 90.624,72.64, 108.408,128.56C 489.008,207.968, 483.936,267.48, 456.952,319.592z" />
|
1269 |
-
|
1270 |
c0-120.224, 92.648-220.768, 211.784-231.048l-45.928-23.28c-5.672-3.112-9.048-10.112-5.688-15.64l 1.624-4.2
|
1271 |
c 3.376-5.528, 10.688-7.488, 16.344-4.392l 76.656,39.248c 0.096,0.064, 0.2,0.048, 0.296,0.112l 5.144,2.816
|
1272 |
c 2.84,1.56, 4.72,4.112, 5.472,6.952c 0.784,2.84, 0.424,6-1.264,8.752l-3.048,5c-0.048,0.096-0.144,0.16-0.2,0.248
|
@@ -1274,7 +1274,7 @@
|
|
1274 |
c-0.152,0.008-0.288,0.064-0.432,0.072C 137.64,55.376, 55.68,143.032, 55.68,248.032C 55.68,358.296, 145.384,448, 255.64,448
|
1275 |
c 110.272,0, 200.48-89.704, 200.48-199.968c0-63.488-29.16-121.8-80-159.984c-7.064-5.312-8.488-15.344-3.184-22.408
|
1276 |
c 5.312-7.080, 15.344-8.488, 22.408-3.184c 58.968,44.296, 92.784,111.936, 92.784,185.576C 488.12,375.936, 383.552,480, 255.64,480z" />
|
1277 |
-
|
1278 |
c-12.488,12.496-33.576,10.248-46.312,1.416l-36.016-22.944c-9.344,4.848-19.112,9-29.264,12.28l-9.216,41.56
|
1279 |
C 303,463.496, 289.672,480, 272,480l-32,0 c-17.672,0-28.504-16.752-32-32l-10.264-41.064c-10.84-3.456-21.248-7.872-31.168-13.104l-36.92,23.512
|
1280 |
c-12.728,8.832-33.824,11.080-46.312-1.416l-22.632-22.624c-12.496-12.504-8.304-32,0-45.256l 23.376-38.96
|
@@ -1298,7 +1298,7 @@
|
|
1298 |
c 3.576-0.664, 6.36-2.728, 6.952-3.848L 480.016,208.976z M 256.216,320.16c-53.136,0-96.368-43.144-96.368-96.16
|
1299 |
c0-53.008, 43.232-96.152, 96.368-96.152c 53.136,0, 96.368,43.144, 96.368,96.152C 352.584,277.016, 309.352,320.16, 256.216,320.16z M 256,160
|
1300 |
c-35.288,0-64,28.712-64,64c0,35.296, 28.712,64, 64,64c 35.296,0, 64-28.704, 64-64C 320,188.712, 291.288,160, 256,160z" />
|
1301 |
-
|
1302 |
l-117.136,63l-21.168,11.392l-21.168-11.392L 117.68,4.792l 22.648,135.112l 3.792,22.656l-16.28,16.248L 30.952,275.496l 132.912,19.744
|
1303 |
l 23.384,3.488l 10.272,21.272L 256,441.256 M 255.992,472.224c-14.328,0-27.392-8.088-33.488-20.728l-57.952-120.32L 31.2,311.344
|
1304 |
c-13.696-2.048-25.072-11.4-29.488-24.192c-4.408-12.832-1.072-26.952, 8.6-36.576l 97.704-97.6l-22.664-135.328
|
@@ -1306,13 +1306,13 @@
|
|
1306 |
l 116.256-62.592c 5.592-2.992, 11.752-4.488, 17.888-4.488c 7.48,0, 14.952,2.208, 21.328,6.576c 11.552,7.976, 17.456,21.648, 15.16,35.288
|
1307 |
l-22.672,135.328l 97.752,97.6c 9.672,9.624, 12.984,23.752, 8.576,36.576c-4.424,12.808-15.8,22.16-29.488,24.192l-133.328,19.832l-57.984,120.32
|
1308 |
C 283.424,464.152, 270.352,472.224, 255.992,472.224L 255.992,472.224z" />
|
1309 |
-
|
1310 |
l-63.656-64.048l-67.632,68.272c-6.24,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 67.696-68.344l-68.176-68.592
|
1311 |
c-6.248-6.248-6.248-16.392,0-22.624c 6.24-6.248, 16.376-6.248, 22.624,0l 68.072,68.496l 68.232-68.88c 6.248-6.248, 16.376-6.248, 22.624,0
|
1312 |
s 6.248,16.376,0,22.624l-68.304,68.952l 63.704,64.096c 34.976-29.984, 80.384-48.144, 130.064-48.144c 110.456,0, 200,89.544, 200,200
|
1313 |
C 511.848,390.576, 422.304,480.112, 311.848,480.112z M 311.848,111.84c-92.928,0-168.264,75.344-168.264,168.272
|
1314 |
c0,92.928, 75.336,168.264, 168.264,168.264s 168.264-75.336, 168.264-168.264C 480.12,187.184, 404.784,111.84, 311.848,111.84z" />
|
1315 |
-
|
1316 |
c-2.072,2.088-4.976,3.36-8.2,3.264l-5.848-0.136c-0.112,0-0.192-0.040-0.32-0.056L 347.736,480.472
|
1317 |
c-6.464-0.144-11.808-5.496-11.96-11.96L 335.76,460.296c 0.984-7.624, 6.976-12.080, 13.44-11.936l 107.608-0.216L 328.736,320.848
|
1318 |
c-34.744,29.12-79.504,46.68-128.384,46.68c-110.464,0-200-89.536-200-200c0-110.456, 89.536-200, 200-200c 110.456,0, 200,89.544, 200,200
|
@@ -1320,13 +1320,13 @@
|
|
1320 |
c 6.48,0.152, 11.824,4, 11.96,10.464l 0.336,147.504c0,0.12-0.44,0.2-0.44,0.312L 511.648,468.672z M 368.616,167.528
|
1321 |
c0-92.928-75.336-168.264-168.272-168.264c-92.928,0-168.264,75.336-168.264,168.264s 75.336,168.264, 168.264,168.264
|
1322 |
C 293.28,335.8, 368.616,260.464, 368.616,167.528z" />
|
1323 |
-
|
1324 |
s-16-7.168-16-16l0-48.768 C 146.752,407.52, 72.416,333.264, 64.712,240L 16,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 48.712,0
|
1325 |
C 72.416,114.744, 146.752,40.48, 240,32.768L 240-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,48.768 C 365.256,40.48, 439.584,114.744, 447.28,208L 496,208
|
1326 |
c 8.832,0, 16,7.168, 16,16S 504.832,240, 496,240z M 240,383.208L 240,240 L 96.776,240 C 104.28,315.6, 164.4,375.704, 240,383.208z M 96.776,208L 240,208 l0-143.208
|
1327 |
C 164.4,72.296, 104.28,132.4, 96.776,208z M 272,64.792L 272,208 l 143.224,0 C 407.72,132.4, 347.6,72.296, 272,64.792z M 272,240L 272,383.208
|
1328 |
C 347.6,375.704, 407.72,315.6, 415.224,240L 272,240 z" />
|
1329 |
-
|
1330 |
l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376c 2.688-1.816, 5.816-2.736, 8.952-2.736
|
1331 |
c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 335.872,432.92 C 335.864,438.832, 332.6,444.264, 327.384,447.048z
|
1332 |
M 303.864,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032c-10.272,0-17.44,5.856-17.44,11.232L 79.632,277.024
|
@@ -1334,7 +1334,7 @@
|
|
1334 |
c-8.856,1.464-16.968-4.432-18.424-13.152c-1.456-8.712, 4.44-16.96, 13.144-18.416c 25.16-4.2, 42.736-26.152, 42.736-53.376
|
1335 |
c0-25.92-18.184-48.344-43.248-53.344c-8.672-1.72-14.296-10.144-12.56-18.816c 1.512-7.608, 8.184-12.872, 15.672-12.872
|
1336 |
c 1.032,0, 2.096,0.096, 3.144,0.312c 39.984,7.952, 69,43.592, 69,84.72C 464.368,263.752, 435.152,299.472, 394.912,306.184z" />
|
1337 |
-
|
1338 |
l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376c 2.688-1.816, 5.816-2.736, 8.952-2.736
|
1339 |
c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 295.736,432.92 C 295.736,438.832, 292.472,444.264, 287.248,447.048z
|
1340 |
M 263.736,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032c-10.272,0-17.44,5.856-17.44,11.232L 39.504,277.024
|
@@ -1346,7 +1346,7 @@
|
|
1346 |
c 48.264-18.008, 80.688-64.952, 80.688-116.816c0-51.888-32.424-98.92-80.656-117c-8.28-3.112-12.472-12.328-9.376-20.592
|
1347 |
c 2.408-6.44, 8.504-10.392, 14.984-10.392c 1.872,0, 3.768,0.328, 5.608,1.016c 60.672,22.752, 101.44,81.816, 101.44,146.968
|
1348 |
C 504.504,286.4, 463.704,345.392, 403,368.048z" />
|
1349 |
-
|
1350 |
c-27.256,0-49.44-19.328-49.44-43.2l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376
|
1351 |
c 2.688-1.816, 5.816-2.736, 8.952-2.736c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 296.248,432.92
|
1352 |
C 296.248,438.832, 292.984,444.264, 287.768,447.048z M 264.248,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032
|
@@ -1354,7 +1354,7 @@
|
|
1354 |
l 139.664,112L 264.248,45.184 z M 447,223.744l 52.296,52.92c 6.248,6.248, 6.248,16.376,0,22.624c-6.232,6.248-16.376,6.248-22.624,0l-52.168-52.784
|
1355 |
l-52.168,52.784c-6.232,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 52.296-52.92l-51.8-52.408c-6.232-6.24-6.248-16.376,0-22.624
|
1356 |
s 16.392-6.248, 22.64,0l 51.656,52.272l 51.656-52.272c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.384,0,22.624L 447,223.744z" />
|
1357 |
-
|
1358 |
c-59.688,0-120.704-49.832-120.704-94.56l0-67.56 c0-29.512, 12.488-89.216, 50.312-119.544L 27,62.36c0,0-27-12.032-27-27.032l0-40.544
|
1359 |
c0-14.92, 12.112-27.032, 27-27.032l 346,0 c 14.904,0, 27.016,12.112, 27.016,27.032l0,40.544 C 400.016,51.232, 373,62.36, 373,62.36z
|
1360 |
M 368.016-0.248L 32-0.248 l0,28.608 c 2.296,1.672, 5.504,3.608, 8.032,4.768c 0.752,0.344, 1.504,0.704, 2.216,1.112l 103.344,56.048
|
@@ -1367,7 +1367,7 @@
|
|
1367 |
c-8.456-6.656-13-17.112-12.112-27.832c 0.904-10.72, 7.128-20.264, 16.56-25.424l 102.232-55.8c 0.888-0.488, 2.016-1.016, 2.952-1.424
|
1368 |
c 2.36-1, 5.264-2.672, 7.392-4.144l0-28.456 l-64.592,0 c 9.752-7.36, 12.704-17.888, 16.488-32l 53.096,0 c 14.904,0, 27.016,12.112, 27.016,27.032l0,40.048
|
1369 |
C 512,130.904, 484.984,142.032, 484.984,142.032z" />
|
1370 |
-
|
1371 |
</font>
|
1372 |
</defs>
|
1373 |
</svg>
|
9 |
</metadata>
|
10 |
<defs>
|
11 |
<font id="Simple-Line-Icons" horiz-adv-x="512" >
|
12 |
+
<font-face units-per-em="512" ascent="480" descent="-32" />
|
13 |
+
<missing-glyph horiz-adv-x="512" />
|
14 |
+
<glyph class="hidden" unicode="" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
|
15 |
+
<glyph unicode="" d="M 480.016,78.656l-139.248,66.032c 18.576,9.312, 91.128,12.264, 97.128,28.64c0,0-28.672,44.008-35.672,101.168
|
16 |
c-2.72,22.184-7.376,51.296-12,92.296C 382.72,433.296, 326.784,480, 256.128,480C 256.088,480, 256.040,480, 256,480c-0.048,0-0.096,0-0.128,0
|
17 |
C 185.216,480, 129.28,433.296, 121.784,366.8c-4.624-41-9.28-70.112-12-92.296c-7-57.168-35.672-101.168-35.672-101.168
|
18 |
c 6-16.376, 78.544-19.328, 97.128-28.64L 31.984,78.656c0,0-31.984-11.232-31.984-37.736l0-42.264 C0-19.032, 14.312-32, 31.984-32l 448.032,0
|
24 |
c 1.408-10.088, 2.672-19.2, 3.656-27.296c 3.984-32.512, 14.112-61.256, 23.264-81.816c-7.064-1.408-14.344-2.72-19.672-3.656
|
25 |
c-22.456-3.888-36.784-6.576-47.624-12.016c-10.936-5.488-17.784-16.736-17.656-28.968c 0.144-12.232, 7.232-23.344, 18.296-28.576l 139.248-66.032
|
26 |
c 1-0.488, 1.656-0.784, 2.72-1.16c 4.92-1.872, 10.248-5.968, 10.968-7.672L 480.016,0L 32,0 z" />
|
27 |
+
<glyph unicode="" d="M 32.032,32.656c0,12.72, 9.544,16.704, 13.36,18.472l 140.52,66.312
|
28 |
c 10.072,4.624, 17.024,14.16, 18.376,25.16c 1.36,11-3.080,21.92-11.728,28.856c-33.24,26.688-48.728,85.344-48.728,116.592L 143.832,368
|
29 |
c0,33.432, 58.2,79.928, 112.064,79.928c 54.336,0, 111.96-45.768, 111.96-79.928l0-79.96 c0-30.776-12.8-89.656-47.128-116.68
|
30 |
c-8.752-6.888-13.296-17.84-11.984-28.904c 1.312-11.080, 8.296-20.656, 18.424-25.312l 47.96-22.752l 7.904,31.936l-42.504,19.888
|
32 |
c0-34.936, 15.944-105.624, 60.696-141.544L 32.008,80.184c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 351.96,0 l0,32
|
33 |
L 32.032,0.184L 32.032,32.656 z M 495.968,64.064l-48,0 l0,48 c0,8.84-7.168,16-16,16s-16-7.16-16-16l0-48 l-48,0 c-8.832,0-16-7.16-16-16c0-8.832, 7.168-16, 16-16l 48,0 l0-48
|
34 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,48 l 48,0 c 8.832,0, 16,7.168, 16,16C 511.968,56.904, 504.808,64.064, 495.968,64.064z" />
|
35 |
+
<glyph unicode="" d="M 31.752,0.12l0,32.472 c0,12.72, 9.552,16.712, 13.36,18.472l 140.52,66.312
|
36 |
c 10.072,4.624, 17.024,14.16, 18.376,25.16c 1.36,11-3.080,21.92-11.728,28.856c-33.24,26.688-48.728,85.352-48.728,116.592l0,79.96
|
37 |
c0,33.432, 58.2,79.928, 112.064,79.928c 54.336,0, 111.968-45.768, 111.968-79.928l0-79.96 c0-30.776-12.8-89.656-47.128-116.688
|
38 |
c-8.752-6.888-13.296-17.84-11.984-28.904c 1.312-11.080, 8.296-20.656, 18.424-25.312l 81.12-38.624l 19.072,27.032l-86.832,40.672
|
41 |
l-26,31.992L 31.752,0.12z M 506.104,118.248c-6.952,5.456-17.016,4.216-22.456-2.736l-68.424-104.352l-42.528,42.536
|
42 |
c-6.248,6.248-16.384,6.248-22.632,0s-6.248-16.376,0-22.624l 56.568-56.568c 6.248-6.248, 16.376-6.248, 22.624,0
|
43 |
c 1.52,1.512, 2.656,3.272, 3.44,5.144l 76.152,116.152C 514.288,102.752, 513.064,112.808, 506.104,118.248z" />
|
44 |
+
<glyph unicode="" d="M 399.56,288.072l0,79.96 c0,52.96-73.304,111.928-143.952,111.928c-70.656,0-144.064-58.968-144.064-111.928l0-79.96
|
45 |
c0-34.936, 15.944-105.616, 60.696-141.536L 31.72,80.216c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 303.968,0 l0,32
|
46 |
L 31.744,0.216l0,32.472 c0,12.72, 9.552,16.712, 13.36,18.472l 140.52,66.312c 10.072,4.624, 17.024,14.168, 18.376,25.168
|
47 |
c 1.36,11-3.080,21.912-11.728,28.848c-33.24,26.688-48.728,85.344-48.728,116.6l0,79.96 c0,33.432, 58.2,79.928, 112.064,79.928
|
51 |
c-6.248,6.24-16.384,6.24-22.624,0c-6.248-6.248-6.248-16.392,0-22.624l 45.248-45.256l-45.248-45.248c-6.248-6.24-6.248-16.384,0-22.632
|
52 |
c 6.24-6.232, 16.376-6.232, 22.624,0l 45.248,45.256l 45.256-45.256c 6.24-6.232, 16.376-6.232, 22.616,0c 6.248,6.248, 6.248,16.392,0,22.632
|
53 |
L 462.312,40.6z" />
|
54 |
+
<glyph unicode="" d="M 367.904,16.064L 142.936,16.064 c-8.84,0-16-7.16-16-16s 7.16-16, 16-16l 224.968,0 c 8.84,0, 16,7.16, 16,16S 376.752,16.064, 367.904,16.064z
|
55 |
M 508.656,419.184c-1.512,7.44-8.080,12.784-15.672,12.784l-78.312,0 L 414.672,447.936 c0,8.84-7.16,16-16,16L 110.904,463.936 c-8.84,0-16-7.16-16-16l0-15.968 L 19.016,431.968
|
56 |
c-7.592,0-14.16-5.344-15.672-12.784c-0.472-2.312-11.2-58.376, 19.952-96.576c 17.92-21.96, 45.304-33.464, 81.248-34.488
|
57 |
C 125.040,227.544, 176.576,182.688, 238.64,176l0-111.456 l-47.888,0 c-8.84,0-16-7.16-16-16s 7.16-16, 16-16l 129.344,0 c 8.84,0, 16,7.16, 16,16s-7.16,16-16,16
|
60 |
c0-8.648, 0.8-17.080, 1.968-25.384C 75.032,322.608, 58.648,329.984, 48.2,342.72z M 382.672,345.952c0-76.544-57.36-138.832-127.856-138.832
|
61 |
c-70.528,0-127.904,62.28-127.904,138.832L 126.912,431.936 l 255.768,0 L 382.68,345.952 z M 463.8,342.72c-10.84-13.216-28.016-20.744-51.136-22.432
|
62 |
c 1.192,8.392, 2.008,16.92, 2.008,25.664l0,54.016 l 64,0 C 479.392,385.408, 477.968,359.968, 463.8,342.72z" />
|
63 |
+
<glyph unicode="" d="M 352.072,480L 159.928,480 c-26.512,0-48-21.488-48-48l0-416 c0-26.512, 21.488-48, 48-48l 192.144,0
|
64 |
c 26.512,0, 48,21.488, 48,48L 400.072,432 C 400.072,458.512, 378.584,480, 352.072,480z M 368.072,16c0-8.832-7.168-16-16-16L 159.928,0 c-8.832,0-16,7.168-16,16L 143.928,432
|
65 |
c0,8.832, 7.168,16, 16,16l 192.144,0 c 8.832,0, 16-7.168, 16-16L 368.072,16 z M 256.024,79.912c-17.64,0-31.92-14.296-31.92-31.912s 14.288-31.92, 31.92-31.92
|
66 |
c 17.64,0, 31.92,14.304, 31.92,31.92S 273.664,79.912, 256.024,79.912z M 288.024,432l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0
|
67 |
c 8.832,0, 16,7.168, 16,16S 296.856,432, 288.024,432z" />
|
68 |
+
<glyph unicode="" d="M 480,432.096L 32,432.096 c-17.592,0-32-14.4-32-32L0,128 c0-17.592, 14.408-31.992, 32-31.992l 208,0 l0-48.104 L 160,47.904
|
69 |
c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 192,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 272,47.904 l0,48.104 l 208,0 c 17.592,0, 32,14.4, 32,31.992L 512,400.096
|
70 |
C 512,417.696, 497.592,432.096, 480,432.096z M 480,128L 32,128 L 32,400.096 l 448,0 L 480,128 z" />
|
71 |
+
<glyph unicode="" d="M 467.16,447.048L 467.16,447.048c 5.216,0, 8.888-0.968, 10.8-1.704c 2.296-6.112, 5.376-28.016-17.264-50.672L 355.36,289.344l-10.16-10.16
|
72 |
l 0.832-14.328c 1.752-29.984, 5-83.72, 7.8-129.784c 2.472-41, 4.816-79.72, 4.968-83.016c 0.080-2.264, 0.112-2.8-2-5.344
|
73 |
c-4.72-5.736-13.528-15.456-20.952-23.512c-11.512,31.016-35.704,96.528-49.064,133.2l-17.168,47.184l-35.512-35.512L 168.8,105.28l-9.096-9.080
|
74 |
l-0.28-12.84c-0.216-10.248-0.168-28.64-0.144-44.856c 0.032-11.296, 0.064-21.56-0.016-27.216c-0.144-0.264, 2.184-0.576, 1.968-0.952
|
88 |
c 0.688-0.080, 1.392-0.112, 2.080-0.112c 6.312,0, 12.856,2.968, 18.216,8.328c0,0, 23.128,24.544, 32.952,36.488
|
89 |
c 9.84,11.936, 9.456,22.128, 9.264,26.936c-0.080,3.328-9.344,154.408-12.784,213.408l 105.328,105.328c 37.328,37.344, 31.392,82.344, 17.528,96.184
|
90 |
C 494.688,474.392, 482.296,479.048, 467.16,479.048L 467.16,479.048z" />
|
91 |
+
<glyph unicode="" d="M 424.576,480L 105.576,480 C 82.576,480, 72.56,463, 72.56,447l0-63.656 L 55.096,383.344 c-8.656,0-15.672-7.016-15.672-15.672S 46.44,352, 55.096,352L 72.56,352
|
92 |
l0-64.376 L 56.592,287.624 c-8.656,0-15.672-7.016-15.672-15.672s 7.016-15.672, 15.672-15.672L 72.56,256.28 l0-64.72 L 56.248,191.56 c-8.656,0-15.672-7.016-15.672-15.672
|
93 |
s 7.016-15.672, 15.672-15.672L 72.56,160.216 l0-64.232 L 56.248,95.984 c-8.656,0-15.672-7.016-15.672-15.672s 7.016-15.672, 15.672-15.672L 72.56,64.64 L 72.56,0
|
94 |
c0-26.512, 20.768-32, 32.264-32l 319.752,0 c 26.512,0, 48,21.488, 48,48L 472.576,432 C 472.576,458.512, 451.096,480, 424.576,480z M 104.56,0l0,64.64 l 16.672,0
|
96 |
s-7.016,15.672-15.672,15.672L 104.56,191.56 l0,64.72 l 17.016,0 c 8.656,0, 15.672,7.016, 15.672,15.672s-7.016,15.672-15.672,15.672L 104.56,287.624 L 104.56,352 l 15.512,0
|
97 |
c 8.656,0, 15.672,7.016, 15.672,15.672s-7.016,15.672-15.672,15.672L 104.56,383.344 L 104.56,447 c0,0.376, 0.032,0.688, 0.080,0.968
|
98 |
C 104.888,447.984, 105.2,448, 105.576,448l 255,0 l0-448 L 104.56,0 z M 440.576,16c0-8.832-7.168-16-16-16l-32,0 L 392.576,448 l 32,0 c 8.832,0, 16-7.168, 16-16L 440.576,16 z" />
|
99 |
+
<glyph unicode="" d="M 396.424,111.64c-50.672,0-79.432,23.816-98.472,39.576c-6.736,5.576-12.864,10.952-18.44,15.832
|
100 |
c-8.456,7.424-19,16.672-22.672,17.952c-0.112,0-1.856,0.080-1.968,0.096c-0.584-0.048-2.072-0.344-2.224-0.36
|
101 |
c-2.536-1.032-11.544-8.784-18.784-15c-6.568-5.64-14.056-12.080-22.52-18.688l-1.544-1.184c-21.736-16.968-48.792-38.080-96.576-38.080
|
102 |
c-35.496,0-70.464,16.064-91.288,41.936c-13.96,17.344-28.648,47.512-19.336,92.736c 1.128,5.472, 5.008,9.952, 10.216,11.816
|
114 |
c-13.696-6.096-27.552-9.184-41.152-9.184c-10.2,0-19.032,1.704-26.312,4.016c-0.016-17.36, 5.056-32.456, 15.168-45.016
|
115 |
c 14.968-18.576, 40.52-30.128, 66.72-30.128c 37,0, 57.448,15.968, 77.232,31.408L 192,176.392c 8.024,6.264, 15.12,12.376, 21.344,17.72
|
116 |
c 14.256,12.248, 23.664,20.344, 33.824,22.144l0,0C 247.176,216.248, 252.016,217.064, 255.368,217.064z" />
|
117 |
+
<glyph unicode="" d="M 256.792,480c-79.064,0-144.752-64.112-144.752-143.168l0-225.656
|
118 |
C 112.040,32.112, 177.728-32, 256.792-32s 143.176,64.112, 143.176,143.168L 399.968,336.832 C 399.968,415.888, 335.856,480, 256.792,480z M 367.968,111.168
|
119 |
C 367.968,49.872, 318.096,0, 256.792,0s-112.752,49.872-112.752,111.168L 144.040,336.832 C 144.040,398.128, 195.496,448, 256.792,448
|
120 |
s 111.176-49.872, 111.176-111.168L 367.968,111.168 z M 256.168,384c-8.832,0-16-7.168-16-16l0-80 c0-8.832, 7.168-16, 16-16c 8.832,0, 16,7.168, 16,16L 272.168,368
|
121 |
C 272.168,376.832, 265,384, 256.168,384z" />
|
122 |
+
<glyph unicode="" d="M 480.144,449.912L 480.144,464.416 c0,8.84-7.16,16-16,16L 351.832,480.416 c-8.84,0-16-7.16-16-16l0-65.328
|
123 |
c0-0.024, 0.016-0.048, 0.016-0.072l0-198.76 c0-48.16-27.168-87.328-75.328-87.328s-84.328,39.168-84.328,87.328L 176.192,449.912 l-0.048,0 L 176.144,464.416
|
124 |
c0,8.84-7.16,16-16,16L 47.832,480.416 c-8.84,0-16-7.16-16-16l0-65.328 c0-0.328, 0.168-0.6, 0.184-0.92l0-205.248
|
125 |
c0-124.456, 99.392-225.328, 223.832-225.328s 224.328,100.872, 224.328,225.328L 480.176,449.912 L 480.144,449.912 z M 448.144,448.416l0-64.168 L 368.016,384.248 L 368.016,448.416 L 448.144,448.416 z
|
126 |
M 144.144,448.416l0-64.168 L 64.016,384.248 L 64.016,448.416 L 144.144,448.416 z M 255.84-0.416c-106.608,0-191.832,86.736-191.832,193.328L 64.008,352.248 l 80.168,0 l0-151.992
|
127 |
c0-65.904, 50.424-119.328, 116.328-119.328S 367.84,134.352, 367.84,200.256L 367.84,352.248 l 80.328,0 l0-159.336 C 448.168,86.32, 362.456-0.416, 255.84-0.416z" />
|
128 |
+
<glyph unicode="" d="M 297.672,447.64l 0.088,0 M 297.672,447.64l-36.104-189.688l 130.792-0.44L 214.328,0.36l 36.104,208.688l-130.784,0.456L 297.672,447.64
|
129 |
M 297.696,479.64c-0.864,0-1.728-0.032-2.576-0.096c-5.648-0.456-9.392-2.344-13.832-5.328c-2.464-1.64-4.72-3.64-6.696-5.968
|
130 |
c-0.584-0.688-1.136-1.408-1.648-2.144L 93.64,228.8c-7.080-9.704-8.12-22.512-2.68-33.216c 5.432-10.704, 16.416-17.488, 28.456-17.576
|
131 |
l 92.368-0.672l-29.040-171.096c-2.76-14.704, 5.080-29.36, 18.88-35.264c 4.112-1.768, 8.432-2.608, 12.696-2.608c 10.056,0, 18.32,4.704, 24.52,13.2
|
132 |
L 418.368,238.72c 7.080,9.704, 8.112,22.528, 2.68,33.216c-5.432,10.704-16.416,17.488-28.456,17.576l-92.368,0.16l 28.728,150.44
|
133 |
c 0.6,2.424, 0.912,4.936, 0.912,7.528c0,17.312-13.784,31.424-31.032,31.984C 298.448,479.64, 298.072,479.64, 297.696,479.64L 297.696,479.64z" />
|
134 |
+
<glyph unicode="" d="M 390.632,176.424c-8.128,3.64-17.544-0.032-21.128-8.096c-0.328-0.712-33.064-72.104-114.72-73.064
|
135 |
c-0.504,0-1-0.016-1.504-0.016c-76.832,0-109.968,70.184-111.344,73.2c-3.656,8-13.096,11.56-21.16,7.936
|
136 |
c-8.048-3.64-11.624-13.104-7.984-21.168c 1.704-3.784, 42.688-91.968, 140.424-91.968c 0.64,0, 1.296,0.016, 1.936,0.016
|
137 |
c 101.936,1.2, 141.92,88.328, 143.56,92.032C 402.336,163.376, 398.696,172.832, 390.632,176.424z M 256,480C 114.608,480,0,365.392,0,224
|
139 |
M 175.752,240.088c 17.632,0, 31.92,14.296, 31.92,31.912s-14.288,31.912-31.92,31.912c-17.64,0-31.92-14.296-31.92-31.912
|
140 |
S 158.112,240.088, 175.752,240.088z M 335.752,240.088c 17.632,0, 31.92,14.296, 31.92,31.912s-14.288,31.912-31.92,31.912
|
141 |
c-17.64,0-31.92-14.296-31.92-31.912S 318.112,240.088, 335.752,240.088z" />
|
142 |
+
<glyph unicode="" d="M 256,480C 114.608,480,0,365.392,0,224s 114.608-256, 256-256s 256,114.608, 256,256S 397.392,480, 256,480z M 480,224c0-33.16-7.296-64.632-20.28-92.968
|
143 |
l-141.608,75.776c 1.512,5.488, 2.392,11.232, 2.392,17.192c0,35.624-28.872,64.504-64.504,64.504c-7.312,0-14.312-1.272-20.856-3.512
|
144 |
L 150.336,421.448C 181.832,438.368, 217.808,448, 256,448C 379.512,448, 480,347.512, 480,224z M 256,256.496c 17.92,0, 32.504-14.576, 32.504-32.504
|
145 |
S 273.92,191.496, 256,191.496S 223.504,206.080, 223.504,224S 238.080,256.496, 256,256.496z M 123.288,404.312l 85.088-136.92
|
147 |
c0,31.84, 6.72,62.128, 18.752,89.584l 142.184-76.080c-0.928-4.36-1.44-8.864-1.44-13.504c0-35.624, 28.872-64.504, 64.504-64.504
|
148 |
c 6.2,0, 12.176,0.92, 17.848,2.552l 85.096-136.896C 328.104,9.128, 293.112,0, 256,0C 132.488,0, 32,100.488, 32,224z M 386.224,41.92
|
149 |
L 301.472,178.264c 0.248,0.248, 0.48,0.512, 0.728,0.768l 142.144-76.072C 428.968,79.144, 409.224,58.416, 386.224,41.92z" />
|
150 |
+
<glyph unicode="" d="M 508.2,231.68l-4.24,4.040c-0.080,0.080-0.168,0.112-0.264,0.184l-64.872,59.216
|
151 |
c-4.672,4.472-12.224,4.472-16.912,0l-2.744-4.032c-4.672-4.472-3.152-11.704, 1.52-16.168l 38.232-34.672L 273.248,240.248 L 273.248,426.92 l 34.672-38.232
|
152 |
c 4.472-4.672, 11.704-6.192, 16.168-1.512l 4.032,2.736c 4.472,4.688, 4.472,12.24,0,16.92l-56.584,61.984
|
153 |
c-1.376,2.776-3.504,5.072-6.16,6.648l-0.712,0.744c-2.216,2.336-5.168,3.504-8.112,3.488c-2.952,0.016-5.888-1.152-8.144-3.488
|
162 |
c-4.472,4.672-11.704,3.152-16.168-1.52l-34.672-38.232L 273.256,208.248 L 460.24,208.248 l-38.552-34.576c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032
|
163 |
c 4.688-4.464, 12.248-4.464, 16.912,0l 63.872,57.752c 0.088,0.088, 0.184,0.096, 0.264,0.168l 4.24,4.048
|
164 |
c 2.336,2.248, 3.504,5.184, 3.488,8.144C 511.704,226.496, 510.536,229.456, 508.2,231.68z" />
|
165 |
+
<glyph unicode="" d="M 496,80l-64,0 L 432,376.952 l 59.728,59.648c 6.24,6.248, 6.24,16.384,0,22.632c-6.248,6.248-16.384,6.248-22.632,0L 409.792,400L 112,400 L 112,464
|
166 |
c0,8.84-7.16,16-16,16s-16-7.16-16-16l0-64 L 16,400 c-8.84,0-16-7.16-16-16c0-8.832, 7.16-16, 16-16l 64,0 l0-304 c0-1.472, 0.472-2.8, 0.84-4.144
|
167 |
c 0.16-0.608, 0.128-1.232, 0.36-1.816c 1.608-4.032, 4.8-7.216, 8.832-8.84c 0.688-0.28, 1.44-0.248, 2.144-0.424
|
168 |
C 93.44,48.456, 94.64,48, 96,48l 304,0 l0-64 c0-8.84, 7.16-16, 16-16s 16,7.16, 16,16l0,64 l 64,0 c 8.84,0, 16,7.16, 16,16S 504.84,80, 496,80z M 377.744,368
|
169 |
L 112,102.608L 112,368 L 377.744,368 z M 134.64,80L 400,344.992L 400,80 L 134.64,80 z" />
|
170 |
+
<glyph unicode="" d="M 464.072,392L 47.928,392 c-26.512,0-48-21.488-48-48l0-240 c0-26.512, 21.488-48, 48-48l 416.144,0
|
171 |
c 26.512,0, 48,21.488, 48,48L 512.072,344 C 512.072,370.512, 490.584,392, 464.072,392z M 47.928,360l 416.144,0 c 8.832,0, 16-7.168, 16-16l0-32 L 31.928,312 l0,32
|
172 |
C 31.928,352.832, 39.104,360, 47.928,360z M 464.072,88L 47.928,88 c-8.832,0-16,7.168-16,16L 31.928,248 l 448.144,0 l0-144 C 480.072,95.168, 472.896,88, 464.072,88z" />
|
173 |
+
<glyph unicode="" d="M 405.208-5.36l-85.2,100.832L 320.008,272.224 l 10.656,0 c 8.84,0, 16,7.16, 16,16s-7.16,16-16,16l-26.656,0 c-8.84,0-16-7.16-16-16l0-198.912
|
174 |
c0-3.968, 1.472-7.784, 4.128-10.72l 65.184-78.672l-202.64,0 l 65.184,78.672c 2.656,2.936, 4.128,6.752, 4.128,10.72L 223.992,288.224 c0,8.84-7.16,16-16,16
|
175 |
l-26.656,0 c-8.84,0-16-7.16-16-16s 7.16-16, 16-16l 10.656,0 l0-176.752 L 106.792-5.36c-4.232-4.688-5.312-11.44-2.752-17.216
|
176 |
c 2.576-5.784, 8.296-9.504, 14.624-9.504l 274.672,0 c 6.328,0, 12.048,3.72, 14.624,9.504C 410.52-16.8, 409.448-10.048, 405.208-5.36z M 240,320.16
|
178 |
C 208.080,334.456, 222.36,320.16, 240,320.16z M 344.24,367.656c 31.184,0, 56.464,25.168, 56.464,56.208s-25.272,56.208-56.464,56.208
|
179 |
c-31.176,0-56.464-25.168-56.464-56.208S 313.064,367.656, 344.24,367.656z M 343.992,448.168c 13.328,0, 24.168-10.792, 24.168-24.064
|
180 |
c0-13.264-10.84-24.064-24.168-24.064s-24.168,10.8-24.168,24.064C 319.832,437.376, 330.664,448.168, 343.992,448.168z" />
|
181 |
+
<glyph unicode="" d="M 255.864,448c 54.336,0, 111.96-45.768, 111.96-79.928l0-79.96 c0-30.776-12.8-89.656-47.128-116.688c-8.752-6.888-13.296-17.84-11.984-28.904
|
182 |
c 1.312-11.080, 8.296-20.656, 18.424-25.312l 139.248-66.032c 1.088-0.496, 13.344-2.552, 13.344-19.672l 0.016-31.232L 32,0.248L 32,32.72
|
183 |
c0,12.72, 9.544,16.712, 13.36,18.472l 140.512,66.312c 10.080,4.624, 17.032,14.16, 18.384,25.16c 1.36,11-3.080,21.92-11.728,28.856
|
184 |
c-33.24,26.688-48.728,85.352-48.728,116.592l0,79.96 C 143.808,401.496, 202.008,448, 255.864,448 M 255.864,480c-70.656,0-144.064-58.968-144.064-111.928
|
185 |
l0-79.96 c0-34.936, 15.944-105.624, 60.696-141.544L 31.976,80.248c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 447.776,0
|
186 |
c 17.672,0, 31.984,14.312, 31.984,31.984l0,48.016 c0,18.8-31.984,31.984-31.984,31.984l-139.248,66.032c 44.328,34.888, 59.328,103.424, 59.328,141.832
|
187 |
l0,79.96 C 399.832,421.032, 326.512,480, 255.864,480L 255.864,480z" />
|
188 |
+
<glyph unicode="" d="M 255.992,461.936C 115.008,461.936, 0.32,347.232, 0.32,206.248
|
189 |
c0-88.576, 44.84-169.592, 119.952-216.704c 7.472-4.736, 17.344-2.44, 22.048,5.048s 2.44,17.36-5.048,22.048
|
190 |
c-27.048,16.976-49.52,39.024-66.712,64.44l 16.776,9.688c 7.656,4.424, 10.28,14.2, 5.856,21.856c-4.44,7.672-14.232,10.28-21.856,5.856
|
191 |
l-16.8-9.696c-12.2,25.256-19.648,52.896-21.64,81.712l 17.808,0 c 8.84,0, 16,7.16, 16,16s-7.16,16-16,16L 32.976,222.496
|
202 |
M 374.056,256.136c 7.648,4.424, 10.272,14.2, 5.856,21.856c-4.416,7.648-14.208,10.272-21.856,5.848l-86.912-50.176
|
203 |
c-4.64,2.624-9.928,4.248-15.64,4.248c-17.64,0-31.92-14.296-31.92-31.904c0-17.624, 14.288-31.92, 31.92-31.92c 17.64,0, 31.92,14.296, 31.92,31.92
|
204 |
c0,0.032-0.008,0.072-0.008,0.104L 374.056,256.136z" />
|
205 |
+
<glyph unicode="" d="M 470.368,385.152c-13.872,9.984-52.528,23.248-214.504,23.248c-173.576,0-199.328-15.232-207.592-20.216
|
206 |
c-43.984-26.424-48.16-143.408-48.544-167.128c 0.528-31.328, 5.592-135.56, 48.512-161.344c 8.248-4.968, 33.856-20.112, 207.624-20.112
|
207 |
c 162.080,0, 200.688,13.2, 214.504,23.144c 37.488,26.968, 41.8,119.84, 41.904,158.72C 512.176,252.728, 508.896,357.4, 470.368,385.152z
|
208 |
M 451.68,88.712c-5.576-4.016-37.592-17.112-195.816-17.112c-152.968,0-185.064,11.872-191.128,15.528c-15.44,9.264-31.736,58.44-33.016,134.016
|
211 |
c-4.952,2.984-11.112,3.064-16.128,0.232c-5.032-2.84-8.144-8.168-8.144-13.936l0-176.72 c0-5.768, 3.112-11.096, 8.144-13.936
|
212 |
c 2.44-1.376, 5.16-2.064, 7.856-2.064c 2.856,0, 5.736,0.768, 8.264,2.296l 143.968,88.376c 4.8,2.904, 7.736,8.096, 7.736,13.704
|
213 |
S 365.008,233.696, 360.208,236.584z M 223.976,162.848L 223.976,282.896 l 97-60.016L 223.976,162.848z" />
|
214 |
+
<glyph unicode="" d="M 342.2,400.656c 26.44,0, 50.312-10.816, 67.128-28.184c 20.92,4.048, 40.64,11.424, 58.36,21.64c-6.856-20.816-21.44-38.28-40.408-49.328
|
215 |
c 18.56,2.184, 36.328,6.952, 52.816,14.080c-12.36-17.872-27.92-33.608-45.888-46.184c 0.168-3.816, 0.264-7.672, 0.264-11.512
|
216 |
c0-117.864-92.504-253.808-261.656-253.808c-51.92,0-100.28,14.816-140.952,40.112c 7.184-0.84, 14.504-1.264, 21.92-1.264
|
217 |
c 43.080,0, 82.752,14.248, 114.232,38.2c-40.264,0.688-74.248,26.504-85.904,61.92c 5.608-1.048, 11.376-1.608, 17.312-1.608
|
227 |
c 182.016,0, 291.504,142.488, 293.632,281.672c 14.896,12.328, 28.064,26.592, 39.224,42.576c 4.064,5.344, 6.48,12.016, 6.48,19.248
|
228 |
c0,10.888-5.448,20.512-13.744,26.296c 3.592,12.312-0.504,25.64-10.504,33.784c-5.84,4.752-13,7.168-20.2,7.168
|
229 |
c-5.504,0-11.016-1.408-15.984-4.28c-10.576-6.096-21.888-10.92-33.8-14.392C 396.36,423.624, 369.64,432.656, 342.2,432.656L 342.2,432.656z" />
|
230 |
+
<glyph unicode="" d="M 264.008,448.128l0-111.936 l 112.16,0 l0-47.984 L 264.504,288.208 l-0.16-139.264c0-25.888, 1.344-42.504, 4.080-49.872c 4.264-11.624, 19.784-26.504, 48.592-26.504
|
231 |
c 22.344,0, 52.488,6.72, 75.080,23.624l0-74.656 c-18.84-8.984-36.36-12.608-51.624-16.232c-15.28-3.608-31.832-5.424-49.576-5.424
|
232 |
c-19.768,0-76.832,0.544-100.248,60.2c-4.216,10.736-6.328,26.328-6.328,46.736L 184.32,288.128 l-64.424,0 l 0.312,49.064
|
233 |
c 21.328,0, 85.312,12.952, 85.312,110.936L 264.008,448.128 M 264.008,480.128L 205.52,480.128 c-17.672,0-32-14.328-32-32c0-73.248-40.816-78.936-53.312-78.936
|
237 |
c-4.528,2.28-9.44,3.392-14.328,3.392c-6.784,0-13.528-2.16-19.168-6.376c-19.048-14.264-43.424-17.248-55.904-17.248
|
238 |
c-12.8,0-17.56,4.64-18.608,5.872c-0.544,2.512-2.064,11.888-2.064,38.504l 0.112,107.264l 79.704,0 c 17.672,0, 32,14.328, 32,32l0,47.984
|
239 |
c0,17.672-14.328,32-32,32l-80.16,0 L 296.008,448.128 C 296.008,465.8, 281.68,480.128, 264.008,480.128L 264.008,480.128z" />
|
240 |
+
<glyph unicode="" d="M 290.88,439.752c 1.904,0, 3-0.080, 3-0.080l 41.784,0 l-0.216-48l-41.504,0 c-22.84,0-22.312-19.504-22.312-19.504l0-76.096 l 80.816,0
|
241 |
l-11.28-47.936l-69.8,0 l0-239.888 l-47.952,0 l-0.032,239.888L 159.68,248.136 l-0.128,47.936l 63.856,0 c0,0,0,58.688,0,74.592
|
242 |
C 223.416,435.704, 277.432,439.752, 290.88,439.752 M 335.664,439.672l 0.080,0 M 290.88,471.752L 290.88,471.752c-11.504,0-33.984-1.904-55.28-14.736
|
243 |
c-20.16-12.128-44.184-36.968-44.184-86.344l0-42.592 l-31.856,0 c-8.504,0-16.656-3.392-22.672-9.408c-6-6.032-9.36-14.184-9.328-22.704
|
245 |
c 14.2,0, 26.704,9.36, 30.704,22.984l 11.28,47.936c 2.84,9.672, 0.952,20.128-5.096,28.184c-6.032,8.080-15.528,12.832-25.608,12.832l-48.816,0
|
246 |
l0,31.576 l 31.816,0.016c 17.608,0, 31.92,14.232, 32,31.856l 0.216,46.376c 0.032,0.592, 0.048,1.168, 0.048,1.768c0,17.672-14.296,32-31.968,32l-0.080,0
|
247 |
l-40.888,0 C 293.864,471.72, 292.536,471.752, 290.88,471.752L 290.88,471.752z" />
|
248 |
+
<glyph unicode="" d="M 511.712,367.624c-0.36,5.112-3.144,9.736-7.488,12.456L 361.632,469.064c-5.8,3.608-13.216,3.16-18.528-1.144l-87.112-70.472
|
249 |
L 168.896,467.92c-5.296,4.28-12.768,4.768-18.528,1.144L 7.776,380.080c-4.344-2.72-7.128-7.344-7.488-12.456
|
250 |
c-0.376-5.112, 1.736-10.080, 5.656-13.376l 82.608-69.408l-70.768-55.592c-4.048-3.16-6.312-8.088-6.112-13.208
|
251 |
c 0.2-5.12, 2.84-9.832, 7.112-12.68l 65.488-43.656c-3.216-2.92-5.272-7.104-5.272-11.8l0-64.168 c0-5.56, 2.888-10.72, 7.624-13.64
|
257 |
L 111.008,141.888 z M 399.104,92.672l-128.128-72.84L 270.976,163.72 l 66.328-50.984c 2.856-2.2, 6.312-3.312, 9.752-3.312c 3.096,0, 6.184,0.888, 8.872,2.688
|
258 |
l 43.168,28.784L 399.096,92.672 z M 456.728,217.76l-109.016-72.664l-63.72,48.968l 113,70.816L 456.728,217.76z M 396.832,304.296l-113.672,73.984
|
259 |
l 71.2,57.592l 114.232-71.296L 396.832,304.296z" />
|
260 |
+
<glyph unicode="" d="M 255.992,479.864c-34.928,0-68.232-7.056-98.592-19.784c-1.056-0.336-2.088-0.776-3.072-1.336
|
261 |
C 63.696,419.336, 0.136,328.968, 0.136,223.992c0-141.080, 114.784-255.856, 255.856-255.856c 141.096,0, 255.872,114.784, 255.872,255.856
|
262 |
C 511.864,365.088, 397.088,479.864, 255.992,479.864z M 479.864,223.992c0-1.792-0.096-3.56-0.136-5.336
|
263 |
c-24.512,6.504-86.696,18.72-163.4,1.872c-6.76,15.448-14.256,31.288-22.64,47.408c-0.704,1.352-1.392,2.64-2.088,3.976
|
271 |
c 13.984,6.336, 27.76,11.392, 41.192,15.456c 30.368-77.16, 40.904-140.784, 44.088-165.296c-26.376-10.952-55.264-17.032-85.56-17.032
|
272 |
C 203.984,0.136, 156.096,18.016, 118.048,47.88z M 371.808,32.48c-4.616,30.8-16.072,88.696-42.984,157.832
|
273 |
c 74.224,14.776, 132.976,0.28, 147.808-4.040C 465.52,121.168, 426.264,65.528, 371.808,32.48z" />
|
274 |
+
<glyph unicode="" d="M 453.976,407.76c-5.936,5.544-13.752,8.608-21.832,8.608
|
275 |
c-0.736,0-1.472-0.032-2.2-0.080c-0.456-0.032-5.592-0.344-13.64-0.344c-13.328,0-39.344,0.904-63.984,6.968
|
276 |
c-31.832,7.816-68.56,44.080-79.248,51.232c-5.376,3.592-11.576,5.392-17.784,5.392c-6.184,0-12.392-1.8-17.768-5.376
|
277 |
c-1.296-0.872-39.752-42.016-77.376-51.248c-24.624-6.064-51.144-6.968-64.456-6.968c-8.048,0-13.184,0.312-13.688,0.344
|
284 |
c-6.248,6.248-16.384,6.248-22.624,0l-45.256-45.256l-45.256,45.256c-6.248,6.248-16.384,6.248-22.632,0s-6.248-16.384,0-22.624l 45.256-45.256
|
285 |
l-45.256-45.256c-6.248-6.24-6.248-16.376,0-22.624s 16.384-6.248, 22.632,0l 45.256,45.256l 45.256-45.256c 6.24-6.248, 16.376-6.248, 22.624,0
|
286 |
s 6.248,16.384,0,22.624l-45.256,45.256l 45.256,45.256C 330.048,290.496, 330.048,300.632, 323.8,306.88z" />
|
287 |
+
<glyph unicode="" d="M 416.072,480L 95.928,480 c-26.512,0-48-21.488-48-48l0-416 c0-26.512, 21.488-48, 48-48l 320.144,0
|
288 |
c 26.512,0, 48,21.488, 48,48L 464.072,432 C 464.072,458.512, 442.584,480, 416.072,480z M 432.072,16c0-8.832-7.168-16-16-16L 95.928,0 c-8.832,0-16,7.168-16,16L 79.928,432
|
289 |
c0,8.832, 7.168,16, 16,16l 320.144,0 c 8.832,0, 16-7.168, 16-16L 432.072,16 z M 256.024,79.912c-17.64,0-31.92-14.296-31.92-31.912s 14.28-31.92, 31.92-31.92
|
290 |
c 17.632,0, 31.92,14.304, 31.92,31.92S 273.656,79.912, 256.024,79.912z M 288.024,432l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0
|
291 |
c 8.832,0, 16,7.168, 16,16S 296.856,432, 288.024,432z" />
|
292 |
+
<glyph unicode="" d="M 510.256,265.312l-51.392,76.84l 25.576,89.408c 1.592,5.608, 0.032,11.64-4.112,15.752c-4.128,4.128-10.128,5.656-15.768,4.016
|
293 |
L 375.304,425.264l-77.144,51.952c-4.856,3.264-11.080,3.656-16.232,0.968c-5.184-2.656-8.512-7.936-8.704-13.752l-2.768-92.968
|
294 |
l-73.248-57.296c-4.592-3.592-6.856-9.408-5.936-15.16s 4.904-10.544, 10.408-12.512l 68.728-24.64c-0.464-0.368-0.952-0.696-1.384-1.128
|
295 |
L 3.648-4.648c-6.248-6.248-6.248-16.376,0-22.624c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 265.376,265.376
|
299 |
c-1.624,4.472-5.16,7.968-9.64,9.576l-67.296,24.128l 56.312,44.032c 3.752,2.936, 5.984,7.376, 6.144,12.128l 2.128,71.472l 59.296-39.936
|
300 |
c 3.952-2.656, 8.888-3.408, 13.424-2.096l 68.624,20.048l-19.672-68.736c-1.296-4.576-0.504-9.488, 2.168-13.424l 40.28-59.064L 397.024,268.728z
|
301 |
" />
|
302 |
+
<glyph unicode="" d="M 416.528,447.696l-32.232,0 l0-107.704 c0-52.192-28.328-91.68-89.048-122.6
|
303 |
C 358.28,185.488, 384.8,146.312, 384.8,87.856c0-38.064-0.168-70-0.296-87.56l 32.032,0 c 8.84,0, 16-7.144, 16-15.984s-7.16-16-16-16L 95.472-31.688
|
304 |
c-8.84,0-16,7.16-16,16s 7.16,15.984, 16,15.984l 32.968,0 c-0.12,17.56-0.296,49.504-0.296,87.56c0,58.456, 26.144,97.624, 89.072,129.528
|
305 |
c-60.616,30.92-88.568,70.408-88.568,122.6L 128.648,447.696 l-33.176,0 c-8.84,0-16,7.152-16,16c0,8.832, 7.16,15.992, 16,15.992l 321.064,0
|
306 |
c 8.84,0, 16-7.16, 16-15.992C 432.528,454.848, 425.376,447.696, 416.528,447.696z M 160.136,87.856c0-38.144, 0.176-70.112, 0.296-87.56l 192.088,0
|
307 |
c 0.112,17.456, 0.296,49.424, 0.296,87.56c0,44.504-16.56,79.016-96.592,112.2C 176.216,166.872, 160.136,132.36, 160.136,87.856z M 352.312,447.696
|
308 |
l-191.68,0 l0-107.704 c0-30.688, 10.32-70.208, 95.584-105.264c 85.28,35.056, 96.096,74.576, 96.096,105.264L 352.312,447.696 z" />
|
309 |
+
<glyph unicode="" d="M 495.424,131.848L 495.424,260.92 l 8.048,4.248c 5.232,2.72, 8.528,8.112, 8.592,14.016
|
310 |
c 0.064,5.888-3.128,11.344-8.296,14.184l-240.72,128.8c-4.816,2.64-10.64,2.624-15.488-0.048L 8.16,293.16
|
311 |
c-5.096-2.84-8.248-8.232-8.216-14.080s 3.248-11.2, 8.408-13.984l 105.192-55.992c-1.32-2.328-2.136-4.984-2.136-7.848l0-135.392
|
312 |
c0-4.56, 1.952-8.92, 5.36-11.952c 3.472-3.080, 36.72-30.048, 138.376-30.048c 101.296,0, 135.44,25.488, 139,28.392
|
314 |
c-9.488-5.552-15.92-15.736-15.92-27.512c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32C 511.504,116.096, 504.984,126.32, 495.424,131.848z M 368.016,73.816
|
315 |
c-12.576-6.048-45.856-17.952-112.872-17.952c-67.44,0-99.968,12.672-111.736,18.768L 143.408,193.2 l 103.904-55.312c 2.36-1.28, 4.984-1.92, 7.592-1.92
|
316 |
c 2.544,0, 5.096,0.608, 7.408,1.832l 105.704,55.832L 368.016,73.816 z M 255.032,170.096L 49.232,279.376l 206.16,110.488l 206.8-110.168L 255.032,170.096z" />
|
317 |
+
<glyph unicode="" d="M 255.992,480.064c-114.608,0-207.84-99.952-207.84-222.8l0-273.336 c0-6.608, 4.080-12.544, 10.248-14.92
|
318 |
c 1.856-0.736, 3.816-1.080, 5.752-1.080c 4.424,0, 8.768,1.84, 11.856,5.264l 60.296,66.56l 47.216-65.216
|
319 |
c 2.984-4.128, 7.752-6.576, 12.84-6.608l 0.112,0 c 5.048,0, 9.816,2.392, 12.832,6.456l 47.408,63.672l 46.592-63.576
|
320 |
c 3.016-4.112, 7.8-6.544, 12.904-6.544c 5.096,0, 9.888,2.424, 12.904,6.528l 47.784,65.144l 59-66.312
|
325 |
L 80.144,257.272 c0,105.2, 78.888,190.8, 175.84,190.8c 96.968,0, 175.856-85.592, 175.856-190.8L 431.84,25.984 z M 336,303.92c-17.64,0-31.92-14.296-31.92-31.904
|
326 |
c0-17.624, 14.28-31.92, 31.92-31.92s 31.92,14.296, 31.92,31.92C 367.92,289.624, 353.64,303.92, 336,303.92z M 176,303.92
|
327 |
c-17.64,0-31.92-14.296-31.92-31.904c0-17.624, 14.288-31.92, 31.92-31.92s 31.92,14.296, 31.92,31.92C 207.92,289.624, 193.64,303.92, 176,303.92z" />
|
328 |
+
<glyph unicode="" d="M 371.608,442.224c-12.8,6.008-24.904,11.664-35.92,17.192
|
329 |
c-28.232,14.144-53.832,21.016-78.232,21.016c-49.144,0-83.152-28.352-104.48-49.68l-17.792-17.808l-11.872-11.888l-17.232-17.256l-26.864-26.896
|
330 |
l-29.664-29.688c-55.344-55.4-64.184-111.8-28.632-182.904c 5.512-11.040, 11.184-23.168, 17.184-36.016
|
331 |
c 32.352-69.192, 65.792-140.744, 120.528-140.744c 1.536,0, 3.056,0.048, 4.608,0.168c 56.488,4.424, 72.512,77.144, 86.656,141.296
|
341 |
c 6,6, 6,15.736,0,21.728c-6,6-15.72,6-21.72,0l-12.176-12.176l-12.176,12.176c-6,6-15.72,6-21.72,0
|
342 |
c-6-6-6-15.728,0-21.728l 12.176-12.176l-12.176-12.176c-6-5.992-6-15.72,0-21.72c 6-6, 15.728-6, 21.72,0
|
343 |
l 12.176,12.168l 12.528-12.528c 6-6, 15.72-6, 21.72,0s 6,15.736,0,21.736L 164.944,208.28z" />
|
344 |
+
<glyph unicode="" d="M 254.208-31.64c-120.624,0-206.184,83.64-206.184,198.888c0,61.184, 36.688,127.096, 38.248,129.856
|
345 |
c 3.184,5.672, 9.44,8.752, 15.968,8.032c 6.456-0.832, 11.768-5.488, 13.44-11.784c 0.096-0.376, 9.984-37.376, 23.032-57.92
|
346 |
c 8.768-13.824, 17.656-23.592, 27.656-30.376c-6.768,29.328-11.952,73.456-3.512,118.736C 186.024,448.080, 283.848,477.816, 288.040,479.016
|
347 |
c 5.392,1.544, 11.112,0.16, 15.216-3.576c 4.096-3.752, 5.968-9.376, 4.904-14.832c-0.16-0.872-16.312-87.888, 17.968-162.032
|
354 |
c-1.2,1.704-29.656,41.984-42.2,69.12c-26.048,56.296-25.608,117.168-22.952,152.232c-26.36-15.36-66.832-49.672-79.832-119.456
|
355 |
c-12.656-67.904, 11.936-135.8, 12.2-136.472c 2.128-5.544, 1-11.832-2.904-16.296c-3.92-4.44-9.952-6.408-15.768-5.016
|
356 |
c-1.984,0.488-47.016,12.2-76.168,58.144C 106.464,226.512, 101.792,236.472, 97.848,246.16z" />
|
357 |
+
<glyph unicode="" d="M 512.688,154.104c-0.488,6.92-26.504,159.656-30.576,184.112c-0.392,2.344-0.704,4.84-1.048,7.472
|
358 |
c-3.144,24.576-9.016,70.312-82.736,70.312c-8.84,0-16-7.16-16-16s 7.16-16, 16-16c 45.56,0, 47.968-18.704, 51-42.392
|
359 |
c 0.392-3.032, 0.768-5.936, 1.216-8.64c 1.872-11.264, 10.352-56.080, 17.672-100.512c-18.776,14.312-42.144,22.904-67.56,22.904
|
360 |
c-40.824,0-77.16-21.976-97.136-54.68c-9.608,3.632-25.912,8.168-47.696,8.168c-21.472,0-37.256-4.568-47.016-8.544
|
369 |
c-44.096,0-81.344,36.488-81.344,79.672s 37.248,79.672, 81.344,79.672c 38,0, 69.816-26.744, 77.728-62.392
|
370 |
c 0.328-3.264, 0.6-6.336, 0.808-9.144c 0.096-1.344, 0.456-2.608, 0.92-3.832c 0.080-1.44, 0.216-2.856, 0.216-4.312
|
371 |
C 480.328,99.744, 444.592,64.008, 400.656,64.008z" />
|
372 |
+
<glyph unicode="" d="M 511.656,243.352c-0.68,5.656-2.808,10.856-6.048,15.232l 0.080,0 l-0.44,0.44c-1.64,2.16-3.56,4.064-5.704,5.752L 290.904,466.48
|
373 |
c-18.112,18.112-49.752,18.144-67.888,0L 14.408,266.352c-4.512-4.2-14.44-15.544-14.44-26.672l0-239.76 c0-17.592, 14.408-32, 32-32l 448,0
|
374 |
c 17.592,0, 32,14.408, 32,32L 511.968,239.048 C 512.080,240.488, 511.936,241.928, 511.656,243.352z M 134.896,116.832L 31.968,22.048L 31.968,207.64 L 134.896,116.832z
|
375 |
M 167.784,103.64c 1.144,0.76, 2.232,1.624, 3.184,2.704c 0.184,0.208, 0.312,0.456, 0.48,0.672l 70.584,65
|
377 |
l 101.24,89.848l0-180.92 L 378.728,114.72z M 51.888,258.584L 245.64,443.856c 3.032,3.016, 7.048,4.688, 11.312,4.688
|
378 |
c 4.28,0, 8.296-1.672, 11.328-4.688L 448.968,271.68l-0.488,0 l 27.448-27.896l-121.152-107.52l-67.624,60.832
|
379 |
c-18.84,14.768-45.888,15.408-65.84-0.688l-62.752-57.792L 37.664,245.288l 13.496,13.296L 51.888,258.584 z" />
|
380 |
+
<glyph unicode="" d="M 511.656,243.36c-0.68,5.656-2.808,10.856-6.048,15.232l 0.080,0 l-0.44,0.44c-1.64,2.16-3.56,4.064-5.704,5.752
|
381 |
L 415.968,348.976L 415.968,400.608 c0,8.84-7.16,16-16,16l-50.664,0 l-58.4,49.856c-18.112,18.112-49.752,18.144-67.888,0l-58.2-49.856l-52.848,0
|
382 |
c-8.84,0-16-7.16-16-16l0-52.688 L 14.408,266.36c-8.672-5.736-14.44-15.544-14.44-26.672l0-239.752 c0-17.592, 14.408-32, 32-32l 448,0
|
383 |
c 17.592,0, 32,14.408, 32,32l0,239.12 C 512.080,240.496, 511.936,241.936, 511.656,243.36z M 134.432,117.248L 31.968,22.208L 31.968,207.656 L 134.432,117.248z
|
387 |
c 3.032,3.016, 7.048,4.688, 11.312,4.688c 4.28,0, 8.296-1.672, 11.328-4.688l 32.312-27.232L 213.376,416.608 L 245.64,443.84z M 383.968,384.608l0-222.424
|
388 |
l-28.656-25.44l-68.16,61.784c-18.84,14.768-45.888,15.408-65.84-0.688L 158,139.12l-30.032,26.504L 127.968,384.608 L 383.968,384.608 z M 51.888,258.592l 44.080,44.064
|
389 |
l0-108.808 l-58.312,51.448l 13.496,13.296L 51.888,258.592 z" />
|
390 |
+
<glyph unicode="" d="M 452.808,124.056c-18.672,22.712-44.24,54.872-44.24,87.68l0,104.48
|
391 |
c0,90.008-67.32,163.24-153.344,163.24c-86.040,0-152.832-73.232-152.832-163.24l0-104.48 c0-32.256-27.744-62.744-45.336-86.4
|
392 |
c-15.824-21.256-28.312-38.048-19.88-54.832c 7.416-14.768, 25.984-16.664, 41.328-16.664l 91.68,0 c 0.024-47.104, 38.224-85.288, 85.336-85.288
|
393 |
c 47.12,0, 85.32,38.184, 85.344,85.288l 93.832,0 c 9.76,0, 32.576,0, 40.432,16.6C 483.056,87.248, 470.368,102.696, 452.808,124.056z
|
395 |
c-2.448,0-4.496,0.080-6.184,0.184c 3.296,5.104, 8.136,11.624, 12.072,16.928c 19.496,26.2, 52.072,63.184, 52.072,106.712l0,104.48
|
396 |
c0,71.232, 51.52,129.176, 118.76,129.176c 67.24,0, 119.28-57.944, 119.28-129.176l0-104.48 c0-45.008, 30.040-82.624, 51.984-109.304
|
397 |
c 3.696-4.496, 8.12-9.88, 11.56-14.48C 437.032,87.92, 435.912,87.904, 434.696,87.904z" />
|
398 |
+
<glyph unicode="" d="M 510.528,60.016L 416.896,233.168c 9.552,21.68, 14.896,45.64, 14.896,70.848c0,97.152-78.76,175.904-175.904,175.904
|
399 |
c-97.168,0-175.92-78.76-175.92-175.904c0-25.816, 5.608-50.312, 15.592-72.392L 1.512,60.096c-3.032-5.512-2.528-12.312, 1.264-17.344
|
400 |
c 3.8-5.016, 10.216-7.376, 16.344-5.936l 80.312,18.424l 27.488-76.56c 2.144-5.952, 7.576-10.080, 13.872-10.544
|
401 |
c 0.408-0.032, 0.8-0.048, 1.184-0.048c 5.856,0, 11.296,3.216, 14.096,8.44l 81.848,152.488c 5.904-0.6, 11.896-0.904, 17.96-0.904
|
406 |
c 79.272,0, 143.768-64.496, 143.768-143.768s-64.496-143.784-143.768-143.784C 176.608,160.232, 112.112,224.744, 112.112,304.016z M 405.872,89.592
|
407 |
c-7.936,1.872-15.888-2.56-18.64-10.184l-20.264-56.488L 305.392,135.2c 37.72,11.048, 70.168,34.368, 92.752,65.368l 67.424-124.664L 405.872,89.592z
|
408 |
" />
|
409 |
+
<glyph unicode="" d="M 510.512,114.296l-41.144,75.648c-0.064,0.104-0.048,0.2-0.112,0.296l-2.936,5.072
|
410 |
c-1.64,2.808-4.216,4.616-7.096,5.296c-2.848,0.704-5.992,0.272-8.704-1.488l-4.92-3.168c-0.096-0.056-0.152-0.144-0.248-0.208
|
411 |
l-72.8-49.16c-5.44-3.504-7.208-10.84-3.968-16.456l 3.272-3.6c 3.24-5.592, 10.632-5.824, 16.080-2.32l 43.52,29.592
|
412 |
c-10.304-83-77.368-146.696-159.48-154.088L 271.976,320.512 L 336,320.512 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-64.72,0
|
419 |
c 14.688-102.36, 102.552-178.912, 206.64-178.912c 104.032,0, 191.96,76.544, 206.68,178.856l 23.92-44.432c 3.248-5.592, 9.944-8.768, 15.384-5.272
|
420 |
l 4.56,1.712C 511.984,101.36, 513.76,108.712, 510.512,114.296z M 223.752,416.512c0,17.92, 14.576,32.504, 32.496,32.504
|
421 |
c 17.92,0, 32.504-14.576, 32.504-32.504s-14.576-32.504-32.504-32.504C 238.336,384.016, 223.752,398.592, 223.752,416.512z" />
|
422 |
+
<glyph unicode="" d="M 511.824,334.76c 0.232,11.832-2.952,39.424-38.92,49.032L 115.024,455.76l-3.328,0.344
|
423 |
c-26.472,0-48-21.528-48-48l0-64.352 l-16,0.040c-26.376-0.112-47.816-21.576-47.816-47.984l0-255.904 c0-26.472, 21.528-48, 48-48l 416.232,0
|
424 |
c 26.472,0, 48,21.528, 48,48L 511.824,334.76z M 95.696,408.104c0,8.36, 6.44,15.232, 14.608,15.936l 353-71.44
|
425 |
c 0.128-0.064-2.624-8.968-15.44-8.8L 95.696,343.8 L 95.696,408.104 z M 480.12,39.896c0-8.832-7.168-16-16-16L 47.88,23.896 c-8.832,0-16,7.168-16,16L 31.88,295.808
|
426 |
c0,8.832, 7.168,16, 16,16l 400.032,0 c 15.704,0, 32.2,5.352, 32.2,15.944L 480.112,39.896 z M 95.912,199.752c-17.672,0-32-14.328-32-32s 14.328-32, 32-32
|
427 |
s 32,14.328, 32,32S 113.584,199.752, 95.912,199.752z" />
|
428 |
+
<glyph unicode="" d="M 496,144l-16.136,0 l0,0.808 c0,80.96-43.264,151.904-107.832,191.192l 80.408,0
|
429 |
c 5.544-9.52, 15.752-16, 27.56-16c 17.672,0, 32,14.328, 32,32s-14.328,32-32,32c-11.816,0-22.016-6.48-27.56-16L 304,368 l0,16 c0,8.832-7.168,16-16,16l-64,0
|
430 |
c-8.832,0-16-7.168-16-16l0-16 L 59.56,368 C 54.016,377.52, 43.816,384, 32,384c-17.672,0-32-14.328-32-32s 14.328-32, 32-32c 11.816,0, 22.016,6.48, 27.56,16l 80.4,0
|
431 |
C 75.392,296.704, 32.136,225.768, 32.136,144.808L 32.136,144 L 16,144 c-8.832,0-16-7.168-16-16l0-64 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,64
|
432 |
c0,8.832-7.168,16-16,16L 64.136,144 l0,0.808 c0,89.224, 61.232,164.336, 143.864,185.696L 208,320 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,10.504
|
433 |
c 82.632-21.368, 143.864-96.48, 143.864-185.696L 447.864,144 L 432,144 c-8.832,0-16-7.168-16-16l0-64 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,64
|
434 |
C 512,136.832, 504.832,144, 496,144z M 64,80L 32,80 l0,32 l 32,0 L 64,80 z M 272,336l-32,0 l0,32 l 32,0 L 272,336 z M 480,80l-32,0 l0,32 l 32,0 L 480,80 z" />
|
435 |
+
<glyph unicode="" d="M 480,448.2L 32,448.2 c-17.672,0-32-14.328-32-32l0-288.752 c0-17.672, 14.328-32, 32-32l 63.768,0 l0-79.656
|
436 |
c0-6.456, 3.872-12.264, 9.816-14.752c 2-0.84, 4.112-1.248, 6.184-1.248c 4.128,0, 8.168,1.592, 11.216,4.592l 92.512,91.064L 480,95.448
|
437 |
c 17.672,0, 32,14.328, 32,32L 512,416.2 C 512,433.872, 497.672,448.2, 480,448.2z M 480,127.456L 202.392,127.456 l-74.624-73.456l0,73.456 L 32,127.456 L 32,416.2 l 448,0 L 480,127.456 z
|
438 |
M 112,255.496l 288,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 112,287.496 c-8.832,0-16-7.168-16-16S 103.168,255.496, 112,255.496z M 112,319.496l 288,0
|
439 |
c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 112,351.496 c-8.832,0-16-7.168-16-16S 103.168,319.496, 112,319.496z M 112,191.496l 192,0 c 8.832,0, 16,7.168, 16,16
|
440 |
s-7.168,16-16,16L 112,223.496 c-8.832,0-16-7.168-16-16S 103.168,191.496, 112,191.496z" />
|
441 |
+
<glyph unicode="" d="M 256-32.080c-10.144,0-19.688,3.936-26.872,11.096L 10.872,197.264c-14.768,14.84-14.768,38.976-0.032,53.784l 79.952,79.936
|
442 |
c 4.936,4.936, 12.512,6.112, 18.72,2.872c 6.184-3.232, 9.56-10.112, 8.344-16.984c-0.816-4.576-1.184-8.248-1.184-11.56
|
443 |
c0-35, 28.488-64.072, 63.504-64.072c 35.048,0, 60.64,29.072, 60.64,64.072c0,35.048-25.592,63.544-60.64,63.544c-3.28,0-6.936-0.376-11.512-1.184
|
444 |
c-6.936-1.28-13.752,2.16-16.984,8.344c-3.232,6.2-2.064,13.784, 2.872,18.72l 74.544,74.56c 14.44,14.376, 39.408,14.344, 53.784,0.032
|
450 |
c-30.856,0-55.968-25.128-55.968-56.016c0-1.28, 0.2-2.528, 0.376-3.784l 0.344-2.856c 0.72-6.752-2.888-13.216-9.016-16.144
|
451 |
c-6.080-2.904-13.408-1.656-18.2,3.128l-78.472,78.512c-3.064,3.032-5.472,3.064-8.592-0.032l-48.56-48.56
|
452 |
c 41.64-10.312, 69.688-47.984, 69.688-92.768c0-52.656-39.96-96.064-92.648-96.064C 135.4,209.248, 97.744,240.784, 87.448,282.392z" />
|
453 |
+
<glyph unicode="" d="M 476.368,352.536l-60.36,0 L 416.008,479.76 L 95.992,479.76 l0-127.224 L 35.632,352.536 c-19.656,0-35.656-16-35.656-35.672
|
454 |
L-0.024,99.92 c0-19.672, 16-35.672, 35.656-35.672l 60.36,0 L 95.992-31.76 l 320.016,0 L 416.008,64.248 l 60.36,0 c 19.656,0, 35.656,16, 35.656,35.672L 512.024,316.864
|
455 |
C 512.024,336.536, 496.024,352.536, 476.368,352.536z M 127.992,448.256l 256.016,0 l0-95.72 L 127.992,352.536 L 127.992,448.256 z M 384.008,0.24L 127.992,0.24 L 127.992,176.44 l 256.016,0
|
456 |
L 384.008,0.24 z M 480.024,99.92c0-2.040-1.64-3.672-3.656-3.672l-60.36,0 L 416.008,208.44 L 95.992,208.44 l0-112.184 L 35.632,96.256 c-2.016,0-3.656,1.632-3.656,3.672
|
457 |
L 31.976,316.864 c0,2.032, 1.64,3.672, 3.656,3.672l 440.736,0 c 2.016,0, 3.656-1.64, 3.656-3.672L 480.024,99.92 z M 416,288.28l-16,0 c-8.832,0-16-7.168-16-16
|
458 |
s 7.168-16, 16-16l 16,0 c 8.832,0, 16,7.168, 16,16S 424.832,288.28, 416,288.28z" />
|
459 |
+
<glyph unicode="" d="M 512,319.752c0,17.672-14.328,32-32,32l-54.624,0 c 14.136,13.944, 23.184,32.224, 23.184,54.736c0,27.72-15.92,57.832-60.608,57.832
|
460 |
c-58.8,0-107.92-62.608-131-97.704C 233.856,401.704, 183.232,464.312, 124.44,464.312c-44.688,0-60.608-30.112-60.608-57.832
|
461 |
c0-22.504, 9.296-40.792, 23.72-54.736L 32,351.744 c-17.672,0-32-14.328-32-32l0-95.784 l 32.28,0 l0-208.28 c0-17.672, 14.328-32, 32-32l 383.84,0 c 17.672,0, 32,14.328, 32,32
|
462 |
L 480.12,223.968 L 512,223.968 L 512,319.752 z M 387.952,432.312c 19.784,0, 28.608-8.312, 28.608-25.832c0-35.544-39.672-54.72-76.984-54.72l-54.168,0
|
463 |
C 308.144,385.528, 348.16,432.312, 387.952,432.312z M 124.44,432.312c 39.8,0, 81.328-46.784, 104.064-80.544l-54.184,0
|
464 |
c-37.312,0-78.488,19.672-78.488,55.216C 95.832,424.496, 104.656,432.312, 124.44,432.312z M 480,255.968L 272,255.968 l0,63.784 l 208,0 L 480,255.968 z M 32,319.752l 208,0 l0-63.784
|
465 |
L 32,255.968 L 32,319.752 z M 64.28,223.968L 240,223.968 l0-208.28 L 64.28,15.688 L 64.28,223.968 z M 448.128,15.688L 272,15.688 L 272,223.968 l 176.128,0 L 448.128,15.688 z" />
|
466 |
+
<glyph unicode="" d="M 16.88,448.12l 224,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-224,0 c-8.832,0-16-7.168-16-16
|
467 |
S 8.040,448.12, 16.88,448.12z M 16.88,352.12l 224,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-224,0 c-8.832,0-16-7.168-16-16S 8.040,352.12, 16.88,352.12z
|
468 |
M 256.88,272.12c0,8.832-7.168,16-16,16l-224,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 224,0 C 249.712,256.12, 256.88,263.288, 256.88,272.12z
|
469 |
M 506.44,317.728L 349.984,474.176c-4.952,4.96-12.328,5.92-18.296,3.008c-6.272-2.168-10.808-8.056-10.808-15.064L 320.88,107.92
|
471 |
c 53.064,0, 96.048,35.904, 96.048,80.168c0,2.008-0.184,3.968-0.36,5.936L 352.88,426.024 l 130.92-130.928c 6.248-6.248, 16.384-6.248, 22.632,0
|
472 |
C 512.68,301.344, 512.68,311.48, 506.44,317.728z M 320.88,46.488c-1.152-22.248-27.096-46.408-64.064-46.408
|
473 |
c-37.824,0-64.176,25.28-64.176,47.936c0,22.672, 26.352,47.92, 64.176,47.92c 36.968,0, 62.912-24.128, 64.064-46.392L 320.88,46.488 z" />
|
474 |
+
<glyph unicode="" d="M 507.424,290.168L 323.344,475.176c-3.968,3.984-9.688,5.608-15.16,4.248c-5.456-1.328-9.8-5.424-11.472-10.784
|
475 |
c-11.080-35.656-12.36-67.92-3.896-97.344c-0.776-0.536-1.52-1.12-2.208-1.808L 205.056,283.952c-27.6,12.8-57.272,19.728-86.848,19.728
|
476 |
c-18.8,0-37.232-2.784-54.784-8.232c-5.344-1.672-9.44-6-10.784-11.424c-1.344-5.44, 0.232-11.168, 4.184-15.144l 109.488-110.192
|
477 |
L 13.232,3.168l-13.312-35.064l 32.184,12.44l 156.68,155.52l 110.912-111.632c 3.032-3.064, 7.144-4.72, 11.344-4.72
|
482 |
c-8.416,12.864-18.232,25.088-29.512,36.376c-11.232,11.232-23.504,21.128-36.48,29.664l 72.064,72.048c 7.352-12.784, 16.832-25, 28.504-36.664
|
483 |
c 11.928-11.92, 24.544-21.568, 37.8-29.032L 300.112,201.728z M 357.312,325.776c-30.768,30.768-42.624,65.064-36.344,106.44l 143.456-144.2
|
484 |
C 423.096,282.088, 388.624,294.464, 357.312,325.776z" />
|
485 |
+
<glyph unicode="" d="M 480,440.048L 32,440.048 c-17.592,0-32-14.408-32-32l0-368.096 c0-17.592, 14.408-32, 32-32l 448,0 c 17.592,0, 32,14.408, 32,32L 512,408.048
|
486 |
C 512,425.64, 497.592,440.048, 480,440.048z M 480,39.952L 32,39.952 L 32,134.232 l 128.424,124.456l 132.392-132.248c 5.456-6.624, 15.168-5.784, 22.064-0.56
|
487 |
l 58.44,52.904L 478.72,70.592c 0.4-0.4, 0.848-0.696, 1.28-1.040L 480,39.952 z M 480,115.104L 385.984,211.312
|
488 |
c-5.704,5.624-14.64,6.2-20.968,1.376l-60.28-52.512L 172.264,291.216c-2.832,3.424-6.92,5.512-11.344,5.8
|
489 |
c-4.408,0.16-8.752-1.28-11.984-4.312L 32,178.904L 32,408.048 l 448,0 L 480,115.104 z M 368,279.936c 17.64,0, 31.92,14.304, 31.92,31.92
|
490 |
c0,17.608-14.28,31.912-31.92,31.912s-31.92-14.304-31.92-31.912C 336.080,294.24, 350.36,279.936, 368,279.936z" />
|
491 |
+
<glyph unicode="" d="M 496.592,412.496L 336.112,479.032L 176.392,415.816L 15.408,479
|
492 |
c-1.376,0.408-2.72,0.56-3.984,0.56C 4.856,479.592,0,474.688,0,467.312l0-415 c0-8.784, 6.936-17.936, 15.408-20.28l 161.168-63.592
|
493 |
l 159.504,64.752l 160.512-63.064c 1.376-0.376, 2.72-0.56, 3.984-0.56c 6.56,0, 11.424,4.872, 11.424,12.248L 512,392.184
|
494 |
C 512,400.968, 505.064,410.128, 496.592,412.496z M 192,389.432l 128,50.152l0-380.752 l-128-50.592L 192,389.432 z M 32,436.656l 128-47.288l0-380.88 L 32,60.624L 32,436.656 z
|
495 |
M 480,11l-128,48.192L 352,439.104 l 128-55.192L 480,11 z" />
|
496 |
+
<glyph unicode="" d="M 10.92,329.096l 237.544-129.36c 2.392-1.296, 5.016-1.952, 7.656-1.952c 2.608,0, 5.216,0.64, 7.592,1.92l 240.048,129.36
|
497 |
c 5.232,2.816, 8.488,8.312, 8.408,14.264c-0.080,5.968-3.456,11.376-8.752,14.080L 265.856,478.048c-4.528,2.296-9.872,2.312-14.44,0.032
|
498 |
L 11.392,357.44c-5.312-2.672-8.72-8.080-8.816-14.032S 5.704,331.936, 10.92,329.096z M 258.576,445.856L 461.656,342.72L 256.168,231.984
|
499 |
L 53.080,342.576L 258.576,445.856z M 500.672,239.84l-47.488,24.112l-34.28-18.488l 40-20.312L 253.424,114.424L 50.328,225.016l 42.656,21.44L 58.8,265.080
|
502 |
M 500.672,127.84l-44.984,22.112l-34.28-18.488l 37.504-18.312L 253.424,2.424L 50.328,113.016l 39.656,17.936l-34.184,18.624L 8.64,127.872
|
503 |
c-5.312-2.672-8.72-8.080-8.816-14.032s 3.128-11.472, 8.344-14.312l 237.544-129.36c 2.392-1.296, 5.016-1.952, 7.656-1.952
|
504 |
c 2.608,0, 5.216,0.64, 7.592,1.92l 240.048,129.36c 5.232,2.816, 8.488,8.312, 8.408,14.264C 509.344,119.736, 505.968,125.144, 500.672,127.84z" />
|
505 |
+
<glyph unicode="" d="M 511.368,8.68l-41.704,251.888c-3.72,32.656-33.488,59.216-66.36,59.216l-35.328,0 l0,42.64 c0,65.080-46.424,118.016-111.488,118.016
|
506 |
c-65.048,0-112.472-52.936-112.472-118.016l0-42.64 L 105.68,319.784 c-32.872,0-62.64-26.56-66.264-58.528l-38.64-252.080
|
507 |
c-1.488-13.28, 1.112-23.752, 7.704-31.144c 6.216-6.952, 15.264-10.488, 26.872-10.488l 436.784,0 c 16.456,0, 25.888,6.608, 30.92,12.16
|
508 |
C 507.664-15.192, 512.88-6.224, 511.368,8.68z M 176.024,362.432c0,47.424, 33.064,86.016, 80.472,86.016s 79.488-38.592, 79.488-86.016l0-42.64
|
510 |
l 38.344,0 l0-36.464 C 134.488,245.784, 128,235.576, 128,223.752c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32c0,11.808-6.464,22-15.976,27.544l0,36.496 l 159.952,0
|
511 |
l0-36.496 C 326.472,245.752, 320,235.552, 320,223.752c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32c0,11.824-6.488,22.032-16.024,27.576l0,36.464 l 35.328,0
|
512 |
c 16.832,0, 32.656-14.128, 34.704-31.72l 41.672-251.64C 479.88,2.384, 478.272-0.224, 473.584-0.224z" />
|
513 |
+
<glyph unicode="" d="M 464.752,272.792c0,84.392-44.488,160.936-118.984,204.784c-7.624,4.504-17.44,1.936-21.904-5.688
|
514 |
c-4.472-7.608-1.936-17.424, 5.688-21.904c 64.624-38.016, 103.2-104.264, 103.2-177.184c0-121.184-87.968-209.144-209.16-209.144
|
515 |
c-27.096,0-53.392,5.080-78.16,15.080c-8.184,3.328-17.528-0.64-20.832-8.832c-3.312-8.2, 0.64-17.528, 8.832-20.832
|
516 |
c 28.608-11.56, 58.936-17.424, 90.16-17.424c 0.096,0, 0.192,0.008, 0.288,0.008l0-31.504 l-46.464,0 c-9.232,0-16.72-7.152-16.72-15.976
|
519 |
c-97.344,0-176.232-79.376-176.232-176.704s 78.888-175.72, 176.232-175.72C 320.816,95.632, 399.688,174.024, 399.688,271.352z M 79.248,271.352
|
520 |
c0,79.512, 64.704,144.704, 144.232,144.704c 79.512,0, 144.2-65.184, 144.2-144.704s-64.688-143.72-144.2-143.72
|
521 |
C 143.952,127.632, 79.248,191.832, 79.248,271.352z" />
|
522 |
+
<glyph unicode="" d="M 512.512,224c0,136.008-106.832,247.552-241.16,255.512c-2.768,0.304-5.544,0.504-8.36,0.504c-0.832,0-1.664-0.088-2.496-0.112
|
523 |
C 259,479.928, 257.512,480.016, 256,480.016C 114.56,480.016-0.512,365.168-0.512,224c0-141.168, 115.072-256.016, 256.512-256.016
|
524 |
c 1.512,0, 3,0.088, 4.504,0.12c 0.832-0.032, 1.664-0.12, 2.496-0.12c 2.816,0, 5.592,0.2, 8.36,0.504
|
525 |
C 405.68-23.552, 512.512,87.976, 512.512,224z M 464.784,141.584c-8.816,2.56-30.96,8.12-70.032,12.696c 3.232,22.096, 5,45.448, 5,69.72
|
539 |
c 11.632,2.472, 32.456,6.232, 63.296,9.464c 12.144-44.856, 31.896-82.808, 55.568-109.984C 128.848,31.664, 86.76,67.68, 60.544,113.824z
|
540 |
M 345.328,18.408c 19.112,26.632, 34.24,62.512, 43.648,104.4c 31.704-3.64, 51.608-7.896, 61.648-10.432
|
541 |
C 426.616,70.84, 389.696,37.68, 345.328,18.408z" />
|
542 |
+
<glyph unicode="" d="M 112,424L 16,424 C 7.168,424,0,416.832,0,408l0-96 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 32,392 l 80,0
|
543 |
c 8.832,0, 16,7.168, 16,16S 120.832,424, 112,424z M 496,152c-8.832,0-16-7.168-16-16l0-80 L 400,56 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 96,0 c 8.832,0, 16,7.168, 16,16
|
544 |
L 512,136 C 512,144.832, 504.832,152, 496,152z M 112,56L 32,56 L 32,136 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-96 c0-8.832, 7.168-16, 16-16l 96,0 c 8.832,0, 16,7.168, 16,16
|
545 |
S 120.832,56, 112,56z M 496,424L 400,424 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 80,0 l0-80 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 512,408 C 512,416.832, 504.832,424, 496,424z" />
|
546 |
+
<glyph unicode="" d="M 480.080,376l-240,0 l-48,48l-160,0 c-17.672,0-32-14.328-32-32l0-80 l-0.152,0 l0-32 l 0.152,0 l0-224
|
547 |
c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32L 512.080,344 C 512.080,361.672, 497.752,376, 480.080,376z M 32.072,392l 145.376,0 l 39.312-38.624L 226.816,344L 480.080,344
|
548 |
l0-32 l-448,0 L 32.080,392 z M 32.072,56L 32.072,280 l 448,0 l0-224 L 32.072,56 z" />
|
549 |
+
<glyph unicode="" d="M 400,343.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,351.024, 391.168,343.856, 400,343.856z
|
550 |
M 400,247.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,255.024, 391.168,247.856, 400,247.856z
|
551 |
M 400,151.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,159.024, 391.168,151.856, 400,151.856z
|
552 |
M 400,55.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,63.024, 391.168,55.856, 400,55.856z
|
556 |
M 80,55.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 64,63.024, 71.168,55.856, 80,55.856z M 480,472.048
|
557 |
L 32,472.048 c-17.592,0-32-14.408-32-32l0-432.096 c0-17.592, 14.408-32, 32-32l 448,0 c 17.592,0, 32,14.408, 32,32L 512,440.048 C 512,457.64, 497.592,472.048, 480,472.048z M 480,7.952L 32,7.952
|
558 |
L 32,440.048 l 448,0 L 480,7.952 z" />
|
559 |
+
<glyph unicode="" d="M 50.936,314.872c-9.064,0-16.384-7.328-16.384-16.384c0-9.048, 7.32-16.384, 16.384-16.384c 151.504,0, 262.672-112.184, 262.672-263.68
|
560 |
c0-9.048, 7.328-16.376, 16.384-16.376s 16.384,7.328, 16.384,16.376C 346.376,188.608, 221.112,314.872, 50.936,314.872z M 51.080,478.688
|
561 |
c-9.056,0-16.384-7.328-16.384-16.384c0-9.056, 7.328-16.384, 16.384-16.384c 235.088,0, 426.336-191.248, 426.336-426.328
|
562 |
c0-9.048, 7.328-16.376, 16.384-16.376s 16.384,7.328, 16.384,16.376C 510.176,272.736, 304.224,478.688, 51.080,478.688z M 92.008,150.2
|
563 |
c-49.736,0-90.184-40.56-90.184-90.44c0-49.856, 40.456-90.456, 90.184-90.456s 90.2,40.592, 90.2,90.456
|
564 |
C 182.208,109.64, 141.744,150.2, 92.008,150.2z M 92.008,0.984c-32.304,0-58.584,26.376-58.584,58.784s 26.28,58.768, 58.584,58.768
|
565 |
c 32.312,0, 58.608-26.36, 58.608-58.768S 124.32,0.984, 92.008,0.984z" />
|
566 |
+
<glyph unicode="" d="M 511.92,193.728c 0.048,10.528-1.608,50.248-2.872,61.608
|
567 |
C 494.488,385.712, 388.672,480.336, 257.456,480.336c-136.672,0-247.408-105.312-254.92-244.952c-0.16-3.048-1.28-24.672-1.36-37.544l-0.040-7.16
|
568 |
c-0.656-2.96-1.056-6.016-1.056-9.168l0-107.328 c0-23.44, 19.064-42.504, 42.504-42.504l 43.144,0 c 23.44,0, 42.512,19.064, 42.512,42.504L 128.24,181.504
|
569 |
c0,23.44-19.080,42.504-42.512,42.504L 42.576,224.008 c-2.944,0-5.816-0.304-8.592-0.872c 0.24,5.192, 0.456,9.288, 0.512,10.528
|
575 |
c0-5.8-4.72-10.504-10.512-10.504L 42.576,63.672 c-5.8,0-10.504,4.704-10.504,10.504L 32.072,181.504 C 32.080,187.304, 36.784,192.008, 42.576,192.008z
|
576 |
M 416.264,181.504c0,5.8, 4.704,10.504, 10.504,10.504l 42.64,0 c 5.8,0, 10.512-4.704, 10.512-10.504l0-106.832 c0-5.8-4.72-10.504-10.512-10.504
|
577 |
l-42.64,0 c-5.8,0-10.504,4.704-10.504,10.504L 416.264,181.504 z" />
|
578 |
+
<glyph unicode="" d="M 511.92,177.72c 0.048,10.528-1.608,50.248-2.872,61.608C 494.488,369.704, 388.672,464.328, 257.456,464.328
|
579 |
c-136.672,0-247.408-105.312-254.92-244.952c-0.16-3.048-1.28-24.672-1.36-37.544l-0.040-7.16c-0.656-2.96-1.056-6.016-1.056-9.168
|
580 |
l0-139.328 c0-23.44, 19.064-42.504, 42.504-42.504l 43.144,0 c 23.44,0, 42.512,19.064, 42.512,42.504L 128.24,165.496 c0,23.44-19.080,42.504-42.512,42.504L 42.568,208
|
581 |
c-2.944,0-5.816-0.304-8.592-0.872c 0.24,5.192, 0.456,9.296, 0.512,10.528C 41.080,340.048, 138.056,432.328, 257.456,432.328
|
585 |
l0-139.328 c0-5.808-4.72-10.504-10.512-10.504L 42.568,15.664 c-5.8,0-10.504,4.704-10.504,10.504L 32.064,165.496 C 32.080,171.296, 36.784,176, 42.568,176z
|
586 |
M 479.92,26.672c0-5.8-4.72-10.504-10.512-10.504l-42.64,0 c-5.8,0-10.504,4.704-10.504,10.504L 416.264,165.496 c0,5.8, 4.704,10.504, 10.504,10.504
|
587 |
l 42.64,0 c 5.8,0, 10.512-4.704, 10.512-10.504L 479.92,26.672 z" />
|
588 |
+
<glyph unicode="" d="M 255.2-31.352c-96.656,0-175.296,77.56-175.296,172.888c0,111.344, 155.816,322.424, 162.456,331.36
|
589 |
c 3,4.032, 7.704,6.424, 12.736,6.456c 5.592,0.048, 9.784-2.296, 12.832-6.28c 6.704-8.768, 164.168-216.112, 164.168-331.528
|
590 |
C 432.096,46.208, 352.736-31.352, 255.2-31.352z M 255.376,436.152c-37.2-52.832-143.472-211.032-143.472-294.608
|
591 |
c0-77.688, 64.28-140.888, 143.296-140.888c 79.888,0, 144.888,63.2, 144.888,140.888C 400.096,228.224, 293.016,384.056, 255.376,436.152z" />
|
592 |
+
<glyph unicode="" d="M 511.488,225.008L 452.736,428.552c-1.92,6.936-8.232,11.736-15.424,11.736L 69.64,440.288 c-7.248,0-13.592-4.872-15.472-11.888L 0.472,235.224
|
593 |
c-0.992-3.752-0.504-7.504, 1-10.768C 0.608,221.56,0,218.544,0,215.368l0-175.656 c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32L 512,215.368
|
594 |
c0,0.856-0.184,1.664-0.248,2.504C 512.168,220.168, 512.16,222.592, 511.488,225.008z M 81.952,408.288l 343.184,0 l 46.56-160.92L 322.528,247.368
|
595 |
c-0.72-38.408-27.952-64.84-66.528-64.84s-65.312,26.44-66.032,64.84L 37.080,247.368 L 81.952,408.288z M 480,39.712L 32,39.712 L 32,215.368 l 131.56,0
|
596 |
c 13.968-40.216, 47.888-64.84, 92.44-64.84s 78.968,24.624, 92.936,64.84L 480,215.368 L 480,39.712 z" />
|
597 |
+
<glyph unicode="" d="M 384,480L 208,480 c-17.672,0-32-14.328-32-32l 176,0 l0-128 l 128,0 l0-256 L 368,64 l0-32 l 112,0 c 17.672,0, 32,14.328, 32,32L 512,351.992 L 384,480z M 384,352L 384,434.752 L 466.736,352L 384,352 z M 32,416
|
598 |
c-17.672,0-32-14.328-32-32l0-384 c0-17.672, 14.328-32, 32-32l 272,0 c 17.672,0, 32,14.328, 32,32L 336,287.992 L 208,416L 32,416 z M 304,0L 32,0 L 32,384 l 144,0 l0-128 l 128,0 L 304,0 z M 208,288L 208,370.752
|
599 |
L 290.736,288L 208,288 z" />
|
600 |
+
<glyph unicode="" d="M 508.528,386.968L 458.68,442.64c-3.032,3.424-7.392,5.376-11.968,5.376L 271.584,448.016 L 271.584,465 c0,8.28-7.168,15-16,15
|
601 |
c-8.832,0-16-6.72-16-15l0-16.984 L 111.68,448.016 c-8.84,0-16-7.16-16-16l0-111.832 c0-8.84, 7.16-16, 16-16l 127.904,0 l0-32.048 L 65.288,272.136
|
602 |
c-4.576,0-8.936-1.952-11.968-5.376l-49.84-56.656c-5.376-6.064-5.376-15.184,0-21.248l 49.84-56.144c 3.056-3.424, 7.392-4.872, 11.968-4.872
|
603 |
l 174.296,0 l0-144.84 c0-8.28, 7.168-15, 16-15c 8.832,0, 16,6.72, 16,15L 271.584,127.84 l 128.232,0 c 8.84,0, 16,7.16, 16,16L 415.816,256.144 c0,8.84-7.16,16-16,16
|
604 |
L 271.584,272.144 l0,32.048 l 175.128,0 c 4.576,0, 8.936,1.952, 11.968,5.376l 49.848,56.16C 513.896,371.784, 513.896,380.904, 508.528,386.968z M 383.824,159.84
|
605 |
L 72.48,159.84 l-35.64,39.64l 35.64,40.656l 311.344,0 L 383.824,159.84 z M 439.52,336.184L 127.68,336.184 L 127.68,416.016 l 311.84,0 l 35.64-39.672L 439.52,336.184z" />
|
606 |
+
<glyph unicode="" d="M 483.456,330.92l-89.56,96C 390.856,430.16, 386.624,432, 382.184,432L 248.624,432 l-0.504,33c0,8.28-7.168,15-16,15
|
607 |
c-8.832,0-15-6.72-15-15L 216.632,432L 40.248,432 c-8.84,0-16-7.16-16-16l0-192 c0-8.84, 7.16-16, 16-16l 176.168,0 l0-225
|
608 |
c0-8.28, 7.168-15, 16-15c 8.832,0, 16,6.72, 16,15L 248.416,208 l 133.768,0 c 4.44,0, 8.672,1.84, 11.704,5.080l 89.56,96
|
609 |
C 489.184,315.232, 489.184,324.768, 483.456,330.92z M 375.232,240L 56.248,240 L 56.248,400 l 318.984,0 l 74.64-80L 375.232,240z" />
|
610 |
+
<glyph unicode="" d="M 509.36,332.264L 439.424,465.984C 435.344,473.784, 424.792,480.16, 416,480.16L 255.032,480.16 c-0.176,0.008-0.352,0.056-0.528,0.064
|
611 |
c-0.144,0-0.28-0.056-0.424-0.064L 96,480.16 c-8.8,0-19.376-6.36-23.512-14.128L 2.736,334.888c-4.144-7.768-3.312-19.968, 1.816-27.128
|
612 |
L 244.56-26.816c 2.576-3.592, 6-5.408, 9.416-5.408c 3.392,0, 6.792,1.768, 9.384,5.296L 507.312,305.2
|
613 |
C 512.504,312.296, 513.44,324.472, 509.36,332.264z M 471.184,336.184L 385.456,336.184 l 34.328,98.304L 471.184,336.184z M 287.672,448.16l 102.984,0 l-31.944-91.464
|
614 |
L 287.672,448.16z M 334.12,336.184L 185.296,336.184 l 70.336,101.048L 334.12,336.184z M 156.944,351.456L 124.856,448.16l 99.408,0 L 156.944,351.456z
|
615 |
M 340.376,304.184L 254.36,57.912L 172.632,304.184L 340.376,304.184 z M 218.464,64.456L 46.496,304.184l 92.416,0 L 218.464,64.456z M 374.272,304.184l 92.584,0
|
616 |
L 290.368,63.904L 374.272,304.184z M 94.24,438.792l 34.048-102.608L 39.664,336.184 L 94.24,438.792z" />
|
617 |
+
<glyph unicode="" d="M 416.28,272.104c-4.168,0-17.6,0.080-32.152,0.184l 0.056,31.984c0,17.672-14.328,32-32,32
|
618 |
l-320.248,0.080c-17.672,0-32-14.328-32-32l0-240.472 c0-53.016, 42.984-96, 96-96l 192.328,0 c 53.016,0, 95.504,42.984, 95.504,96l 0.032,16.424
|
619 |
c 14.512-0.112, 29.304-0.2, 32.488-0.2c 52.888,0, 95.784,42.52, 95.784,95.536C 512.064,228.664, 469.168,272.104, 416.28,272.104z
|
620 |
M 351.768,63.88c0-35.296-28.2-64-63.504-64L 95.936-0.12 c-35.296,0-64,28.704-64,64L 31.888,304.352l 0.048,0 l 320.248-0.096L 351.768,63.88z
|
623 |
s-16-7.168-16-16l0-80 C 271.936,375.28, 279.104,368.12, 287.936,368.12z M 95.936,368.12c 8.832,0, 16,7.168, 16,16l0,80 c0,8.832-7.168,16-16,16
|
624 |
s-16-7.168-16-16l0-80 C 79.936,375.28, 87.104,368.12, 95.936,368.12z M 191.936,368.12c 8.832,0, 16,7.168, 16,16l0,80 c0,8.832-7.168,16-16,16
|
625 |
s-16-7.168-16-16l0-80 C 175.936,375.28, 183.104,368.12, 191.936,368.12z" />
|
626 |
+
<glyph unicode="" d="M 366.592,339.864l-156.576-67.32c-2.832-1.44-5.128-3.736-6.576-6.576L 131.712,121.36
|
627 |
c-2.936-5.768-1.872-12.768, 2.656-17.392c 2.904-2.952, 6.816-4.512, 10.768-4.512c 2.216,0, 4.472,0.488, 6.56,1.504l 152.864,63.488
|
628 |
c 2.8,1.344, 5.112,3.528, 6.608,6.248l 75.44,148.448c 3.216,5.8, 2.264,13.016-2.328,17.784C 379.672,341.696, 372.488,342.864, 366.592,339.864
|
629 |
z M 178.928,147.592l 43.504,88.84l 43.936-54.992L 178.928,147.592z M 292.352,200.192l-44.4,55.576l 88.392,34.88L 292.352,200.192z M 256,480
|
630 |
C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504
|
631 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z" />
|
632 |
+
<glyph unicode="" d="M 500.176,94.192c-7.832,5.504-93.528,62.488-104.032,68.904
|
633 |
c-4.576,2.8-10.16,4.168-16.232,4.168c-7.832,0-16.504-2.28-24.968-6.736c-8.248-4.344-33.232-18.56-45.456-25.544
|
634 |
c-10.768,7.56-36.064,26.936-75.92,66.832c-39.608,39.592-59.16,65.096-66.768,75.92c 6.968,12.216, 21.168,37.2, 25.488,45.424
|
635 |
c 8.184,15.504, 9.112,30.984, 2.472,41.424c-6.232,9.84-62.984,95.904-68.84,104c-5.512,7.64-15.408,11.768-26.144,11.768
|
646 |
l-5.848-0.136c-0.112,0-0.2-0.048-0.328-0.064L 379.384,480.112c-6.464-0.144-11.808-5.488-11.96-11.96l-0.016-8.208
|
647 |
c 0.984-7.616, 6.968-12.080, 13.44-11.936l 75.624-0.2L 319.328,311.496c-6.248-6.248-6.248-16.384,0-22.632
|
648 |
C 325.576,282.624, 335.704,282.624, 341.952,288.864z" />
|
649 |
+
<glyph unicode="" d="M 500.176,94.192c-7.832,5.504-93.528,62.488-104.032,68.904
|
650 |
c-4.576,2.8-10.16,4.168-16.232,4.168c-7.832,0-16.504-2.28-24.968-6.736c-8.248-4.344-33.232-18.56-45.456-25.544
|
651 |
c-10.768,7.56-36.064,26.936-75.92,66.832c-39.608,39.592-59.16,65.096-66.768,75.92c 6.968,12.216, 21.168,37.2, 25.488,45.424
|
652 |
c 8.184,15.504, 9.112,30.984, 2.472,41.424c-6.232,9.84-62.984,95.904-68.84,104c-5.512,7.64-15.408,11.768-26.144,11.768
|
663 |
c 6.248,6.248, 6.248,16.384,0,22.632c-6.248,6.24-16.376,6.24-22.624,0L 350.84,342.744L 351.28,420.16c 0.144,6.464-4.984,12.096-11.448,11.944
|
664 |
l-8.208-0.008c-6.48-0.16-11.832-4.008-11.968-10.472l-0.328-115.504c0-0.112, 0.44-0.192, 0.44-0.304l-0.64-5.856
|
665 |
C 319.064,296.712, 319.824,293.824, 321.92,291.744z" />
|
666 |
+
<glyph unicode="" d="M 480.848,380.224c0-0.528-0.048-0.968-0.112-1.312c-13.080-9-86.216-57.312-99.888-66.080c-1.44-0.032-5.096,0.456-10.312,3.2
|
667 |
c-5.56,2.92-21.768,12.016-44.44,24.952l-17.64,10.064l-16.624-11.672c-12.36-8.704-39.232-29.408-80.144-70.312
|
668 |
c-41.088-41.080-61.728-67.856-70.384-80.168l-11.672-16.624l 10.080-17.64c 9.768-17.096, 21.472-37.752, 25-44.472
|
669 |
c 2.84-5.392, 3.064-9.080, 3.064-10.080c0-0.16,0-0.296-0.016-0.408c-7.68-12.248-57.296-86.968-66.336-100.16
|
675 |
c-4.344,8.248-18.56,33.232-25.544,45.456c 7.56,10.768, 26.936,36.064, 66.832,75.92c 39.592,39.608, 65.096,59.16, 75.92,66.768
|
676 |
c 12.216-6.968, 37.2-21.168, 45.424-25.488c 15.504-8.184, 30.984-9.112, 41.424-2.472c 9.84,6.232, 94.904,62.984, 103,68.84
|
677 |
C 507.728,359.6, 511.848,369.496, 511.848,380.224L 511.848,380.224z" />
|
678 |
+
<glyph unicode="" d="M 480,480.048L 32,480.048 c-17.592,0-32-14.408-32-32l0-448.096 c0-17.592, 14.408-32, 32-32l 448,0
|
679 |
c 17.592,0, 32,14.408, 32,32L 512,448.048 C 512,465.64, 497.592,480.048, 480,480.048z M 480-0.048L 32-0.048 L 32,448.048 l 448,0 L 480-0.048 z M 112,303.848l 32,0 l0-32 c0-8.832, 7.168-16, 16-16
|
680 |
s 16,7.168, 16,16l0,32 l 32,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-32,0 l0,32 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-32 l-32,0 c-8.832,0-16-7.168-16-16
|
681 |
S 103.168,303.848, 112,303.848z M 216.568,184.424c-6.248,6.248-16.376,6.248-22.624,0L 160,150.488l-33.944,33.936
|
684 |
l-33.936,33.936l 33.936,33.936C 222.816,168.040, 222.816,178.168, 216.568,184.424z M 304,303.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,335.848
|
685 |
c-8.832,0-16-7.168-16-16S 295.168,303.848, 304,303.848z M 304,143.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,175.848 c-8.832,0-16-7.168-16-16
|
686 |
S 295.168,143.848, 304,143.848z M 304,79.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,111.848 c-8.832,0-16-7.168-16-16S 295.168,79.848, 304,79.848z" />
|
687 |
+
<glyph unicode="" d="M 212.408,140.328c 115.472,0, 204.952,65.952, 203.576,163.816c0,86.592-91.608,155.816-207.080,155.816
|
688 |
c-115.488,0-209.080-69.224-209.080-155.816c0-53.936, 26.456-111.44, 81.704-139.688c0-0.328-0.096-0.576-0.096-0.936
|
689 |
c0-23.44-19.512-55.576-27.2-68.832l 0.032,0 c-0.608-1.44-0.976-3-0.976-4.672c0-6.56, 5.288-11.832, 11.848-11.832
|
690 |
c 0.968,0, 2.544,0.2, 3.112,0.2c 0.16,0, 0.216,0, 0.2-0.048c 40.832,6.672, 101.128,52.624, 110.064,63.512
|
699 |
c 7.744-9.392, 51.112-50.752, 86.408-56.504c-0.016,0.032, 0.032,0.032, 0.184,0.032c 0.472,0, 1.84-0.168, 2.672-0.168
|
700 |
c 5.672,0, 10.248,4.56, 10.248,10.232c0,1.44-0.328,2.8-0.84,4.032l 0.032,0 c-6.64,11.44-17.064,44.872-17.064,65.128
|
701 |
c0,0.312-0.096,0.528-0.096,0.816C 490.048,92.672, 512.168,128.296, 512.168,174.904z" />
|
702 |
+
<glyph unicode="" d="M 480.008,384.264L 352.208,384.264 L 352.208,415.264 c0,26.472-21.528,48-48,48L 207.992,463.264 c-26.472,0-48-21.528-48-48l0-31 L 32.008,384.264 c-17.592,0-32-14.408-32-32l0-112.128
|
703 |
l-0.016,0 l0-32 l 0.016,0 l0-191.408 c0-17.592, 14.408-32, 32-32l 448,0 c 17.592,0, 32,14.408, 32,32L 512.008,352.264 C 512.008,369.856, 497.6,384.264, 480.008,384.264z
|
704 |
M 191.992,415.264c0,8.832, 7.168,16, 16,16l 96.216,0 c 8.832,0, 16-7.168, 16-16l0-31 L 191.992,384.264 L 191.992,415.264 z M 32.008,352.264l 448,0 l0-112.128 L 303.824,240.136 l0,16.376
|
705 |
c0,17.64-14.36,32-32,32l-31.872,0 c-17.64,0-32-14.36-32-32l0-16.376 L 32.008,240.136 L 32.008,352.264 z M 271.848,175.936l-31.904,0 L 239.944,256.512 l 31.872,0 L 271.848,175.936z
|
706 |
M 32.008,16.736L 32.008,208.144 l 175.936,0 l0-32.2 c0-17.64, 14.36-32, 32-32l 31.872,0 c 17.64,0, 32,14.36, 32,32l0,32.2 l 176.184,0 l0-191.408 L 32.008,16.736 z" />
|
707 |
+
<glyph unicode="" d="M 476.040,479.224L 264.52,421.928c-5.376-1.44-17.048-1.424-22.408,0.080L 36.040,479.112
|
708 |
C 17.648,484.176-0.168,470.912-0.168,451.976l0-389.056 c0-16.048, 12.168-31.392, 27.656-35.704l 206.080-57.112c 5.512-1.528, 12.608-2.376, 19.968-2.376
|
709 |
c 5.048,0, 12.504,0.392, 19.36,2.264l 211.512,57.296c 15.528,4.2, 27.752,19.512, 27.752,35.624L 512.16,451.976 C 512.168,470.896, 494.352,484.208, 476.040,479.224
|
710 |
z M 240,1.528L 35.536,58.056c-1.544,0.424-3.704,3.248-3.704,4.856L 31.832,446.928 l 201.736-55.768c 1.952-0.544, 4.144-0.968, 6.432-1.328L 240,1.528 z
|
721 |
c 6.984,0, 13.408,4.608, 15.392,11.672C 210.784,221.016, 205.832,229.848, 197.312,232.256z M 197.312,136.256l-111.968,31.512
|
722 |
c-8.456,2.36-17.344-2.576-19.736-11.080s 2.56-17.328, 11.080-19.736l 111.968-31.512c 1.44-0.408, 2.904-0.592, 4.344-0.592
|
723 |
c 6.984,0, 13.408,4.608, 15.392,11.672C 210.784,125.024, 205.832,133.848, 197.312,136.256z" />
|
724 |
+
<glyph unicode="" d="M 507.832,338c-2.984,4.232-7.832,6.752-13,6.752L 444.96,344.752 L 342.392,432.168c-12.488,12.488-32.76,12.504-45.248,0L 196.32,344.752
|
725 |
l-41.048,0 l-25.704,88.64c-10.080,34.904-34.032,38.672-43.856,38.672L 17.168,472.064 c-8.784,0-15.888-7.112-15.888-15.888s 7.112-15.888, 15.888-15.888l 68.528,0
|
726 |
c 2.168,0, 8.784,0, 13.296-15.592l 88.424-324.968c 1.92-6.856, 8.168-11.592, 15.296-11.592l 215.984,0 c 6.704,0, 12.688,4.2, 14.952,10.512
|
727 |
l 76.128,224.84C 511.528,328.36, 510.8,333.784, 507.832,338z M 319.768,409.536l 76.016-64.792L 243.728,344.744 L 319.768,409.536z M 407.512,119.904L 214.768,119.904
|
728 |
l-50.576,193.064l 308.048,0 L 407.512,119.904z M 376,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 398.096,55.936, 376,55.936z
|
729 |
M 232,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 254.096,55.936, 232,55.936z" />
|
730 |
+
<glyph unicode="" d="M 507.832,338c-2.984,4.232-7.832,6.752-13,6.752L 155.264,344.752 l-25.704,88.64
|
731 |
c-10.080,34.904-34.032,38.672-43.856,38.672L 17.168,472.064 c-8.784,0-15.888-7.112-15.888-15.888s 7.112-15.888, 15.888-15.888l 68.528,0
|
732 |
c 2.168,0, 8.784,0, 13.296-15.592l 88.424-324.968c 1.92-6.856, 8.168-11.592, 15.296-11.592l 215.984,0 c 6.704,0, 12.688,4.2, 14.952,10.512
|
733 |
l 76.128,224.84C 511.528,328.36, 510.8,333.784, 507.832,338z M 407.512,119.904L 214.768,119.904 l-50.576,193.064l 308.048,0 L 407.512,119.904z M 376,55.936
|
734 |
c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 398.096,55.936, 376,55.936z M 232,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40
|
735 |
s 40,17.904, 40,40S 254.096,55.936, 232,55.936z" />
|
736 |
+
<glyph unicode="" d="M 432,400.648L 336.408,400.648 L 336.408,431.336 c0,26.472-21.528,48-48,48l-63.816,0 c-26.472,0-48-21.528-48-48l0-30.688 L 80,400.648 c-17.672,0-32-14.328-32-32l0-367.984
|
737 |
c0-17.672, 14.328-32, 32-32l 352,0 c 17.672,0, 32,14.328, 32,32L 464,368.648 C 464,386.32, 449.672,400.648, 432,400.648z M 208.592,431.336c0,8.832, 7.168,16, 16,16l 63.816,0
|
738 |
c 8.832,0, 16-7.168, 16-16l0-30.688 L 208.592,400.648 L 208.592,431.336 z M 432,0.664L 80,0.664 L 80,368.648 l 96.592,0 l0-32.92 c0,0-0.424-15.984, 15.904-15.984
|
739 |
c 18,0, 16.096,15.984, 16.096,15.984l0,32.92 l 95.816,0 l0-32.92 c0,0-1.064-16.064, 15.936-16.064c 16,0, 16.064,16.064, 16.064,16.064l0,32.92 L 432,368.648 L 432,0.664 z
|
740 |
" />
|
741 |
+
<glyph unicode="" d="M 495.032,8.832c-0.168,0-0.36,0-0.544,0.016c-8.096,0.264-13.2,6.544-13.888,14.608c-0.544,5.936-16.984,149.544-241.128,149.392
|
742 |
l0-91.832 c0-6.184-3.56-11.832-9.168-14.472c-5.544-2.656-12.216-1.84-16.984,2.112L 5.832,240.544c-3.72,3.048-5.856,7.592-5.84,12.392
|
743 |
s 2.168,9.344, 5.888,12.376L 213.36,435.592c 4.784,3.904, 11.392,4.656, 16.968,2.048c 5.576-2.656, 9.144-8.28, 9.144-14.456l0-89.816
|
744 |
c 92.984-2.952, 165.496-32.856, 212.168-87.488c 75.968-88.888, 59.016-218.080, 58.216-223.456C 508.672,14.592, 502.92,8.832, 495.032,8.832z
|
745 |
M 223.472,205.096c 0.016,0, 0.032,0, 0.032,0c 160.112-0.096, 221.296-54.16, 256.232-101.904c-5.112,38.248-20.032,84.36-52.504,122.016
|
746 |
c-43.168,50.048-112.72,76.424-203.768,76.424c-8.84,0-16,7.16-16,16l0,71.888 L 41.248,252.84l 166.216-137.952l0,74.2
|
747 |
c0,4.248, 1.688,8.328, 4.704,11.328C 215.168,203.408, 219.232,205.096, 223.472,205.096z" />
|
748 |
+
<glyph unicode="" d="M 16.968,8.832c 0.168,0, 0.36,0, 0.544,0.016c 8.096,0.264, 13.2,6.544, 13.888,14.608c 0.544,5.936, 16.488,149.544, 240.624,149.392
|
749 |
l 0.504-91.832c0-6.184, 3.56-11.832, 9.168-14.472c 5.544-2.656, 12.216-1.84, 16.984,2.112l 207.488,171.888
|
750 |
c 3.72,3.048, 5.856,7.592, 5.84,12.392s-2.168,9.344-5.888,12.376L 298.64,435.592c-4.784,3.904-11.392,4.656-16.968,2.048
|
751 |
c-5.576-2.656-9.144-8.28-9.144-14.456l-0.504-89.816C 179.048,330.424, 107.040,300.512, 60.36,245.888
|
753 |
C 128.392,205, 67.2,150.936, 32.264,103.184c 5.112,38.248, 20.032,84.36, 52.504,122.016c 43.168,50.048, 112.72,76.424, 203.768,76.424
|
754 |
c 8.84,0, 16,7.16, 16,16l0,71.888 l 166.216-136.672L 304.528,114.888l0,74.2 c0,4.248-1.688,8.328-4.704,11.328
|
755 |
C 296.832,203.408, 292.768,205.096, 288.528,205.096z" />
|
756 |
+
<glyph unicode="" d="M 503.184,372.032c-5.392,2.488-11.792,1.544-16.28-2.424l-80.656-72.448l-72.816,74.704l 72.096,83.264
|
757 |
c 3.92,4.528, 4.872,10.768, 2.432,16.256s-7.832,8.848-13.76,8.848l-4.344,0 c-44.56,0-121.488-3.832-155.832-38.672l-6.928-6.88
|
758 |
c-36.64-37.384-43.144-98.688-23.84-145.288L 18.616,100.944c-24.896-25.24-24.896-66.16,0-91.408l 22.536-22.848
|
759 |
C 53.6-25.928, 69.92-32.24, 86.24-32.24c 16.312,0, 32.632,6.312, 45.072,18.928l 187.36,188.864c 17.72-9.576, 42-15.832, 62.392-15.832
|
764 |
c-7.712,31.192-3.216,74.304, 21.008,99.024l 6.896,6.96c 20.776,21.080, 74.728,27.312, 104.6,29.152l-58.68-67.768
|
765 |
c-5.248-6.064-4.984-15.2, 0.608-20.936L 394.72,265.28c 5.624-5.792, 14.72-6.128, 20.776-0.76l 65.304,58.816
|
766 |
C 478.856,291.656, 472.704,245.648, 452.832,225.496z" />
|
767 |
+
<glyph unicode="" d="M 512.16,225.208c0-8.832-7.144-15.992-15.984-15.992L 271.736,209.216 L 271.736,47.12
|
768 |
c0-43.576-35.456-79.040-79.048-79.040c-43.592,0-79.056,35.464-79.056,79.040c0,8.832, 7.16,15.992, 15.992,15.992s 15.992-7.16, 15.992-15.992
|
769 |
c0-25.952, 21.112-47.064, 47.080-47.064c 25.96,0, 47.080,21.112, 47.080,47.064L 239.776,209.216 L 15.832,209.216 c-8.832,0-15.992,7.168-15.992,15.992
|
770 |
c0,123.648, 90.456,202.056, 239.928,207.24L 239.768,463.936 c0,8.832, 7.16,15.984, 15.992,15.984c 8.84,0, 15.984-7.16, 15.984-15.984l0-31.488
|
771 |
C 421.248,427.272, 512.16,348.856, 512.16,225.208z M 479.576,241.192C 471.688,341.456, 390.128,400.752, 255.752,400.752
|
772 |
c-134.376,0-215.448-59.296-223.328-159.552L 479.576,241.2 z" />
|
773 |
+
<glyph unicode="" d="M 448.4,400.488L 335.76,400.488 L 335.76,444.12 c0,20.264-16.504,36.248-36.768,36.248L 213,480.368 c-20.264,0-36.76-15.984-36.76-36.248l0-43.632 L 63.6,400.488
|
774 |
c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 22.008,0 l 37.12-369.96c 1.552-17.312, 16.304-30.888, 33.568-30.888l 199.4,0 c 17.264,0, 32,13.576, 33.544,30.736
|
775 |
l 37.152,370.12l 22.008,0 c 8.84,0, 16,7.168, 16,16S 457.24,400.488, 448.4,400.488z M 208.24,444.12c0,2.616, 2.136,4.752, 4.76,4.752l 85.992,0
|
776 |
c 2.624,0, 4.768-2.136, 4.768-4.752l0-43.632 L 208.24,400.488 L 208.24,444.12 z M 357.384,1.4c-0.080-0.888-1.128-1.768-1.688-1.768L 156.296-0.368
|
777 |
c-0.56,0-1.616,0.872-1.712,1.92l-36.816,366.928l 276.456,0 L 357.384,1.4z" />
|
778 |
+
<glyph unicode="" d="M 511.992,271.864L 511.992,441.048 C 511.992,462.52, 494.52,480, 473.056,480L 307.464,479.976L 300.368,480
|
779 |
c-10.84,0-27.248,0-37.96-10.72L 9.44,216.304C 3.36,210.224,0,202.152,0,193.56c0-8.608, 3.344-16.688, 9.424-22.768l 193.4-193.36
|
780 |
C 208.88-28.656, 216.96-32, 225.552-32s 16.68,3.344, 22.744,9.424l 252.976,252.984C 512.12,241.232, 512.056,256.816, 511.992,271.864z
|
781 |
M 478.648,253.032L 225.44,0.064L 32.064,193.672L 284.76,446.424C 287.304,448, 296.464,448, 300.256,448l 7.2-0.024L 473.056,448
|
782 |
c 3.832,0, 6.936-3.12, 6.936-6.952l0-169.312 C 480.024,265.648, 480.056,255.464, 478.648,253.032z M 384.008,416c-35.344,0-64-28.656-64-64s 28.656-64, 64-64
|
783 |
s 64,28.656, 64,64S 419.352,416, 384.008,416z M 384.008,320c-17.672,0-32,14.328-32,32s 14.328,32, 32,32s 32-14.328, 32-32S 401.68,320, 384.008,320z" />
|
784 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224s 114.616-256, 256-256s 256,114.616, 256,256S 397.384,480, 256,480z
|
785 |
M 320,438.512c 72.112-21.496, 128.824-78.4, 150.352-150.512L 366.568,288 c-11.208,19.264-27.296,35.336-46.568,46.528L 320,438.512 z M 351.816,223.896
|
786 |
c0-52.968-42.896-95.904-95.816-95.904s-95.816,42.936-95.816,95.904S 203.088,319.808, 256,319.808S 351.816,276.864, 351.816,223.896z
|
787 |
M 224,445.536c 10.456,1.496, 21.128,2.312, 32,2.312c 10.864,0, 21.544-0.816, 32-2.312l0-97.904 c-10.24,2.648-20.928,4.2-32,4.2
|
792 |
C 234.248,97.552, 244.928,96, 256,96s 21.76,1.552, 32,4.2L 288,2.312 z M 320,9.336L 320,113.304 c 19.328,11.224, 35.448,27.368, 46.656,46.696l 103.736,0
|
793 |
C 448.896,87.832, 392.16,30.84, 320,9.336z M 379.752,192c 2.624,10.2, 4.080,20.88, 4.080,31.912c0,11.096-1.464,21.832-4.128,32.088l 97.704,0
|
794 |
c 1.504-10.496, 2.44-21.168, 2.44-32.080c0-10.848-0.92-21.488-2.416-31.92L 379.752,192 z" />
|
795 |
+
<glyph unicode="" d="M 342.952,288.408L 480.584,425.192l-0.448-77.536c-0.144-6.464, 4.984-12.088, 11.456-11.944
|
796 |
l 8.208,0.008c 6.472,0.152, 11.824,4, 11.96,10.464l 0.336,115.504c0,0.112-0.44,0.2-0.44,0.312l 0.632,5.856
|
797 |
c 0.064,3.248-0.696,6.144-2.792,8.216c-2.072,2.088-4.976,3.36-8.2,3.272l-5.848-0.136c-0.112,0-0.2-0.040-0.32-0.056
|
798 |
L 380.384,479.656c-6.464-0.144-11.816-5.488-11.96-11.96l-0.016-8.208c 0.984-7.624, 6.976-12.080, 13.44-11.936l 75.624-0.2L 320.328,311.040
|
810 |
C 7.472,479.432, 4.552,478.16, 2.496,476.072C 0.392,474-0.368,471.104-0.296,467.856L 0.336,462c0-0.112-0.44-0.192-0.44-0.312
|
811 |
l 0.336-115.504c 0.144-6.464, 5.488-10.312, 11.96-10.464l 8.712-0.008c 6.464-0.144, 11.592,5.48, 11.448,11.944L 31.912,424.768l 137.632-136.36
|
812 |
c 6.24-6.248, 16.376-6.248, 22.624,0c 6.248,6.248, 6.248,16.384,0,22.632L 55.024,447.336z" />
|
813 |
+
<glyph unicode="" d="M 191.6,306.6L 191.264,422.104c-0.144,6.464-5.496,10.312-11.96,10.464l-8.208,0.008
|
814 |
c-6.472,0.144-11.592-5.488-11.456-11.944l 0.448-77.624L 26.952,474.872c-6.248,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624
|
815 |
l 132.56-131.304l-75.544-0.2c-6.464,0.144-12.456-4.32-13.44-11.936l 0.016-8.208c 0.16-6.472, 5.504-11.824, 11.96-11.968l 114.752,0.504
|
816 |
c 0.128-0.008, 0.208-0.056, 0.32-0.056l 5.848-0.136c 3.224-0.088, 6.136,1.176, 8.2,3.272c 2.104,2.072, 2.856,4.976, 2.792,8.216
|
828 |
c-3.224,0.088-6.144-2.176-8.2-4.272c-2.104-2.072-2.856-4.968-2.792-8.216l 0.632-5.848c0-0.12-0.44-0.192-0.44-0.304
|
829 |
l 0.336-115.504c 0.144-6.464, 5.488-10.304, 11.96-10.464l 8.712-0.016c 6.472-0.144, 11.592,5.488, 11.448,11.952l-0.44,77.264l 133.632-131.512
|
830 |
c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.376,0,22.624L 375.032,127.552z" />
|
831 |
+
<glyph unicode="" d="M 201.152,227.072l 19.632,27.624l-67.152,91.64L 1.368,346.336 l0-32 l 135.744,0 L 201.152,227.072z
|
832 |
M 459.392,314.336l-38.768-34.768c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032c 4.688-4.472, 12.248-4.472, 16.912,0l 63.872,57.752
|
833 |
c 0.088,0.080, 0.192,0.096, 0.272,0.168l 4.232,4.048c 2.336,2.248, 3.504,5.184, 3.488,8.144c 0.016,2.936-1.152,5.888-3.488,8.112
|
834 |
l-4.232,4.048c-0.080,0.080-0.168,0.112-0.272,0.184l-64.864,59.216c-4.68,4.472-12.232,4.472-16.92,0l-2.736-4.032
|
838 |
l-38.608-34.624c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032c 4.688-4.472, 12.248-4.472, 16.912,0l 63.872,57.752
|
839 |
c 0.088,0.080, 0.192,0.096, 0.272,0.168l 4.232,4.048c 2.336,2.248, 3.504,5.184, 3.488,8.144c 0.016,2.936-1.152,5.888-3.488,8.112
|
840 |
L 502.904,53.616z" />
|
841 |
+
<glyph unicode="" d="M 450.92,5.312l-416,0 l0,320 l 128.8,0 l 32.36,31.168l-0.832,0.832L 34.92,357.312
|
842 |
c-17.672,0-32-14.328-32-32l0-320 c0-17.672, 14.328-32, 32-32l 416,0 c 17.672,0, 32,14.328, 32,32L 482.92,255.648 l-32-30.544L 450.92,5.312 z M 135.064,133.312l 32.24,0
|
843 |
c 22.432,127.248, 133.272,224, 266.944,224c 5.608,0, 10.928-0.048, 16.312-0.088l-58.624-58.616c-6.232-6.248-6.232-16.376,0-22.624
|
844 |
c 3.128-3.128, 7.232-4.688, 11.328-4.688s 8.168,1.56, 11.296,4.688l 94.512,97L 414.56,470c-6.232,6.248-16.36,6.248-22.624,0
|
845 |
c-6.232-6.248-6.232-16.376,0-22.624l 58.088-58.080c-5.016,0.008-9.984,0.024-15.104,0.024C 283.392,389.32, 158.136,278.344, 135.064,133.312z" />
|
846 |
+
<glyph unicode="" d="M 432,128c-26.344,0-49.648-12.792-64.216-32.44l-210.68,107.36
|
847 |
C 158.936,209.648, 160,216.688, 160,224c0,9.152-1.608,17.904-4.44,26.088L 367.44,352.896C 381.984,332.992, 405.448,320, 432,320
|
848 |
c 44.184,0, 80,35.824, 80,80c0,44.184-35.816,80-80,80S 352,444.184, 352,400c0-6.216, 0.784-12.232, 2.12-18.040L 139.2,277.672
|
849 |
C 124.56,293.808, 103.504,304, 80,304C 35.816,304,0,268.184,0,224c0-44.176, 35.816-80, 80-80c 25.448,0, 48.064,11.912, 62.712,30.432l 211.552-107.816
|
850 |
C 352.832,60.632, 352,54.424, 352,48c0-44.184, 35.816-80, 80-80s 80,35.816, 80,80S 476.184,128, 432,128z M 432,448c 26.504,0, 48-21.496, 48-48s-21.496-48-48-48
|
851 |
s-48,21.496-48,48S 405.496,448, 432,448z M 80,176c-26.512,0-48,21.496-48,48s 21.488,48, 48,48c 26.504,0, 48-21.496, 48-48S 106.504,176, 80,176z M 432,0
|
852 |
c-26.504,0-48,21.496-48,48s 21.496,48, 48,48s 48-21.496, 48-48S 458.504,0, 432,0z" />
|
853 |
+
<glyph unicode="" d="M 104.84,38.368c-10.056-20.904-16.4-34.832-72.344-36.864c 1.608,53.984, 11.896,59.776, 32.496,70.040
|
854 |
c 8.648,4.312, 19.416,9.672, 31.056,18.624L 76.568,115.040c-9.2-7.064-17.664-10.784-25.848-14.856c-34.32-17.112-50.496-33.968-50.496-114.328
|
855 |
l 0.272-16.352l 15.728,0.352c 84.816,0, 100.664,19.16, 116.552,52.16c 3.48,7.232, 5.416,12.12, 11.28,21.864l-23.728,21.552
|
856 |
C 113.216,55.728, 108.776,46.496, 104.84,38.368z M 352.48,385.672c-35.384,0-64.176-28.792-64.176-64.168c0-35.392, 28.8-64.176, 64.176-64.176
|
867 |
c-0.616,2.608-1.888,5.032-3.696,7.032c-29.424,32.608-73.872,81.904-77.28,85.816c-2.224,2.704-5.304,4.624-8.784,5.424l-73.296,16.768
|
868 |
l 35.952,38l 91.016,0 c 5.56,0, 10.728,2.888, 13.632,7.624c 7.040,11.464, 15.208,27.768, 24.672,46.648c 16.024,31.976, 35.96,74.272, 53.56,94.816
|
869 |
c 20.792,24.264, 41.912,39.504, 68.448,49.424c 59.048,22.064, 119.984,24.384, 147.84,24.176C 480.952,419.384, 479.84,350.976, 461,300.264z" />
|
870 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256.008,114.608, 256.008,256C 512.008,365.384, 397.392,480, 256,480z
|
871 |
M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224.008-100.488, 224.008-224S 379.512-0.504, 256-0.504z M 232.472,79.76l 40.256,0
|
872 |
l0,40.624 l-40.256,0 L 232.472,79.76 z M 255.528,368.232c-23.44,0-42.752-6.32-57.92-18.944c-15.168-12.632-22.544-37.928-22.168-58.888l 0.592-1.168l 36.72,0
|
873 |
c0,12.504, 4.168,30.472, 12.504,36.92c 8.328,6.44, 18.424,9.664, 30.28,9.664c 13.664,0, 24.168-3.712, 31.536-11.136
|
875 |
c-13.288-11.984-21.496-21.616-24.616-28.904c-3.128-7.296-4.752-20.384-4.872-39.256l 38.48,0 c0,11.84, 0.752,20.568, 2.248,26.168
|
876 |
c 1.488,5.592, 5.752,11.912, 12.784,18.944c 15.112,14.576, 27.248,28.832, 36.44,42.776c 9.168,13.928, 13.76,29.296, 13.76,46.096
|
877 |
c0,23.44-7.088,41.704-21.288,54.784C 301.104,361.696, 281.176,368.232, 255.528,368.232z" />
|
878 |
+
<glyph unicode="" d="M 287.8,433.296c-8.832,0-16-7.168-16-16s 7.168-16, 16-16C 401.024,401.296, 480,318.56, 480,205.344C 480,92.112, 387.888,0, 274.664,0
|
879 |
C 161.448,0, 78.704,81.8, 78.704,195.032c0,8.832-7.168,16-16,16s-16-7.168-16-16C 46.704,64.16, 143.8-32, 274.664-32S 512,74.472, 512,205.344
|
880 |
C 512,336.2, 418.664,433.296, 287.8,433.296z M 240.128,255.872L 240.128,464 c0,8.832-7.168,16-16,16C 99.504,480,0,380.496,0,255.872c0-8.832, 7.168-16, 16-16
|
881 |
l 208.128,0 C 232.96,239.872, 240.128,247.040, 240.128,255.872z M 208.128,271.872L 32.656,271.872 C 40.384,366.12, 113.88,439.616, 208.128,447.344L 208.128,271.872 z" />
|
882 |
+
<glyph unicode="" d="M 482.128,455.168c-17.432,16.704-36.664,25.168-57.192,25.168c-32.096,0-55.512-20.736-61.92-27.088
|
883 |
C 354,444.32, 46.44,136.648, 46.44,136.648c-2.008-2.016-3.472-4.536-4.224-7.296c-6.936-25.632-41.68-139.36-42.024-140.504
|
884 |
c-1.784-5.824-0.192-12.168, 4.104-16.464c 3.088-3.072, 7.2-4.72, 11.416-4.72c 1.656,0, 3.328,0.248, 4.96,0.784
|
885 |
c 1.176,0.384, 118.568,38.328, 137.888,44.096c 2.544,0.768, 4.872,2.144, 6.768,4.016c 12.208,12.064, 299.064,295.728, 318.104,315.392
|
891 |
c-5.056,13.024-13.928,29.76-29.288,45.248c-15.696,15.824-31.616,25.16-44.376,30.68c 1.088,1.080, 1.928,1.928, 2.256,2.248
|
892 |
c 1.832,1.808, 18.448,17.688, 39.16,17.688c 11.92,0, 23.624-5.44, 34.808-16.16c 13.256-12.712, 20.088-25.256, 20.312-37.296
|
893 |
C 480.264,381.856, 473.592,368.624, 460.208,354.816z" />
|
894 |
+
<glyph unicode="" d="M 399.672-0.144l-368,0 l0,400 l 224.8,0 l 32.352,31.168l-0.832,0.832L 31.672,431.856 c-17.672,0-32-14.328-32-32l0-400 c0-17.672, 14.328-32, 32-32l 368,0
|
895 |
c 17.672,0, 32,14.328, 32,32L 431.672,234.184 l-32-30.544L 399.672-0.144 z M 487.112,459.28c-14.44,13.84-30.376,20.856-47.376,20.856
|
896 |
c-26.608,0-46.016-17.184-51.296-22.448c-7.488-7.392-219.584-219.176-219.584-219.176c-1.664-1.696-2.88-3.768-3.504-6.072
|
897 |
c-5.744-21.224-34.536-115.496-34.824-116.432c-1.488-4.832-0.16-10.096, 3.4-13.608c 2.552-2.56, 5.96-3.92, 9.456-3.92
|
900 |
M 465.216,379.44c-8.904-9.184-78.624-78.080-207.224-204.768l-9.84-9.704c-14.744-4.56-50.048-15.904-76.736-24.512
|
901 |
c 8.592,28.376, 18.904,62.656, 23.504,78.872C 222.4,246.768, 404.112,428.2, 411.016,435.016c 1.344,1.344, 13.608,13.128, 28.72,13.128
|
902 |
c 8.576,0, 16.84-3.912, 25.232-11.96c 10.032-9.624, 15.2-18.872, 15.344-27.512C 480.472,399.776, 475.392,389.944, 465.216,379.44z" />
|
903 |
+
<glyph unicode="" d="M 495.864,127.296c 0.008,0.28, 0.080,0.536, 0.080,0.816L 495.944,461.624
|
904 |
c 0.192,1.752, 0.128,3.56-0.288,5.376c-1.368,7.456-7.864,13.112-15.712,13.112c-2.944,0-5.672-0.848-8.040-2.24L 172.968,400.048
|
905 |
c-5.384-1.336-9.376-5.36-11.016-10.336c-1.24-2.272-2-4.832-2-7.6L 159.952,95.84 c-15.232,10.192-34.704,16.328-55.936,16.328
|
906 |
c-48.768,0-88.32-32.304-88.32-72.136c0-39.84, 39.552-72.152, 88.32-72.152c 48.784,0, 88.304,32.304, 88.304,72.152
|
910 |
c 29.616,0, 51.2-16.696, 55.592-33.704l0-0.184 c0-1.616, 0.312-3.144, 0.76-4.608c 0.032-0.496, 0.112-0.984, 0.112-1.48
|
911 |
C 160.816,21.12, 137.616,0.024, 104.352,0.024z M 407.848,80.024c-32.984,0-55.976,21.088-55.976,40S 374.864,160, 407.848,160
|
912 |
c 32.976,0, 55.968-21.064, 55.968-39.976S 440.832,80.024, 407.848,80.024z" />
|
913 |
+
<glyph unicode="" d="M 426.304,318.352L 269.848,474.808c-4.96,4.96-12.336,5.92-18.304,3.008
|
914 |
c-6.272-2.168-10.8-8.056-10.8-15.064l0-354.2 c-16.96,12.56-39.216,20.264-63.688,20.264c-53.032,0-96.056-35.888-96.056-80.144
|
915 |
c0-44.272, 43.024-80.168, 96.056-80.168c 53.056,0, 96.040,35.888, 96.040,80.168c0,1.96-0.184,3.88-0.352,5.816L 272.744,426.656 L 403.68,295.728
|
916 |
c 6.24-6.248, 16.376-6.248, 22.624,0S 432.552,312.112, 426.304,318.352z M 176.688,0.712c-37.824,0-64.176,25.272-64.176,47.936
|
917 |
s 26.36,47.912, 64.176,47.912c 37.016,0, 63-24.2, 64.064-46.496l0-2.84 C 239.68,24.936, 213.704,0.712, 176.688,0.712z" />
|
918 |
+
<glyph unicode="" d="M 255.44,128l 3.8,0 C 303.72,128, 336,160.8, 336,205.984L 336,396.688 C 336,443.408, 302.28,480, 259.232,480
|
919 |
L 255.44,480 C 211.632,480, 176,442.624, 176,396.688l0-190.704 C 176,161.528, 210.152,128, 255.44,128z M 208,396.688C 208,424.984, 229.28,448, 255.44,448l 3.8,0
|
920 |
C 284.752,448, 304,425.936, 304,396.688l0-190.704 C 304,178.488, 286.016,160, 259.232,160L 255.44,160 C 227.504,160, 208,178.904, 208,205.984L 208,396.688 z M 400,304
|
921 |
c-8.84,0-16-7.168-16-16l0-66.536 C 384,126.264, 350.016,80, 280.128,80L 232.56,80 C 141.16,80, 128,156.92, 128,221.464L 128,288 c0,8.832-7.168,16-16,16
|
922 |
s-16-7.168-16-16l0-66.536 C 96,111.216, 141.944,48, 232.56,48L 240,48 l0-48 L 160,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 192,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16
|
923 |
L 272,0 l0,48 l 8.128,0 C 342.112,48, 416,78.096, 416,221.464L 416,288 C 416,296.832, 408.84,304, 400,304z" />
|
924 |
+
<glyph unicode="" d="M 480,429.080L 32,429.080 c-17.672,0-32-14.328-32-32l0-288 c0-17.68, 14.328-32, 32-32l 80,0
|
925 |
c 10.248,0, 16,13.16, 16,15.992l0,0.008 c0,2.912-5.44,16.208-16,16.208L 51.52,109.288 c-10.688,0-19.36,8.672-19.36,19.36L 32.16,377
|
926 |
c0,10.696, 8.664,19.36, 19.36,19.36l 409.136,0.504c 10.688,0, 19.36-8.664, 19.36-19.36l0-248.848 c0-10.688-8.672-19.36-19.36-19.36L 259.072,109.296
|
927 |
l 37.992,34.456c 4.672,4.472, 6.184,11.704, 1.512,16.168l-2.736,4.032c-4.688,4.472-12.248,4.472-16.92,0l-64.864-59.216
|
928 |
c-0.096-0.080-0.184-0.112-0.264-0.184l-4.24-4.048c-2.336-2.216-3.504-5.168-3.488-8.112c-0.016-2.952, 1.144-5.888, 3.488-8.144
|
929 |
l 4.24-4.048c 0.080-0.080, 0.184-0.096, 0.264-0.168l 63.864-57.752c 4.672-4.472, 12.232-4.472, 16.92,0l 2.736,4.032
|
930 |
c 4.672,4.472, 3.16,11.72-1.512,16.184l-38.568,34.584L 480,77.080 c 17.672,0, 32,14.32, 32,32l0,288 C 512,414.752, 497.672,429.080, 480,429.080z" />
|
931 |
+
<glyph unicode="" d="M 58.416,208.168l 277.224,0 c 8.848,0, 16,7.168, 16,16s-7.152,16-16,16L 59.416,240.168 l 57.88,57.88
|
932 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 0.168,223.672l 94.504-97c 3.128-3.128, 7.216-4.688, 11.312-4.688
|
933 |
s 8.184,1.56, 11.312,4.688c 6.248,6.248, 6.248,16.376,0,22.624L 58.416,208.168z M 479.832,480L 207.832,480 c-17.68,0-32-14.328-32-32l0-144 l 32.208,0 L 208.040,428.488
|
934 |
c0,10.688, 8.672,19.36, 19.36,19.36L 459.76,447.848 c 10.696,0, 19.36-8.672, 19.36-19.36l 0.504-409.144c0-10.688-8.664-19.36-19.36-19.36L 227.408-0.016
|
935 |
c-10.688,0-19.36,8.672-19.36,19.36L 208.048,144.528 l-32.208-0.040L 175.84,0 c0-17.672, 14.32-32, 32-32l 271.992,0 c 17.68,0, 32.008,14.328, 32.008,32L 511.84,448
|
936 |
C 511.832,465.672, 497.504,480, 479.832,480z" />
|
937 |
+
<glyph unicode="" d="M 266.264,149.296c-6.256-6.248-6.256-16.376,0-22.624
|
938 |
c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 94.504,97L 288.888,320.68c-6.248,6.248-16.376,6.248-22.624,0
|
939 |
c-6.256-6.248-6.256-16.376,0-22.624l 57.872-57.88L 15.92,240.176 c-8.84,0-16-7.168-16-16s 7.16-16, 16-16l 309.224,0 L 266.264,149.296z M 480.080,480l-288,0
|
940 |
c-17.68,0-32.008-14.328-32.008-32l0-144 l 32.216,0 L 192.288,428.488 c0,10.688, 8.672,19.36, 19.36,19.36L 460,447.848 c 10.704,0, 19.36-8.672, 19.36-19.36l 0.504-409.144
|
941 |
c0-10.688-8.656-19.36-19.36-19.36L 211.656-0.016 c-10.688,0-19.36,8.672-19.36,19.36L 192.296,144.528 l-32.216-0.040L 160.080,0 c0-17.672, 14.328-32, 32.008-32l 288,0
|
942 |
c 17.672,0, 32,14.328, 32,32L 512.088,448 C 512.080,465.672, 497.752,480, 480.080,480z" />
|
943 |
+
<glyph unicode="" d="M 48,256L 16,256 c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0 c 8.832,0, 16,7.168, 16,16l0,32
|
944 |
C 64,248.832, 56.832,256, 48,256z M 496,240L 160,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 336,0 c 8.832,0, 16,7.168, 16,16S 504.832,240, 496,240z M 48,128L 16,128
|
945 |
c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0 c 8.832,0, 16,7.168, 16,16l0,32 C 64,120.832, 56.832,128, 48,128z M 496,112L 160,112 c-8.832,0-16-7.168-16-16
|
946 |
s 7.168-16, 16-16l 336,0 c 8.832,0, 16,7.168, 16,16S 504.832,112, 496,112z M 48,384L 16,384 c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0 c 8.832,0, 16,7.168, 16,16
|
947 |
l0,32 C 64,376.832, 56.832,384, 48,384z M 160,336l 336,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 160,368 c-8.832,0-16-7.168-16-16S 151.168,336, 160,336z" />
|
948 |
+
<glyph unicode="" d="M 304.272-31.872c-145.416,0-146.536,6.032-164.544,19.592c-9.552,7.184-27.576,12.16-93.408,16.448
|
949 |
c-4.776,0.312-9.32,2.144-12.368,5.84c-1.4,1.704-34.296,49.68-34.296,126.52c0,75.72, 23.544,110.232, 24.552,111.832
|
950 |
c 2.92,4.68, 8.048,7.52, 13.56,7.52c 54.056,0, 128.992,69, 179.368,189.448c 8.712,20.832, 10.512,34.536, 42.512,34.536
|
951 |
c 18.2,0, 38.6-13.032, 48.672-29.752c 20.664-34.16, 10.168-107.528, 0.464-146.736c 33,0.264, 92.736,0.712, 121.16,0.712
|
960 |
c-3,4.472-3.224,10.024-1.464,15.112c 15.632,45.016, 24.36,115.64, 9.864,139.768c-4.272,7.112-5.248,14.216-21.248,14.216
|
961 |
c-2.216,0-7.496-1.752-13-14.872C 193.168,305.088, 113.312,231.096, 47.904,224.424c-5.64-12.864-16.248-39.52-16.248-87.888
|
962 |
C 31.656,87.168, 47.296,48.976, 54.808,36.616z" />
|
963 |
+
<glyph unicode="" d="M 508.352,223.32L 268.168,474.904c-3.016,3.152-7.184,4.92-11.544,4.92c-4.352,0-8.52-1.776-11.544-4.92L 3.656,223.328
|
964 |
c-6.12-6.376-5.904-16.496, 0.472-22.624c 6.376-6.112, 16.496-5.936, 22.624,0.472l 21.504,22.416l0-239.416 c0-8.84, 7.168-16, 16-16l 111.776,0
|
965 |
c 8.816,0, 15.968,7.128, 16,15.952l 0.504,159.832l 127.496,0 l0-159.784 c0-8.84, 7.16-16, 16-16l 111.736,0 c 8.84,0, 16,7.16, 16,16L 463.768,223.672 l 21.496-22.52
|
966 |
c 3.144-3.264, 7.344-4.92, 11.544-4.92c 3.984,0, 7.984,1.472, 11.080,4.472C 514.256,206.816, 514.464,216.944, 508.352,223.32z
|
967 |
M 431.768,252.592l0-252.416 l-79.736,0 L 352.032,159.952 c0,8.84-7.16,16-16,16l-159.44,0 c-8.816,0-15.968-7.128-16-15.952l-0.504-159.832l-79.832,0 L 80.256,252.592
|
968 |
c0,1.32-0.208,2.584-0.504,3.816l 176.88,184.312l 175.712-184.104C 432,255.32, 431.768,253.984, 431.768,252.592z" />
|
969 |
+
<glyph unicode="" d="M 480-32L 320-32 c-17.672,0-32,14.328-32,32L 288,160 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
970 |
C 512-17.672, 497.672-32, 480-32z M 480,160L 320,160 l0-160 l 160,0 L 480,160 z M 480,256L 320,256 c-17.672,0-32,14.328-32,32L 288,448 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
971 |
C 512,270.328, 497.672,256, 480,256z M 480,448L 320,448 l0-160 l 160,0 L 480,448 z M 192-32L 32-32 c-17.672,0-32,14.328-32,32L0,160 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
972 |
C 224-17.672, 209.672-32, 192-32z M 192,160L 32,160 l0-160 l 160,0 L 192,160 z M 192,256L 32,256 c-17.672,0-32,14.328-32,32L0,448 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
973 |
C 224,270.328, 209.672,256, 192,256z M 192,448L 32,448 l0-160 l 160,0 L 192,448 z" />
|
974 |
+
<glyph unicode="" d="M 472,368c-22.096,0-40-17.912-40-40c0-4.536, 0.92-8.816, 2.304-12.88L 336.8,231.16C 329.96,236.608, 321.424,240, 312,240
|
975 |
c-10.872,0-20.704-4.368-27.904-11.408l-76.376,38.24C 206.232,287.576, 189.12,304, 168,304c-22.088,0-40-17.912-40-40c0-6.048, 1.44-11.72, 3.84-16.856
|
976 |
L 53.968,157.352C 49.6,158.984, 44.936,160, 40,160c-22.088,0-40-17.912-40-40s 17.912-40, 40-40s 40,17.912, 40,40c0,5.32-1.088,10.384-2.976,15.024
|
977 |
l 79.136,90.96C 159.928,224.816, 163.848,224, 168,224c 11.64,0, 22.024,5.056, 29.336,13l 74.704-37.456C 272.304,177.672, 290.064,160, 312,160
|
978 |
c 22.096,0, 40,17.912, 40,40c0,0.712-0.168,1.376-0.208,2.080L 455.84,291.464C 460.792,289.272, 466.232,288, 472,288c 22.096,0, 40,17.904, 40,40
|
979 |
C 512,350.088, 494.096,368, 472,368z" />
|
980 |
+
<glyph unicode="" d="M 80.024,286.064L 80.024,464 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-177.92
|
981 |
C 20.36,278.952-0.176,253.856-0.176,224c0-29.864, 20.536-54.952, 48.2-62.088L 48.024-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 80.024,161.928
|
982 |
c 27.64,7.152, 48.152,32.224, 48.152,62.072C 128.176,253.84, 107.664,278.92, 80.024,286.064z M 64.208,191.984C 64.152,191.984, 64.088,192, 64.024,192
|
983 |
c-0.072,0-0.136-0.016-0.208-0.024C 46.24,192.080, 31.968,206.4, 31.968,224c0,17.592, 14.28,31.92, 31.856,32.016
|
993 |
c-0.064,0-0.12,0.016-0.176,0.016c-0.072,0-0.144-0.016-0.208-0.016C 430.248,288.080, 415.968,302.4, 415.968,320
|
994 |
c0,17.592, 14.28,31.92, 31.848,32.016c 0.072,0, 0.144-0.016, 0.208-0.016c 0.064,0, 0.12,0.016, 0.176,0.016
|
995 |
c 17.568-0.12, 31.832-14.432, 31.832-32.016C 480.048,302.408, 465.784,288.096, 448.208,287.984z" />
|
996 |
+
<glyph unicode="" d="M 207.72,479.88c 145.416,0, 146.544-6.032, 164.552-19.592c 9.552-7.184, 27.576-12.168, 93.416-16.456
|
997 |
c 4.784-0.312, 9.32-2.144, 12.368-5.84c 1.4-1.704, 34.296-49.68, 34.296-126.512c0-75.72-23.544-110.24-24.552-111.848
|
998 |
c-2.92-4.672-8.048-7.512-13.56-7.512c-54.056,0-128.992-69-179.376-189.456c-8.712-20.832-10.504-34.528-42.512-34.528
|
999 |
c-18.2,0-38.6,13.032-48.688,29.752c-20.656,34.16-10.168,107.528-0.456,146.736c-33-0.264-92.736-0.72-121.16-0.72
|
1008 |
s 3.232-10.032, 1.464-15.112c-15.624-45.016-24.352-115.64-9.856-139.768c 4.264-7.112, 5.248-14.216, 21.248-14.216
|
1009 |
c 2.216,0, 7.496,1.752, 13,14.872c 53.496,127.904, 133.352,201.904, 198.76,208.576c 5.64,12.864, 16.248,39.52, 16.248,87.896
|
1010 |
C 480.352,360.832, 464.712,399.016, 457.192,411.376z" />
|
1011 |
+
<glyph unicode="" d="M 460.544,428.384L 292.416,35.488l-59.656,172.256L 60.664,259.76L 460.544,428.384 M 502.232,479.616c-3.048,0-6.76-0.864-11.048-2.68
|
1012 |
L 13.856,274.4c-17.192-7.296-18.28-21.352-2.424-31.232l 197.648-61.792l 64.68-201.632c 4.64-7.592, 10.248-11.36, 15.632-11.36
|
1013 |
c 5.968,0, 11.648,4.576, 15.52,13.624L 509.048,458.872C 514.576,471.816, 511.432,479.616, 502.232,479.616L 502.232,479.616z" />
|
1014 |
+
<glyph unicode="" d="M 487.472,447.304c0,11.616-6.296,22.328-16.456,27.968
|
1015 |
c-4.84,2.696-10.184,4.032-15.544,4.032c-5.856,0-11.736-1.616-16.888-4.824L 70.72,251.184c-7.976-4.952-13.256-13.104-14.688-22.2L 56.032,464
|
1016 |
c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-480 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 56.032,219.032 c 1.44-9.104, 6.72-17.256, 14.688-22.192L 439.080-26.48
|
1017 |
c 5.16-3.216, 11.032-4.832, 16.888-4.832c 5.36,0, 10.704,1.344, 15.544,4.032c 10.16,5.64, 16.456,16.344, 16.456,27.968L 487.472,447.304z
|
1018 |
M 87.6,224.008L 455.472,447.304l 0.504-446.608L 87.6,224.008z" />
|
1019 |
+
<glyph unicode="" d="M 286.96,381.048L 34.32,224l 252.64-157.048L 286.96,190.44 l 192-123.488L 478.96,381.048 l-192-123.496L 286.96,385.472 M 285.632,413.048
|
1020 |
c 5.352,0, 11.368-1.336, 16.208-4.032c 10.16-5.64, 17.12-16.352, 17.12-27.968l0-65.92 L 468.072,408.224c 5.16,3.2, 10.688,4.824, 16.56,4.824
|
1021 |
c 5.344,0, 7.864-1.336, 12.712-4.032c 10.16-5.64, 13.616-16.352, 13.616-27.968l0-314.096 c0-11.624-3.624-22.328-13.784-27.968
|
1022 |
c-4.84-2.688-8.864-4.032-14.216-4.032c-5.864,0-10.392,1.608-15.552,4.832L 318.96,132.872l0-65.92 c0-11.624-6.96-22.328-17.12-27.968
|
1023 |
c-4.84-2.688-10.52-4.032-15.88-4.032c-5.856,0-11.896,1.608-17.056,4.832L 16.176,196.832C 6.792,202.656, 1.040,212.936, 1.040,224
|
1024 |
s 5.688,21.336, 15.080,27.176L 268.752,408.224C 273.904,411.432, 279.768,413.048, 285.632,413.048L 285.632,413.048z" />
|
1025 |
+
<glyph unicode="" d="M 72.312,447.304l 367.872-223.296L 71.816,0.696L 72.312,447.304 M 72.312,479.304c-5.36,0-10.704-1.336-15.544-4.032
|
1026 |
c-10.16-5.64-16.456-16.352-16.456-27.968L 39.816,0.696c0-11.624, 6.296-22.328, 16.456-27.968c 4.84-2.688, 10.184-4.032, 15.544-4.032
|
1027 |
c 5.856,0, 11.736,1.608, 16.888,4.832l 368.36,223.312c 9.408,5.832, 15.128,16.112, 15.128,27.168s-5.72,21.336-15.128,27.176L 89.2,474.488
|
1028 |
C 84.048,477.688, 78.168,479.304, 72.312,479.304L 72.312,479.304z" />
|
1029 |
+
<glyph unicode="" d="M 208.136,480L 96.032,480 c-8.832,0-16-7.16-16-16l0-480 c0-8.832, 7.168-16, 16-16l 112.104,0 c 8.84,0, 16,7.168, 16,16L 224.136,464
|
1030 |
C 224.136,472.84, 216.976,480, 208.136,480z M 192.136,0L 112.032,0 L 112.032,448 l 80.104,0 L 192.136,0 z M 415.968,480L 304.44,480 c-8.84,0-16-7.16-16-16l0-480 c0-8.832, 7.16-16, 16-16
|
1031 |
l 111.528,0 c 8.84,0, 16,7.168, 16,16L 431.968,464 C 431.968,472.84, 424.816,480, 415.968,480z M 399.968,0l-79.528,0 L 320.44,448 l 79.528,0 L 399.968,0 z" />
|
1032 |
+
<glyph unicode="" d="M 225.040,381.048L 477.68,224L 225.040,66.952L 225.040,190.44 l-192-123.488L 33.040,381.048 l 192-123.496L 225.040,385.472 M 226.368,413.048
|
1033 |
c-5.36,0-11.368-1.336-16.216-4.032C 200,403.376, 193.040,392.664, 193.040,381.048l0-65.92 L 43.928,408.224c-5.16,3.2-10.688,4.824-16.56,4.824
|
1034 |
c-5.344,0-7.864-1.336-12.72-4.032C 4.504,403.376, 1.040,392.664, 1.040,381.048l0-314.096 c0-11.624, 3.624-22.328, 13.784-27.968
|
1035 |
c 4.84-2.688, 8.864-4.032, 14.216-4.032c 5.864,0, 10.392,1.608, 15.552,4.832L 193.040,132.872l0-65.92 c0-11.624, 6.96-22.328, 17.112-27.968
|
1036 |
c 4.848-2.688, 10.528-4.032, 15.888-4.032c 5.856,0, 11.896,1.608, 17.056,4.832l 252.728,157.048c 9.392,5.832, 15.144,16.112, 15.144,27.168
|
1037 |
s-5.688,21.336-15.080,27.176L 243.248,408.224C 238.096,411.432, 232.224,413.048, 226.368,413.048L 226.368,413.048z" />
|
1038 |
+
<glyph unicode="" d="M 471.968,480c-8.832,0-16-7.168-16-16l0-235 c-1.44,9.096-6.72,17.232-14.688,22.184
|
1039 |
L 73.424,474.488c-5.16,3.2-11.032,4.824-16.888,4.824c-5.36,0-10.704-1.336-15.544-4.032c-10.16-5.64-16.456-16.352-16.456-27.968
|
1040 |
L 24.032,0.696c0-11.624, 6.296-22.328, 16.456-27.968c 4.84-2.688, 10.184-4.032, 15.544-4.032c 5.856,0, 11.736,1.608, 16.888,4.832
|
1041 |
L 441.28,196.832c 7.968,4.936, 13.248,13.080, 14.688,22.176L 455.968-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 487.968,464 C 487.968,472.832, 480.808,480, 471.968,480z
|
1042 |
M 56.032,0.696L 56.528,447.304l 367.872-223.296L 56.032,0.696z" />
|
1043 |
+
<glyph unicode="" d="M 480,432.056L 351.888,432.056 L 351.888,463.944 c0,8.84-7.16,16-16,16s-16-7.16-16-16l0-31.88 l-128,0 L 191.888,463.944
|
1044 |
c0,8.84-7.16,16-16,16c-8.84,0-16-7.16-16-16l0-31.88 L 32,432.064 c-17.672,0-32-14.328-32-32l0-400 c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32l0,400
|
1045 |
C 512,417.728, 497.672,432.056, 480,432.056z M 480,0.064L 32,0.064 l0,400 l 127.888,0 l0-16.12 c0-8.84, 7.16-16, 16-16c 8.84,0, 16,7.16, 16,16L 191.888,400.056 l 128,0 l0-16.12
|
1046 |
c0-8.84, 7.16-16, 16-16s 16,7.16, 16,16L 351.888,400.056 L 480,400.056 L 480,0.064 z M 368,224.056l 32,0 c 8.832,0, 16,7.168, 16,16l0,32 c0,8.832-7.168,16-16,16l-32,0
|
1050 |
c 8.832,0, 16,7.168, 16,16l0,32 C 288,280.896, 280.832,288.056, 272,288.056z M 144,288.056l-32,0 c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0
|
1051 |
c 8.832,0, 16,7.168, 16,16l0,32 C 160,280.896, 152.832,288.056, 144,288.056z M 144,160.064l-32,0 c-8.832,0-16-7.168-16-16l0-32 c0-8.84, 7.168-16, 16-16l 32,0
|
1052 |
c 8.832,0, 16,7.16, 16,16l0,32 C 160,152.888, 152.832,160.064, 144,160.064z" />
|
1053 |
+
<glyph unicode="" d="M 255.992,480C 156.976,480, 79.432,399.448, 79.432,300.432c0-74.6, 36.64-110.128, 65.592-136.064c 18.64-16.712, 31.184-26.776, 31.184-39.176
|
1054 |
l0-27.128 c0-0.696, 0.096-1.376, 0.184-2.064l-0.36,0 l0-46.312 C 176.040,0.832, 207.632-32, 256.568-32c 47.232,0, 79.472,32.832, 79.472,81.688L 336.040,96
|
1055 |
l-0.464,0 c 0.088,0.688, 0.208,1.368, 0.208,2.064l0,27.128 c0,18.88, 14.016,30.296, 35.264,48.848c 28.752,25.104, 61.512,56.344, 61.512,126.392
|
1056 |
C 432.568,399.448, 355.008,480, 255.992,480z M 255.384,0c-29.952,0-47.344,18.576-47.344,49.688l-0.232,21.336C 219.32,67.088, 235,64, 256,64
|
1058 |
l0-20.216 c-7.592-4.24-21.592-9.28-48.064-9.28c-27.784,0-40.96,4.928-47.512,8.736l0,20.768 c0,27.304-21.344,44.648-41.84,63.008
|
1059 |
c-27.16,24.336-54.936,51.92-54.936,112.232C 111.432,381.8, 174.632,448, 255.992,448c 81.376,0, 144.576-66.2, 144.576-147.568
|
1060 |
C 400.568,244.92, 376.336,221.144, 350.008,198.144z" />
|
1061 |
+
<glyph unicode="" d="M 136.032,320.008L 24,320.008 c-8.84,0-16-7.16-16-16L 8-16 c0-8.84, 7.16-16, 16-16l 112.032,0 c 8.84,0, 16,7.16, 16,16L 152.032,304.008
|
1062 |
C 152.032,312.848, 144.872,320.008, 136.032,320.008z M 120.032,0L 40,0 L 40,288.008 l 80.032,0 L 120.032,0 z M 311.872,224.872L 199.832,224.872 c-8.84,0-16-7.16-16-16L 183.832-16
|
1063 |
c0-8.84, 7.16-16, 16-16l 112.040,0 c 8.84,0, 16,7.16, 16,16L 327.872,208.872 C 327.872,217.72, 320.72,224.872, 311.872,224.872z M 295.872,0L 215.832,0 L 215.832,192.872
|
1064 |
l 80.040,0 L 295.872,0 z M 488,480L 376.136,480 c-8.84,0-16-7.16-16-16l0-480 c0-8.84, 7.16-16, 16-16L 488-32 c 8.84,0, 16,7.16, 16,16L 504,464 C 504,472.84, 496.84,480, 488,480z M 472,0
|
1065 |
l-79.864,0 L 392.136,448 L 472,448 L 472,0 z" />
|
1066 |
+
<glyph unicode="" d="M 512,224C 512,365.392, 397.384,480, 256,480C 114.608,480,0,365.392,0,224c0-141.384, 114.608-256, 256-256C 397.384-32, 512,82.616, 512,224z M 31.504,224
|
1067 |
C 31.504,347.512, 132.488,448, 256,448s 224-100.488, 224-224S 379.512,0, 256,0S 31.504,100.488, 31.504,224z M 272.168,111.84L 272.168,292.072 l 57.88-57.88
|
1068 |
c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.376,0,22.624L 255.672,351.32L 158.672,256.816c-3.128-3.128-4.688-7.216-4.688-11.312
|
1069 |
s 1.56-8.184, 4.688-11.312c 6.248-6.248, 16.376-6.248, 22.624,0l 58.872,58.88L 240.168,111.84 c0-8.84, 7.168-16, 16-16S 272.168,103, 272.168,111.84z" />
|
1070 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504
|
1071 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z M 266.184,320.68
|
1072 |
c-6.248-6.248-6.248-16.376,0-22.624l 57.88-57.88L 143.84,240.176 c-8.84,0-16-7.168-16-16s 7.16-16, 16-16l 181.232,0 l-58.88-58.872
|
1073 |
c-6.248-6.248-6.248-16.376,0-22.624c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 94.504,97L 288.816,320.68
|
1074 |
C 282.56,326.928, 272.44,326.928, 266.184,320.68z" />
|
1075 |
+
<glyph unicode="" d="M 256,480C 114.608,480,0,365.384,0,224c0-141.392, 114.608-256, 256-256c 141.384,0, 256,114.608, 256,256C 512,365.384, 397.384,480, 256,480z M 256-0.504
|
1076 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z M 368.16,240.168L 187.928,240.168 l 57.88,57.88
|
1077 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 128.68,223.672l 94.504-97c 3.128-3.128, 7.216-4.688, 11.312-4.688
|
1078 |
s 8.184,1.56, 11.312,4.688c 6.248,6.248, 6.248,16.376,0,22.624l-58.88,58.872L 368.16,208.168 c 8.84,0, 16,7.168, 16,16S 377,240.168, 368.16,240.168z" />
|
1079 |
+
<glyph unicode="" d="M0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480C 114.616,480,0,365.384,0,224z M 480.504,224
|
1080 |
c0-123.512-100.984-224-224.504-224S 32,100.488, 32,224S 132.488,448, 256,448S 480.504,347.512, 480.504,224z M 239.832,336.16l0-180.224 l-57.88,57.88
|
1081 |
c-6.248,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 97.008-94.504l 97,94.504c 3.128,3.128, 4.688,7.216, 4.688,11.312
|
1082 |
s-1.56,8.184-4.688,11.312c-6.248,6.248-16.376,6.248-22.624,0l-58.872-58.88L 271.84,336.16 c0,8.84-7.168,16-16,16S 239.832,345, 239.832,336.16z" />
|
1083 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256
|
1084 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 32,224c0,56.136, 20.808,107.48, 55.048,146.832l 315.928-315.928
|
1085 |
C 363.608,20.464, 312.208-0.504, 256-0.504C 132.488-0.504, 32,100.488, 32,224z M 425.512,77.608L 109.704,393.416C 148.992,427.384, 200.12,448, 256,448
|
1086 |
c 123.512,0, 224-100.488, 224-224C 480,168.168, 459.424,116.984, 425.512,77.608z" />
|
1087 |
+
<glyph unicode="" d="M 256,416c 123.512,0, 224-71.776, 224-160c0-88.216-100.488-160-224-160l-7.568-0.032l-5.688-0.016c-8.792,0-14.544,0.232-23.536,1.576
|
1088 |
l-17.928,2.56l-11.504-13.92c-5.288-6.392-32.272-28.56-62.056-42.832c 6.056,16.016, 10.52,33.504, 10.92,50.8l 0.16,0.952l0,2.736 l0,19.576
|
1089 |
l-17.432,8.904C 64.568,155.36, 32,202.624, 32,256C 32,344.224, 132.488,416, 256,416 M 256,448C 114.6,448,0,362.032,0,256c0-66.032, 39.128-123.576, 106.792-158.168
|
1090 |
c0-0.408-0.128-0.704-0.128-1.16c0-28.688-16.080-60.232-25.504-76.472l 0.024,0 C 80.44,18.456, 80,16.544, 80,14.496
|
1091 |
C 80,6.456, 86.48,0, 94.504,0c 1.208,0, 3.128,0.248, 3.832,0.248c 0.168,0, 0.264,0, 0.248-0.048c 50,8.168, 104.976,52.344, 115.912,65.672
|
1092 |
c 11.24-1.672, 18.832-1.92, 28.24-1.92C 246.704,63.952, 250.984,64, 256,64c 141.376,0, 256,85.952, 256,192C 512,362.032, 397.376,448, 256,448L 256,448z" />
|
1093 |
+
<glyph unicode="" d="M 319.064,368.312c 0.64,0, 1.16-0.504, 1.16-1.12l0-63.936 c0-11.832, 6.528-22.712, 17-28.264c 4.704-2.504, 9.856-3.736, 15-3.736
|
1094 |
c 6.28,0, 13.528,1.84, 18.92,5.496L 480,338.368L 480,110.16 L 370.544,169.92c-5.488,3.832-11.888,5.768-18.328,5.768
|
1095 |
c-5.064,0-10.128-1.2-14.784-3.608c-10.56-5.512-17.2-16.44-17.216-28.344l-0.080-62.92c0-0.624-0.504-1.128-1.144-1.128L 33.144,79.688
|
1096 |
C 32.504,79.688, 32,80.184, 32,80.8l 0.080,286.392c0,0.624, 0.504,1.12, 1.144,1.12L 319.064,368.312 M 495.184,384.328c-3.408,0-10.144-1.008-13.984-4.832
|
1098 |
c0-18.28, 14.816-33.128, 33.144-33.128l 285.856,0 c 18.328,0, 33.144,14.84, 33.144,33.128l 0.080,62.872l 131.488-76.656
|
1099 |
c 3.856-3.84, 8.128-3.344, 11.544-3.344c 3.544,0, 6.184,1.080, 6.512,1.216C 507.984,67.496, 512,73.496, 512,80.248L 512,367.736
|
1100 |
c0,6.752-4.016,12.776-10.232,15.328C 501.408,383.224, 498.752,384.328, 495.184,384.328L 495.184,384.328z" />
|
1101 |
+
<glyph unicode="" d="M 464,368l-73.592,0 L 352,432L 160,432 l-38.4-64L 48,368 c-16,0-48-16-48-47.504L0,64 c0-26.504, 24-48, 44.664-48l 420.336,0 C 486,16, 512,38.496, 512,63.496L 512,320
|
1102 |
C 512,336, 496,368, 464,368z M 480,63.496c0-6.312-10.232-15.144-15-15.504L 44.76,47.992 C 41.056,48.296, 32,55.512, 32,64L 32,320.496
|
1103 |
C 32,330.632, 45.616,335.744, 48,336l 91.72,0 l 9.32,15.536L 178.12,400l 156.824,0 l 28.56-48.472l 8.8-15.528L 464,336 c 11.28,0, 15.84-14.736, 16-16L 480,63.496 z M 256,320
|
1104 |
c-61.856,0-112-50.144-112-112s 50.144-112, 112-112s 112,50.144, 112,112S 317.856,320, 256,320z M 256,128c-44.112,0-80,35.888-80,80s 35.888,80, 80,80
|
1105 |
s 80-35.888, 80-80S 300.112,128, 256,128z" />
|
1106 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256
|
1107 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1108 |
S 379.512-0.504, 256-0.504z M 358.168,317.672L 207.968,166.528l-67.64,67.64c-6.248,6.248-16.376,6.248-22.632,0
|
1109 |
c-6.248-6.248-6.248-16.376,0-22.624l 79.192-79.2c 6.248-6.24, 16.376-6.24, 22.632,0c 0.72,0.72, 1.336,1.504, 1.896,2.32L 380.808,295.040
|
1110 |
c 6.24,6.248, 6.24,16.376,0,22.632C 374.552,323.92, 364.424,323.92, 358.168,317.672z" />
|
1111 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256
|
1112 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1113 |
S 379.512-0.504, 256-0.504z M 272,230.496L 272,384 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-160 c0-4.528, 1.896-8.6, 4.928-11.504
|
1114 |
c 0.264-0.312, 0.48-0.648, 0.768-0.944l 79.192-79.2c 6.248-6.24, 16.376-6.24, 22.624,0c 6.248,6.248, 6.248,16.384,0,22.632L 272,230.496z" />
|
1115 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256
|
1116 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1117 |
S 379.512-0.504, 256-0.504z M 346.504,314.504c-6.248,6.248-16.376,6.248-22.624,0L 256,246.624l-67.88,67.88
|
1118 |
c-6.248,6.248-16.376,6.248-22.632,0c-6.248-6.248-6.248-16.376,0-22.624L 233.368,224l-67.88-67.88c-6.248-6.24-6.248-16.384,0-22.624
|
1119 |
c 6.248-6.248, 16.376-6.248, 22.632,0L 256,201.376l 67.88-67.88c 6.248-6.248, 16.376-6.248, 22.624,0c 6.248,6.24, 6.248,16.384,0,22.624
|
1120 |
L 278.624,224l 67.88,67.88C 352.76,298.136, 352.76,308.264, 346.504,314.504z" />
|
1121 |
+
<glyph unicode="" d="M 381.512,350C 359.2,409.216, 311.232,446.72, 238.784,446.72c-92.192,0-156.696-68.456-162.24-157.768C 32.088,274.736,0,229.392,0,178.032
|
1122 |
c0-62.872, 49.424-115.984, 107.912-115.984l 14.224,0 c 8.832,0, 16,7.16, 16,16s-7.168,16-16,16l-14.224,0 c-41.152,0-76.416,38.456-76.416,83.984
|
1123 |
c0,40.232, 28.208,76.528, 63.592,82.608l 14.52,2.504l-1.296,14.672l-0.12,0.184c 0.008,77.936, 51.304,136.72, 130.592,136.72
|
1124 |
c 63.552,0, 99.256-31.312, 115.776-84.72l 3.416-11.016l 11.536-0.248c 59.432-1.248, 111.544-49.472, 111.544-109.392
|
1128 |
c-4.472-4.688-4.472-12.24,0-16.912l 57.752-63.872c 0.080-0.080, 0.096-0.184, 0.168-0.264l 4.048-4.232
|
1129 |
c 2.248-2.344, 5.184-3.504, 8.144-3.488c 2.936-0.016, 5.888,1.144, 8.112,3.488l 4.048,4.232c 0.080,0.080, 0.12,0.168, 0.184,0.264
|
1130 |
l 59.216,64.872c 4.472,4.672, 4.472,10.224,0,14.912L 323.168,92.264z" />
|
1131 |
+
<glyph unicode="" d="M 381.512,350.016C 359.2,409.232, 311.232,446.736, 238.776,446.736c-92.192,0-156.696-68.456-162.24-157.768
|
1132 |
C 32.088,274.752,0,229.408,0,178.048c0-62.872, 49.424-115.984, 107.912-115.984l 46.224,0 c 8.832,0, 16,7.168, 16,16c0,8.84-7.168,16-16,16l-46.224,0
|
1133 |
c-41.152,0-76.416,38.456-76.416,83.984c0,40.232, 28.208,76.528, 63.592,82.608l 14.52,2.504l-1.288,14.664l-0.12,0.184
|
1134 |
c0,77.936, 51.288,136.72, 130.576,136.72c 63.552,0, 99.256-31.312, 115.768-84.72l 3.424-11.016l 11.528-0.248
|
1138 |
l-4.048-4.232c-0.080-0.080-0.096-0.176-0.168-0.256l-57.752-63.872c-4.472-4.672-4.472-12.232,0-16.92l 4.032-2.736
|
1139 |
c 4.472-4.672, 11.72-3.16, 16.184,1.512l 34.056,37.968l0-161.216 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 271.808,178.328 l 35.184-38.816
|
1140 |
c 4.472-4.672, 11.704-6.184, 16.168-1.512l 4.032,2.736c 4.472,4.688, 4.472,12.248,0,16.92L 267.992,222.528z" />
|
1141 |
+
<glyph unicode="" d="M 280,480L 104,480 c-17.672,0-32-14.328-32-32l0-448 c0-17.672, 14.328-32, 32-32l 304,0 c 17.672,0, 32,14.328, 32,32L 440,319.992 L 280,480z M 408,306.736L 408,304 L 264,304 L 264,448 l 2.752,0
|
1142 |
L 408,306.736z M 104,0L 104,448 l 128,0 l0-176 l 176,0 l0-272 L 104,0 z" />
|
1143 |
+
<glyph unicode="" d="M 511.728,364c 0.496,3.072, 0.088,6.24-1.24,9.136C 506.456,390.856, 493.648,400, 472,400L 56,400 c-19.040,0-39.552-7-49.64-20.736
|
1144 |
c-0.872-0.664-1.704-1.416-2.456-2.288c-3.224-3.72-4.352-8.504-3.632-13.016C 0.128,362.664,0,361.36,0,360l0-256 c0-26.512, 29.496-56, 56-56
|
1145 |
l 416,0 c 26.512,0, 40,29.488, 40,56L 512,360 C 512,361.416, 511.816,362.656, 511.728,364z M 56,368l 416,0 c 0.096,0, 0.144,0, 0.216,0L 256,195.672L 40.656,367.296
|
1146 |
C 45.552,368.2, 51.576,368, 56,368z M 472,80L 56,80 c-8.824,0-24,15.168-24,24L 32,333.224 L 245.52,162.4c 3.008-2.6, 6.744-3.896, 10.48-3.896
|
1147 |
s 7.472,1.296, 10.488,3.896L 480,333.216L 480,104 C 480,95.168, 480.832,80, 472,80z" />
|
1148 |
+
<glyph unicode="" d="M 257.736,319.296c-53.016,0-96-42.984-96-96c0-53.008, 42.984-96, 96-96s 96,42.984, 96,96
|
1149 |
C 353.736,276.312, 310.752,319.296, 257.736,319.296z M 257.736,159.296c-35.288,0-64.736,29.408-64.736,64.696c0,35.288, 28.712,64, 64,64
|
1150 |
c 35.296,0, 64-28.712, 64-64C 321,188.704, 293.032,159.296, 257.736,159.296z M 511.84,227.712c-0.184,0.808-0.104,1.664-0.344,2.456
|
1151 |
c-0.104,0.336-0.312,0.528-0.432,0.824c-0.168,0.456-0.128,0.992-0.36,1.432C 464.168,338.976, 363.872,400.304, 256.992,400.304
|
1156 |
c 0.112,0.28, 0.328,0.488, 0.424,0.8c 0.248,0.784, 0.168,1.64, 0.344,2.456c 0.28,1.432, 0.544,2.832, 0.544,4.312
|
1157 |
C 512.392,224.872, 512.128,226.264, 511.84,227.712z M 256,79.704c-90.648,0-179.872,47.784-223.712,143.84
|
1158 |
c 43.424,95.736, 133.84,144.752, 224.712,144.752c 90.84,0, 179.248-49.072, 222.688-144.856C 436.28,127.736, 346.872,79.704, 256,79.704z" />
|
1159 |
+
<glyph unicode="" d="M 340,432.336c-80,0-101.328,48-202.656,48C 72,480.336, 32,430.992, 32,430.992l0-447.328
|
1160 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 64,187.6 c 16.88,10.888, 40.168,20.736, 69.344,20.736c 101.328,0, 130.656-48, 210.656-48s 136,48, 136,48l0,272
|
1161 |
C 480,480.336, 420,432.336, 340,432.336z M 448,224.64c-18.080-11.792-56.392-32.304-104-32.304c-31.456,0-52.92,8.632-80.112,19.568
|
1162 |
c-33.136,13.32-70.704,28.432-130.544,28.432c-27.344,0-50.536-6.88-69.344-16.080L 64,417.992 c 12.048,10.96, 38.312,30.344, 73.344,30.344
|
1163 |
c 47.056,0, 73.544-11.424, 101.592-23.504c 27.936-12.040, 56.832-24.496, 101.064-24.496c 42.624,0, 80.064,11.784, 108,24.456L 448,224.64 z" />
|
1164 |
+
<glyph unicode="" d="M 177.376,392l 39.312-38.624L 226.744,344L 240,344 l 240,0 l0-288 L 32,56 L 32,392 l 144,0 M 192,424L 32,424 c-17.672,0-32-14.328-32-32l0-336 c0-17.672, 14.328-32, 32-32l 448,0
|
1165 |
c 17.672,0, 32,14.328, 32,32L 512,344 c0,17.672-14.328,32-32,32L 240,376 L 192,424L 192,424z" />
|
1166 |
+
<glyph unicode="" d="M 143.992,422.92c 15.688,0, 44.048-7.504, 90.048-52.808l 22.808-22.456l 22.464,22.816C 311.248,402.92, 345.232,423.072, 368,423.072
|
1167 |
c 30.704,0, 54.904-10.504, 78.504-34.048c 22.232-22.184, 34.496-51.68, 34.496-83.056c 0.016-31.392-12.224-60.912-34.704-83.336
|
1168 |
c-1.832-1.856-98.496-106.152-179.48-193.552c-3.816-3.624-8.176-4.16-10.496-4.16c-2.288,0-6.6,0.512-10.4,4.048
|
1169 |
c-19.736,21.952-162.776,181-179.408,197.616C 44.248,248.792, 32,278.312, 32,309.696c 0.008,31.376, 12.256,60.864, 34.52,83.072
|
1171 |
c 16.712-16.72, 178.928-197.168, 178.928-197.168c 9.24-9.248, 21.376-13.84, 33.48-13.84c 12.112,0, 24.2,4.592, 33.456,13.84
|
1172 |
c0,0, 177.44,191.512, 179.328,193.424c 58.52,58.44, 58.52,153.12,0,211.504c-29.056,29-61.512,43.392-101.104,43.392
|
1173 |
c-37.824,0-80-30.16-111.504-62.16C 223.992,424.92, 183.12,454.92, 143.992,454.92L 143.992,454.92z" />
|
1174 |
+
<glyph unicode="" d="M 288,112l-16,0 L 272,255 c0,0.168-0.048,0.328-0.048,0.504S 272,255.832, 272,256c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16
|
1175 |
s 7.168-16, 16-16l 16,0 l0-128 l-16,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16S 296.832,112, 288,112z M 256,304c 17.672,0, 32,14.328, 32,32
|
1176 |
s-14.328,32-32,32s-32-14.328-32-32S 238.328,304, 256,304z M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256
|
1177 |
C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z" />
|
1178 |
+
<glyph unicode="" d="M 327.848,480c-79.528,0-144-64.576-144-144.232c0-35.704, 13.016-68.312, 34.472-93.504
|
1179 |
c-4.416,0.272-8.92-1.216-12.296-4.592L 44.832,75.48c-6.24-6.248-6.24-16.384,0-22.624c 0.12-0.12, 0.256-0.192, 0.384-0.312
|
1180 |
c 0.040-0.040, 0.064-0.088, 0.104-0.128l 78.456-79.952c 6.24-6.248, 16.376-6.248, 22.624,0s 6.248,16.384,0,22.624l-67.736,69.032l 41.248,41.504
|
1181 |
l 67.864-69.16c 6.24-6.248, 16.376-6.248, 22.624,0s 6.24,16.384,0,22.624l-67.928,69.224l 86.192,86.736c 3.336,3.336, 4.832,7.768, 4.608,12.136
|
1182 |
c 25.312-22.144, 58.336-35.656, 94.584-35.656c 79.528,0, 144,64.576, 144,144.24C 471.848,415.424, 407.384,480, 327.848,480z M 327.848,224
|
1183 |
c-61.624,0-112,50.136-112,112c0,61.872, 50.376,112, 112,112s 112-50.128, 112-112C 439.848,274.136, 389.48,224, 327.848,224z" />
|
1184 |
+
<glyph unicode="" d="M 147.832,113.776c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688L 364.288,309.12
|
1185 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 147.832,136.4C 141.576,130.152, 141.576,120.024, 147.832,113.776z M 237.936,147.848
|
1186 |
c 5.288-23.312-0.416-46.2-18.432-64.216l-64.624-62.624c-13.6-13.592-31.68-21.080-50.912-21.080s-37.312,7.488-50.904,21.080
|
1187 |
c-28.072,28.080-28.072,73.768-0.168,101.672l 63.128,65.128c 13.6,13.592, 31.68,21.088, 50.912,21.088c 6.576,0, 12.912-1.176, 19.088-2.872
|
1193 |
c 28.064-28.080, 28.064-73.768, 0.16-101.672l-64.624-64.624c-13.592-13.592-31.688-21.080-50.904-21.080c-4.904,0-9.216-0.496-13.92,0.464
|
1194 |
l-25.488-25.504c 12.736-5.296, 25.816-6.968, 39.408-6.968c 26.608,0, 53.216,10.152, 73.528,30.464l 64.472,64.472
|
1195 |
C 522.176,343.144, 522.176,408.984, 481.568,449.608z" />
|
1196 |
+
<glyph unicode="" d="M 400,288l-16,0 l0,61.064 C 384,422.488, 330.872,480, 255.408,480C 179.64,480, 128,421.264, 128,349.064L 128,288 l-16,0
|
1197 |
c-35.296,0-64-28.704-64-64l0-192 c0-35.296, 28.704-64, 64-64l 288,0 c 35.296,0, 64,28.704, 64,64L 464,224 C 464,259.296, 435.296,288, 400,288z M 160,349.064
|
1198 |
C 160,403.608, 197.28,448, 255.408,448C 312.936,448, 352,404.544, 352,349.064L 352,288 L 160,288 L 160,349.064 z M 432,32c0-17.64-14.36-32-32-32L 112,0 c-17.64,0-32,14.36-32,32L 80,224
|
1199 |
c0,17.64, 14.36,32, 32,32l 288,0 c 17.64,0, 32-14.36, 32-32L 432,32 z M 256,192c-17.672,0-32-14.328-32-32c0-11.816, 6.48-22.016, 16-27.56L 240,80 c0-8.832, 7.168-16, 16-16
|
1200 |
s 16,7.168, 16,16l0,52.44 c 9.52,5.544, 16,15.752, 16,27.56C 288,177.672, 273.672,192, 256,192z" />
|
1201 |
+
<glyph unicode="" d="M 400,287.448L 171.52,287.448 l-8.28,37.136
|
1202 |
c-14.12,52.688, 10.408,105.216, 66.544,120.256c 55.568,14.888, 104.544-16.968, 118.912-70.56l 6.8-26.984c 2.288-8.536, 11.056-13.6, 19.6-11.312
|
1203 |
c 8.536,2.288, 13.6,11.056, 11.312,19.592l-6.808,26.984C 360.608,453.48, 294.408,495.28, 221.504,475.752C 148.32,456.144, 113.648,386.040, 132.336,316.296
|
1204 |
l 6.432-28.848L 112,287.448 c-35.296,0-64-28.704-64-64l0-192 c0-35.296, 28.704-64, 64-64l 288,0 c 35.296,0, 64,28.704, 64,64l0,192 C 464,258.744, 435.296,287.448, 400,287.448z
|
1205 |
M 432,31.448c0-17.64-14.36-32-32-32L 112-0.552 c-17.64,0-32,14.36-32,32l0,192 c0,17.64, 14.36,32, 32,32l 288,0 c 17.64,0, 32-14.36, 32-32L 432,31.448 z M 256,191.448
|
1206 |
c-17.672,0-32-14.328-32-32c0-11.816, 6.48-22.016, 16-27.56l0-52.44 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,52.44 c 9.52,5.544, 16,15.752, 16,27.56
|
1207 |
C 288,177.12, 273.672,191.448, 256,191.448z" />
|
1208 |
+
<glyph unicode="" d="M 507.32-4.52L 351.856,151.896c 28.976,34.704, 46.44,79.352, 46.44,128.104
|
1209 |
c0,110.456-89.544,200-200,200c-110.456,0-200-89.544-200-200c0-110.456, 89.544-200, 200-200c 50.184,0, 96.024,18.528, 131.144,49.072l 155.248-156.224
|
1210 |
c 6.248-6.248, 16.384-6.248, 22.632,0C 513.56-20.904, 513.56-10.776, 507.32-4.52z M 198.296,111.736
|
1211 |
C 105.368,111.736, 30.032,187.072, 30.032,280S 105.368,448.264, 198.296,448.264S 366.56,372.928, 366.56,280S 291.224,111.736, 198.296,111.736z" />
|
1212 |
+
<glyph unicode="" d="M 507.312-4.52L 365.8,137.864c 30.304,36.2, 48.544,82.88, 48.544,133.856
|
1213 |
C 414.344,386.752, 321.592,480, 206.568,480S-1.704,386.752-1.704,271.728c0-115.024, 93.248-208.272, 208.272-208.272
|
1214 |
c 52.504,0, 100.336,19.48, 136.848,51.536l 141.264-142.152c 6.248-6.248, 16.384-6.248, 22.624,0C 513.56-20.904, 513.56-10.776, 507.312-4.52z
|
1215 |
M 206.296,96c-96.776,0-176,79.224-176,176s 79.224,176, 176,176s 176-79.224, 176-176S 303.072,96, 206.296,96z M 286.296,288l-64,0 l0,64 c0,8.832-7.168,16-16,16
|
1216 |
s-16-7.168-16-16l0-64 l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0 l0-64 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,64 l 64,0 c 8.832,0, 16,7.168, 16,16
|
1217 |
S 295.136,288, 286.296,288z" />
|
1218 |
+
<glyph unicode="" d="M 507.312-4.52L 365.8,137.864c 30.304,36.2, 48.544,82.88, 48.544,133.856
|
1219 |
C 414.344,386.752, 321.592,480, 206.568,480S-1.704,386.752-1.704,271.728c0-115.024, 93.248-208.272, 208.272-208.272
|
1220 |
c 52.504,0, 100.336,19.48, 136.848,51.536l 141.264-142.152c 6.248-6.248, 16.384-6.248, 22.624,0C 513.56-20.904, 513.56-10.776, 507.312-4.52z
|
1221 |
M 206.296,96c-96.776,0-176,79.224-176,176s 79.224,176, 176,176s 176-79.224, 176-176S 303.072,96, 206.296,96z M 286.296,288l-160,0 c-8.832,0-16-7.168-16-16
|
1222 |
s 7.168-16, 16-16l 160,0 c 8.832,0, 16,7.168, 16,16S 295.136,288, 286.296,288z" />
|
1223 |
+
<glyph unicode="" d="M 86.36-23.816c-21.704,0-42.544,8.984-59.152,25.608C-9.616,38.736-9.616,98.824, 27.2,135.744L 314.336,440.656
|
1224 |
c 44.8,44.872, 113.424,40.84, 163.504-9.304c 22.44-22.48, 35.032-54.888, 34.56-88.952c-0.472-33.704-13.64-65.96-36.144-88.504L 259.248,22.872
|
1225 |
c-6.040-6.472-16.168-6.768-22.616-0.696c-6.432,6.080-6.744,16.224-0.68,22.672l 217.336,231.376c 17,17.032, 26.752,41.192, 27.112,66.624
|
1226 |
c 0.36,25.448-8.832,49.44-25.184,65.832c-30.72,30.784-80.736,46.904-117.92,9.632L 50.168,113.4c-24.688-24.752-24.68-64.504-0.32-88.928
|
1229 |
c-6.44,6.064-6.736,16.224-0.68,22.656l 172.272,183.232c 13.544,13.608, 27.392,20.984, 41.488,22.248c 11,0.976, 27.36-1.368, 44.048-18.104
|
1230 |
c 24.768-24.816, 21.688-61.216-7.64-90.608L 153.592,6.64c-18.24-18.304-40.264-28.936-62.36-30.296
|
1231 |
C 89.608-23.768, 87.984-23.816, 86.36-23.816z" />
|
1232 |
+
<glyph unicode="" d="M 502.016,480c-3.048,0-6.76-0.864-11.048-2.68L 13.64,274.776c-17.184-7.288-18.272-21.344-2.416-31.224l 134.88-84.016
|
1233 |
c 15.856-9.872, 36.824-31.040, 46.592-47.024l 80.856-132.384c 4.64-7.592, 10.248-11.36, 15.64-11.36c 5.96,0, 11.64,4.576, 15.512,13.616
|
1234 |
L 508.832,459.256C 514.36,472.192, 511.208,480, 502.016,480z M 162.776,188.040L 53.448,256.144L 420.256,411.768L 184.16,171.672
|
1235 |
C 176.944,178.072, 169.616,183.784, 162.776,188.040z M 286.36,22.368l-65.216,106.76c-3.848,6.304-8.928,13.024-14.592,19.696l 237.192,241.192
|
1236 |
L 286.36,22.368z" />
|
1237 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256
|
1238 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1239 |
S 379.512-0.504, 256-0.504z M 368,240L 272,240 L 272,336 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-96 L 144,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 96,0 l0-96
|
1240 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 272,208 l 96,0 c 8.832,0, 16,7.168, 16,16S 376.832,240, 368,240z" />
|
1241 |
+
<glyph unicode="" d="M 257.832,480.184C 152.88,480.184, 64,390.8, 64,284.912c0-110.88, 103.016-224.272, 172.312-303.968c 0.264-0.32, 11.464-12.76, 25.264-12.76
|
1242 |
l 1.224,0 c 13.8,0, 24.92,12.44, 25.2,12.76c 65.032,74.76, 160,198.024, 160,303.968C 448,390.8, 378.672,480.184, 257.832,480.184z M 264.248,2.408
|
1243 |
c-0.56-0.56-1.376-1.184-2.096-1.704c-0.736,0.504-1.536,1.144-2.128,1.704l-8.368,9.624C 185.96,87.4, 96,190.608, 96,284.912
|
1244 |
c0,88.504, 74.112,163.28, 161.832,163.28C 367.096,448.192, 416,366.192, 416,284.912C 416,213.32, 364.936,118.264, 264.248,2.408z M 256.56,383.296
|
1245 |
c-53.016,0-96-42.984-96-96s 42.984-96, 96-96s 96,42.984, 96,96S 309.576,383.296, 256.56,383.296z M 256.56,223.296
|
1246 |
c-35.288,0-64.736,29.408-64.736,64.704c0,35.288, 28.712,64, 64,64c 35.312,0, 64-28.712, 64-64C 319.84,252.704, 291.872,223.296, 256.56,223.296z" />
|
1247 |
+
<glyph unicode="" d="M 350.776,397.952c-8,3.728-17.512,0.296-21.264-7.712c-3.76-8-0.296-17.52, 7.704-21.272
|
1248 |
c 81.168-38, 125.248-125.976, 107.176-213.936c-21.456-104.44-123.832-171.904-228.28-150.512c-50.584,10.392-92.104,39.856-120.528,82.968
|
1249 |
c-28.432,43.128-38.368,94.752-27.976,145.336c 12.352,60.112, 51.312,109.664, 106.88,135.952c 7.984,3.776, 11.4,13.312, 7.616,21.304
|
1250 |
c-3.776,7.976-13.296,11.368-21.296,7.616C 96.056,367.064, 50.664,309.328, 36.264,239.264c-12.112-58.968-0.536-119.128, 32.592-169.392
|
1251 |
c 33.136-50.24, 81.848-84.584, 140.816-96.704c 15.216-3.128, 30.408-4.624, 45.376-4.624c 104.728,0, 198.824,73.56, 220.688,180.056
|
1252 |
C 496.792,251.104, 445.408,353.648, 350.776,397.952z M 256.008,272c 8.832,0, 16,7.168, 16,16L 272.008,464 c0,8.832-7.168,16-16,16c-8.832,0-16-7.168-16-16l0-176
|
1253 |
C 240.008,279.168, 247.176,272, 256.008,272z" />
|
1254 |
+
<glyph unicode="" d="M 248.704,30.72c-0.040,0.096-0.136,0.16-0.192,0.24l-45.96,71.832
|
1255 |
c-3.264,5.36-10.344,7.264-15.864,4.256l-4.096-2.52c-5.504-3-5.384-10.768-2.128-16.128l 29.464-45.704
|
1256 |
c-2.512,0.552-5.048,1-7.528,1.648c-51.592,13.496-95.248,48.416-119.768,95.8c-23.168,44.76-27.52,95.848-12.256,143.872
|
1257 |
c 15.256,48.024, 49.888,87.232, 94.648,110.392c 7.624,3.944, 10.6,13.32, 6.656,20.928c-3.936,7.632-13.32,10.616-20.928,6.664
|
1266 |
c 6.504-1, 12.984-2.208, 19.312-3.88c 51.616-13.52, 93.696-48.432, 118.2-95.784c 23.16-44.76, 27.512-95.848, 12.24-143.864
|
1267 |
c-15.256-48.024-48.328-87.224-93.088-110.408c-7.616-3.944-10.584-13.304-6.64-20.936c 2.76-5.32, 8.168-8.384, 13.8-8.384
|
1268 |
c 2.4,0, 4.832,0.56, 7.136,1.744c 52.136,26.968, 90.624,72.64, 108.408,128.56C 489.008,207.968, 483.936,267.48, 456.952,319.592z" />
|
1269 |
+
<glyph unicode="" d="M 255.64,480C 127.736,480, 23.68,375.936, 23.68,248.032
|
1270 |
c0-120.224, 92.648-220.768, 211.784-231.048l-45.928-23.28c-5.672-3.112-9.048-10.112-5.688-15.64l 1.624-4.2
|
1271 |
c 3.376-5.528, 10.688-7.488, 16.344-4.392l 76.656,39.248c 0.096,0.064, 0.2,0.048, 0.296,0.112l 5.144,2.816
|
1272 |
c 2.84,1.56, 4.72,4.112, 5.472,6.952c 0.784,2.84, 0.424,6-1.264,8.752l-3.048,5c-0.048,0.096-0.144,0.16-0.2,0.248
|
1274 |
c-0.152,0.008-0.288,0.064-0.432,0.072C 137.64,55.376, 55.68,143.032, 55.68,248.032C 55.68,358.296, 145.384,448, 255.64,448
|
1275 |
c 110.272,0, 200.48-89.704, 200.48-199.968c0-63.488-29.16-121.8-80-159.984c-7.064-5.312-8.488-15.344-3.184-22.408
|
1276 |
c 5.312-7.080, 15.344-8.488, 22.408-3.184c 58.968,44.296, 92.784,111.936, 92.784,185.576C 488.12,375.936, 383.552,480, 255.64,480z" />
|
1277 |
+
<glyph unicode="" d="M 480.248,272.472l-41.064,9.112c-3.2,10.24-7.392,20.040-12.2,29.464l 22.216,37.016c 8.296,13.256, 12.488,32.76,0,45.256l-22.64,22.624
|
1278 |
c-12.488,12.496-33.576,10.248-46.312,1.416l-36.016-22.944c-9.344,4.848-19.112,9-29.264,12.28l-9.216,41.56
|
1279 |
C 303,463.496, 289.672,480, 272,480l-32,0 c-17.672,0-28.504-16.752-32-32l-10.264-41.064c-10.84-3.456-21.248-7.872-31.168-13.104l-36.92,23.512
|
1280 |
c-12.728,8.832-33.824,11.080-46.312-1.416l-22.632-22.624c-12.496-12.504-8.304-32,0-45.256l 23.376-38.96
|
1298 |
c 3.576-0.664, 6.36-2.728, 6.952-3.848L 480.016,208.976z M 256.216,320.16c-53.136,0-96.368-43.144-96.368-96.16
|
1299 |
c0-53.008, 43.232-96.152, 96.368-96.152c 53.136,0, 96.368,43.144, 96.368,96.152C 352.584,277.016, 309.352,320.16, 256.216,320.16z M 256,160
|
1300 |
c-35.288,0-64,28.712-64,64c0,35.296, 28.712,64, 64,64c 35.296,0, 64-28.704, 64-64C 320,188.712, 291.288,160, 256,160z" />
|
1301 |
+
<glyph unicode="" d="M 256,441.256l 58.472-121.264l 10.264-21.28l 23.392-3.488l 132.912-19.744L 384.112,178.808l-16.28-16.248l 3.808-22.656l 22.64-135.080
|
1302 |
l-117.136,63l-21.168,11.392l-21.168-11.392L 117.68,4.792l 22.648,135.112l 3.792,22.656l-16.28,16.248L 30.952,275.496l 132.912,19.744
|
1303 |
l 23.384,3.488l 10.272,21.272L 256,441.256 M 255.992,472.224c-14.328,0-27.392-8.088-33.488-20.728l-57.952-120.32L 31.2,311.344
|
1304 |
c-13.696-2.048-25.072-11.4-29.488-24.192c-4.408-12.832-1.072-26.952, 8.6-36.576l 97.704-97.6l-22.664-135.328
|
1306 |
l 116.256-62.592c 5.592-2.992, 11.752-4.488, 17.888-4.488c 7.48,0, 14.952,2.208, 21.328,6.576c 11.552,7.976, 17.456,21.648, 15.16,35.288
|
1307 |
l-22.672,135.328l 97.752,97.6c 9.672,9.624, 12.984,23.752, 8.576,36.576c-4.424,12.808-15.8,22.16-29.488,24.192l-133.328,19.832l-57.984,120.32
|
1308 |
C 283.424,464.152, 270.352,472.224, 255.992,472.224L 255.992,472.224z" />
|
1309 |
+
<glyph unicode="" d="M 311.848,480.112c-110.456,0-200-89.536-200-200c0-49.256, 17.84-94.336, 47.368-129.184
|
1310 |
l-63.656-64.048l-67.632,68.272c-6.24,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 67.696-68.344l-68.176-68.592
|
1311 |
c-6.248-6.248-6.248-16.392,0-22.624c 6.24-6.248, 16.376-6.248, 22.624,0l 68.072,68.496l 68.232-68.88c 6.248-6.248, 16.376-6.248, 22.624,0
|
1312 |
s 6.248,16.376,0,22.624l-68.304,68.952l 63.704,64.096c 34.976-29.984, 80.384-48.144, 130.064-48.144c 110.456,0, 200,89.544, 200,200
|
1313 |
C 511.848,390.576, 422.304,480.112, 311.848,480.112z M 311.848,111.84c-92.928,0-168.264,75.344-168.264,168.272
|
1314 |
c0,92.928, 75.336,168.264, 168.264,168.264s 168.264-75.336, 168.264-168.264C 480.12,187.184, 404.784,111.84, 311.848,111.84z" />
|
1315 |
+
<glyph unicode="" d="M 511.648,468.672c 0.072,3.24-0.688,6.144-2.792,8.216
|
1316 |
c-2.072,2.088-4.976,3.36-8.2,3.264l-5.848-0.136c-0.112,0-0.192-0.040-0.32-0.056L 347.736,480.472
|
1317 |
c-6.464-0.144-11.808-5.496-11.96-11.96L 335.76,460.296c 0.984-7.624, 6.976-12.080, 13.44-11.936l 107.608-0.216L 328.736,320.848
|
1318 |
c-34.744,29.12-79.504,46.68-128.384,46.68c-110.464,0-200-89.536-200-200c0-110.456, 89.536-200, 200-200c 110.456,0, 200,89.544, 200,200
|
1320 |
c 6.48,0.152, 11.824,4, 11.96,10.464l 0.336,147.504c0,0.12-0.44,0.2-0.44,0.312L 511.648,468.672z M 368.616,167.528
|
1321 |
c0-92.928-75.336-168.264-168.272-168.264c-92.928,0-168.264,75.336-168.264,168.264s 75.336,168.264, 168.264,168.264
|
1322 |
C 293.28,335.8, 368.616,260.464, 368.616,167.528z" />
|
1323 |
+
<glyph unicode="" d="M 496,240l-48.72,0 C 439.584,333.264, 365.256,407.52, 272,415.232L 272,464 c0,8.832-7.168,16-16,16
|
1324 |
s-16-7.168-16-16l0-48.768 C 146.752,407.52, 72.416,333.264, 64.712,240L 16,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 48.712,0
|
1325 |
C 72.416,114.744, 146.752,40.48, 240,32.768L 240-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,48.768 C 365.256,40.48, 439.584,114.744, 447.28,208L 496,208
|
1326 |
c 8.832,0, 16,7.168, 16,16S 504.832,240, 496,240z M 240,383.208L 240,240 L 96.776,240 C 104.28,315.6, 164.4,375.704, 240,383.208z M 96.776,208L 240,208 l0-143.208
|
1327 |
C 164.4,72.296, 104.28,132.4, 96.776,208z M 272,64.792L 272,208 l 143.224,0 C 407.72,132.4, 347.6,72.296, 272,64.792z M 272,240L 272,383.208
|
1328 |
C 347.6,375.704, 407.72,315.6, 415.224,240L 272,240 z" />
|
1329 |
+
<glyph unicode="" d="M 327.384,447.048c-5.216,2.776-11.544,2.464-16.456-0.848L 150.384,320.144l-53.312-0.040c-27.256,0-49.44-19.328-49.44-43.2
|
1330 |
l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376c 2.688-1.816, 5.816-2.736, 8.952-2.736
|
1331 |
c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 335.872,432.92 C 335.864,438.832, 332.6,444.264, 327.384,447.048z
|
1332 |
M 303.864,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032c-10.272,0-17.44,5.856-17.44,11.232L 79.632,277.024
|
1334 |
c-8.856,1.464-16.968-4.432-18.424-13.152c-1.456-8.712, 4.44-16.96, 13.144-18.416c 25.16-4.2, 42.736-26.152, 42.736-53.376
|
1335 |
c0-25.92-18.184-48.344-43.248-53.344c-8.672-1.72-14.296-10.144-12.56-18.816c 1.512-7.608, 8.184-12.872, 15.672-12.872
|
1336 |
c 1.032,0, 2.096,0.096, 3.144,0.312c 39.984,7.952, 69,43.592, 69,84.72C 464.368,263.752, 435.152,299.472, 394.912,306.184z" />
|
1337 |
+
<glyph unicode="" d="M 287.248,447.048c-5.216,2.776-11.544,2.464-16.456-0.848L 110.248,320.144l-53.312-0.040c-27.256,0-49.44-19.328-49.44-43.2
|
1338 |
l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376c 2.688-1.816, 5.816-2.736, 8.952-2.736
|
1339 |
c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 295.736,432.92 C 295.736,438.832, 292.472,444.264, 287.248,447.048z
|
1340 |
M 263.736,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032c-10.272,0-17.44,5.856-17.44,11.232L 39.504,277.024
|
1346 |
c 48.264-18.008, 80.688-64.952, 80.688-116.816c0-51.888-32.424-98.92-80.656-117c-8.28-3.112-12.472-12.328-9.376-20.592
|
1347 |
c 2.408-6.44, 8.504-10.392, 14.984-10.392c 1.872,0, 3.768,0.328, 5.608,1.016c 60.672,22.752, 101.44,81.816, 101.44,146.968
|
1348 |
C 504.504,286.4, 463.704,345.392, 403,368.048z" />
|
1349 |
+
<glyph unicode="" d="M 287.768,447.048c-5.216,2.776-11.544,2.464-16.456-0.848L 110.76,320.144l-53.312-0.040
|
1350 |
c-27.256,0-49.44-19.328-49.44-43.2l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376
|
1351 |
c 2.688-1.816, 5.816-2.736, 8.952-2.736c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 296.248,432.92
|
1352 |
C 296.248,438.832, 292.984,444.264, 287.768,447.048z M 264.248,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032
|
1354 |
l 139.664,112L 264.248,45.184 z M 447,223.744l 52.296,52.92c 6.248,6.248, 6.248,16.376,0,22.624c-6.232,6.248-16.376,6.248-22.624,0l-52.168-52.784
|
1355 |
l-52.168,52.784c-6.232,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 52.296-52.92l-51.8-52.408c-6.232-6.24-6.248-16.376,0-22.624
|
1356 |
s 16.392-6.248, 22.64,0l 51.656,52.272l 51.656-52.272c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.384,0,22.624L 447,223.744z" />
|
1357 |
+
<glyph unicode="" d="M 373,62.36L 272.264,118.16c 37.44,29.456, 47.608,87.344, 47.608,119.8l0,67.56 c0,44.736-59.44,94.56-119.144,94.56
|
1358 |
c-59.688,0-120.704-49.832-120.704-94.56l0-67.56 c0-29.512, 12.488-89.216, 50.312-119.544L 27,62.36c0,0-27-12.032-27-27.032l0-40.544
|
1359 |
c0-14.92, 12.112-27.032, 27-27.032l 346,0 c 14.904,0, 27.016,12.112, 27.016,27.032l0,40.544 C 400.016,51.232, 373,62.36, 373,62.36z
|
1360 |
M 368.016-0.248L 32-0.248 l0,28.608 c 2.296,1.672, 5.504,3.608, 8.032,4.768c 0.752,0.344, 1.504,0.704, 2.216,1.112l 103.344,56.048
|
1367 |
c-8.456-6.656-13-17.112-12.112-27.832c 0.904-10.72, 7.128-20.264, 16.56-25.424l 102.232-55.8c 0.888-0.488, 2.016-1.016, 2.952-1.424
|
1368 |
c 2.36-1, 5.264-2.672, 7.392-4.144l0-28.456 l-64.592,0 c 9.752-7.36, 12.704-17.888, 16.488-32l 53.096,0 c 14.904,0, 27.016,12.112, 27.016,27.032l0,40.048
|
1369 |
C 512,130.904, 484.984,142.032, 484.984,142.032z" />
|
1370 |
+
<glyph unicode=" " horiz-adv-x="256" />
|
1371 |
</font>
|
1372 |
</defs>
|
1373 |
</svg>
|
assets/global/plugins/icons/icons-lte-ie7.js
CHANGED
@@ -169,21 +169,21 @@ window.onload = function () {
|
|
169 |
'icon-volume-2': '',
|
170 |
'icon-volume-off': ''
|
171 |
},
|
172 |
-
|
173 |
-
|
174 |
for (i = 0; ; i += 1) {
|
175 |
el = els[i];
|
176 |
if (!el) {
|
177 |
-
|
178 |
}
|
179 |
attr = el.getAttribute('data-icon');
|
180 |
if (attr) {
|
181 |
-
|
182 |
}
|
183 |
c = el.className;
|
184 |
c = c.match(/icon-[^\s'"]+/);
|
185 |
if (c && icons[c[0]]) {
|
186 |
-
|
187 |
}
|
188 |
}
|
189 |
};
|
169 |
'icon-volume-2': '',
|
170 |
'icon-volume-off': ''
|
171 |
},
|
172 |
+
els = document.getElementsByTagName('*'),
|
173 |
+
i, attr, c, el;
|
174 |
for (i = 0; ; i += 1) {
|
175 |
el = els[i];
|
176 |
if (!el) {
|
177 |
+
break;
|
178 |
}
|
179 |
attr = el.getAttribute('data-icon');
|
180 |
if (attr) {
|
181 |
+
addIcon(el, attr);
|
182 |
}
|
183 |
c = el.className;
|
184 |
c = c.match(/icon-[^\s'"]+/);
|
185 |
if (c && icons[c[0]]) {
|
186 |
+
addIcon(el, icons[c[0]]);
|
187 |
}
|
188 |
}
|
189 |
};
|
assets/global/plugins/toastr/toastr.css
CHANGED
@@ -140,15 +140,15 @@ button.toast-close-button
|
|
140 |
#toast-container>.toast-custom-error
|
141 |
{
|
142 |
/*background-image:
|
143 |
-
|
144 |
-
|
145 |
background-image: url("../../img/error.png") !important;
|
146 |
}
|
147 |
#toast-container>.toast-custom-success
|
148 |
{
|
149 |
/*background-image:
|
150 |
-
|
151 |
-
|
152 |
background-image: url("../../img/success.png") !important
|
153 |
}
|
154 |
#toast-container>.toast-warning
|
140 |
#toast-container>.toast-custom-error
|
141 |
{
|
142 |
/*background-image:
|
143 |
+
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=")
|
144 |
+
!important*/
|
145 |
background-image: url("../../img/error.png") !important;
|
146 |
}
|
147 |
#toast-container>.toast-custom-success
|
148 |
{
|
149 |
/*background-image:
|
150 |
+
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==")
|
151 |
+
!important*/
|
152 |
background-image: url("../../img/success.png") !important
|
153 |
}
|
154 |
#toast-container>.toast-warning
|
assets/global/plugins/toastr/toastr.js
CHANGED
@@ -2,344 +2,344 @@
|
|
2 |
(function (define) {
|
3 |
define(['jquery'], function ($) {
|
4 |
return (function () {
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
|
344 |
})();
|
345 |
});
|
2 |
(function (define) {
|
3 |
define(['jquery'], function ($) {
|
4 |
return (function () {
|
5 |
+
var $container;
|
6 |
+
var listener;
|
7 |
+
var toastId = 0;
|
8 |
+
var toastType = {
|
9 |
+
error: 'error',
|
10 |
+
info: 'info',
|
11 |
+
success: 'success',
|
12 |
+
warning: 'warning'
|
13 |
+
};
|
14 |
+
|
15 |
+
var toastr = {
|
16 |
+
clear: clear,
|
17 |
+
remove: remove,
|
18 |
+
error: error,
|
19 |
+
getContainer: getContainer,
|
20 |
+
info: info,
|
21 |
+
options: {},
|
22 |
+
subscribe: subscribe,
|
23 |
+
success: success,
|
24 |
+
version: '2.1.0',
|
25 |
+
warning: warning
|
26 |
+
};
|
27 |
+
|
28 |
+
var previousToast;
|
29 |
+
|
30 |
+
return toastr;
|
31 |
+
|
32 |
+
//#region Accessible Methods
|
33 |
+
function error(message, title, optionsOverride) {
|
34 |
+
return notify({
|
35 |
+
type: toastType.error,
|
36 |
+
iconClass: getOptions().iconClasses.error,
|
37 |
+
message: message,
|
38 |
+
optionsOverride: optionsOverride,
|
39 |
+
title: title
|
40 |
+
});
|
41 |
+
}
|
42 |
+
|
43 |
+
function getContainer(options, create) {
|
44 |
+
if (!options) {
|
45 |
+
options = getOptions();
|
46 |
+
}
|
47 |
+
$container = $('#' + options.containerId);
|
48 |
+
if ($container.length) {
|
49 |
+
return $container;
|
50 |
+
}
|
51 |
+
if (create) {
|
52 |
+
$container = createContainer(options);
|
53 |
+
}
|
54 |
+
return $container;
|
55 |
+
}
|
56 |
+
|
57 |
+
function info(message, title, optionsOverride) {
|
58 |
+
return notify({
|
59 |
+
type: toastType.info,
|
60 |
+
iconClass: getOptions().iconClasses.info,
|
61 |
+
message: message,
|
62 |
+
optionsOverride: optionsOverride,
|
63 |
+
title: title
|
64 |
+
});
|
65 |
+
}
|
66 |
+
|
67 |
+
function subscribe(callback) {
|
68 |
+
listener = callback;
|
69 |
+
}
|
70 |
+
|
71 |
+
function success(message, title, optionsOverride) {
|
72 |
+
return notify({
|
73 |
+
type: toastType.success,
|
74 |
+
iconClass: getOptions().iconClasses.success,
|
75 |
+
message: message,
|
76 |
+
optionsOverride: optionsOverride,
|
77 |
+
title: title
|
78 |
+
});
|
79 |
+
}
|
80 |
+
|
81 |
+
function warning(message, title, optionsOverride) {
|
82 |
+
return notify({
|
83 |
+
type: toastType.warning,
|
84 |
+
iconClass: getOptions().iconClasses.warning,
|
85 |
+
message: message,
|
86 |
+
optionsOverride: optionsOverride,
|
87 |
+
title: title
|
88 |
+
});
|
89 |
+
}
|
90 |
+
|
91 |
+
function clear($toastElement) {
|
92 |
+
var options = getOptions();
|
93 |
+
if (!$container) {
|
94 |
+
getContainer(options);
|
95 |
+
}
|
96 |
+
if (!clearToast($toastElement, options)) {
|
97 |
+
clearContainer(options);
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
function remove($toastElement) {
|
102 |
+
var options = getOptions();
|
103 |
+
if (!$container) {
|
104 |
+
getContainer(options);
|
105 |
+
}
|
106 |
+
if ($toastElement && $(':focus', $toastElement).length === 0) {
|
107 |
+
removeToast($toastElement);
|
108 |
+
return;
|
109 |
+
}
|
110 |
+
if ($container.children().length) {
|
111 |
+
$container.remove();
|
112 |
+
}
|
113 |
+
}
|
114 |
+
//#endregion
|
115 |
+
|
116 |
+
//#region Internal Methods
|
117 |
+
|
118 |
+
function clearContainer(options) {
|
119 |
+
var toastsToClear = $container.children();
|
120 |
+
for (var i = toastsToClear.length - 1; i >= 0; i--) {
|
121 |
+
clearToast($(toastsToClear[i]), options);
|
122 |
+
}
|
123 |
+
;
|
124 |
+
}
|
125 |
+
|
126 |
+
function clearToast($toastElement, options) {
|
127 |
+
if ($toastElement && $(':focus', $toastElement).length === 0) {
|
128 |
+
$toastElement[options.hideMethod]({
|
129 |
+
duration: options.hideDuration,
|
130 |
+
easing: options.hideEasing,
|
131 |
+
complete: function () {
|
132 |
+
removeToast($toastElement);
|
133 |
+
}
|
134 |
+
});
|
135 |
+
return true;
|
136 |
+
}
|
137 |
+
return false;
|
138 |
+
}
|
139 |
+
|
140 |
+
function createContainer(options) {
|
141 |
+
$container = $('<div/>')
|
142 |
+
.attr('id', options.containerId)
|
143 |
+
.addClass(options.positionClass)
|
144 |
+
.attr('aria-live', 'polite')
|
145 |
+
.attr('role', 'alert');
|
146 |
+
|
147 |
+
$container.appendTo($(options.target));
|
148 |
+
return $container;
|
149 |
+
}
|
150 |
+
|
151 |
+
function getDefaults() {
|
152 |
+
return {
|
153 |
+
tapToDismiss: true,
|
154 |
+
toastClass: 'toast',
|
155 |
+
containerId: 'toast-container',
|
156 |
+
debug: false,
|
157 |
+
|
158 |
+
showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery
|
159 |
+
showDuration: 300,
|
160 |
+
showEasing: 'swing', //swing and linear are built into jQuery
|
161 |
+
onShown: undefined,
|
162 |
+
hideMethod: 'fadeOut',
|
163 |
+
hideDuration: 1000,
|
164 |
+
hideEasing: 'swing',
|
165 |
+
onHidden: undefined,
|
166 |
+
|
167 |
+
extendedTimeOut: 1000,
|
168 |
+
iconClasses: {
|
169 |
+
error: 'toast-custom-error',
|
170 |
+
info: 'toast-info',
|
171 |
+
success: 'toast-custom-success',
|
172 |
+
warning: 'toast-warning'
|
173 |
+
},
|
174 |
+
iconClass: 'toast-info',
|
175 |
+
positionClass: 'toast-top-right',
|
176 |
+
timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky
|
177 |
+
titleClass: 'toast-title',
|
178 |
+
messageClass: 'toast-message',
|
179 |
+
target: 'body',
|
180 |
+
closeHtml: '<button>×</button>',
|
181 |
+
newestOnTop: true,
|
182 |
+
preventDuplicates: false
|
183 |
+
};
|
184 |
+
}
|
185 |
+
|
186 |
+
function publish(args) {
|
187 |
+
if (!listener) {
|
188 |
+
return;
|
189 |
+
}
|
190 |
+
listener(args);
|
191 |
+
}
|
192 |
+
|
193 |
+
function notify(map) {
|
194 |
+
var options = getOptions(),
|
195 |
+
iconClass = map.iconClass || options.iconClass;
|
196 |
+
|
197 |
+
if (options.preventDuplicates) {
|
198 |
+
if (map.message === previousToast) {
|
199 |
+
return;
|
200 |
+
} else {
|
201 |
+
previousToast = map.message;
|
202 |
+
}
|
203 |
+
}
|
204 |
+
|
205 |
+
if (typeof (map.optionsOverride) !== 'undefined') {
|
206 |
+
options = $.extend(options, map.optionsOverride);
|
207 |
+
iconClass = map.optionsOverride.iconClass || iconClass;
|
208 |
+
}
|
209 |
+
|
210 |
+
toastId++;
|
211 |
+
|
212 |
+
$container = getContainer(options, true);
|
213 |
+
var intervalId = null,
|
214 |
+
$toastElement = $('<div/>'),
|
215 |
+
$titleElement = $('<div/>'),
|
216 |
+
$messageElement = $('<div/>'),
|
217 |
+
$closeElement = $(options.closeHtml),
|
218 |
+
response = {
|
219 |
+
toastId: toastId,
|
220 |
+
state: 'visible',
|
221 |
+
startTime: new Date(),
|
222 |
+
options: options,
|
223 |
+
map: map
|
224 |
+
};
|
225 |
+
|
226 |
+
if (map.iconClass) {
|
227 |
+
$toastElement.addClass(options.toastClass).addClass(iconClass);
|
228 |
+
}
|
229 |
+
|
230 |
+
if (map.title) {
|
231 |
+
$titleElement.append(map.title).addClass(options.titleClass);
|
232 |
+
$toastElement.append($titleElement);
|
233 |
+
}
|
234 |
+
|
235 |
+
if (map.message) {
|
236 |
+
$messageElement.append(map.message).addClass(options.messageClass);
|
237 |
+
$toastElement.append($messageElement);
|
238 |
+
}
|
239 |
+
|
240 |
+
if (options.closeButton) {
|
241 |
+
$closeElement.addClass('toast-close-button').attr("role", "button");
|
242 |
+
$toastElement.prepend($closeElement);
|
243 |
+
}
|
244 |
+
|
245 |
+
$toastElement.hide();
|
246 |
+
if (options.newestOnTop) {
|
247 |
+
$container.prepend($toastElement);
|
248 |
+
} else {
|
249 |
+
$container.append($toastElement);
|
250 |
+
}
|
251 |
+
|
252 |
+
|
253 |
+
$toastElement[options.showMethod](
|
254 |
+
{duration: options.showDuration, easing: options.showEasing, complete: options.onShown}
|
255 |
+
);
|
256 |
+
|
257 |
+
if (options.timeOut > 0) {
|
258 |
+
intervalId = setTimeout(hideToast, options.timeOut);
|
259 |
+
}
|
260 |
+
|
261 |
+
$toastElement.hover(stickAround, delayedHideToast);
|
262 |
+
if (!options.onclick && options.tapToDismiss) {
|
263 |
+
$toastElement.click(hideToast);
|
264 |
+
}
|
265 |
+
|
266 |
+
if (options.closeButton && $closeElement) {
|
267 |
+
$closeElement.click(function (event) {
|
268 |
+
if (event.stopPropagation) {
|
269 |
+
event.stopPropagation();
|
270 |
+
} else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {
|
271 |
+
event.cancelBubble = true;
|
272 |
+
}
|
273 |
+
hideToast(true);
|
274 |
+
});
|
275 |
+
}
|
276 |
+
|
277 |
+
if (options.onclick) {
|
278 |
+
$toastElement.click(function () {
|
279 |
+
options.onclick();
|
280 |
+
hideToast();
|
281 |
+
});
|
282 |
+
}
|
283 |
+
|
284 |
+
publish(response);
|
285 |
+
|
286 |
+
if (options.debug && console) {
|
287 |
+
console.log(response);
|
288 |
+
}
|
289 |
+
|
290 |
+
return $toastElement;
|
291 |
+
|
292 |
+
function hideToast(override) {
|
293 |
+
if ($(':focus', $toastElement).length && !override) {
|
294 |
+
return;
|
295 |
+
}
|
296 |
+
return $toastElement[options.hideMethod]({
|
297 |
+
duration: options.hideDuration,
|
298 |
+
easing: options.hideEasing,
|
299 |
+
complete: function () {
|
300 |
+
removeToast($toastElement);
|
301 |
+
if (options.onHidden && response.state !== 'hidden') {
|
302 |
+
options.onHidden();
|
303 |
+
}
|
304 |
+
response.state = 'hidden';
|
305 |
+
response.endTime = new Date();
|
306 |
+
publish(response);
|
307 |
+
}
|
308 |
+
});
|
309 |
+
}
|
310 |
+
|
311 |
+
function delayedHideToast() {
|
312 |
+
if (options.timeOut > 0 || options.extendedTimeOut > 0) {
|
313 |
+
intervalId = setTimeout(hideToast, options.extendedTimeOut);
|
314 |
+
}
|
315 |
+
}
|
316 |
+
|
317 |
+
function stickAround() {
|
318 |
+
clearTimeout(intervalId);
|
319 |
+
$toastElement.stop(true, true)[options.showMethod](
|
320 |
+
{duration: options.showDuration, easing: options.showEasing}
|
321 |
+
);
|
322 |
+
}
|
323 |
+
}
|
324 |
+
|
325 |
+
function getOptions() {
|
326 |
+
return $.extend({}, getDefaults(), toastr.options);
|
327 |
+
}
|
328 |
+
|
329 |
+
function removeToast($toastElement) {
|
330 |
+
if (!$container) {
|
331 |
+
$container = getContainer();
|
332 |
+
}
|
333 |
+
if ($toastElement.is(':visible')) {
|
334 |
+
return;
|
335 |
+
}
|
336 |
+
$toastElement.remove();
|
337 |
+
$toastElement = null;
|
338 |
+
if ($container.children().length === 0) {
|
339 |
+
$container.remove();
|
340 |
+
}
|
341 |
+
}
|
342 |
+
//#endregion
|
343 |
|
344 |
})();
|
345 |
});
|
assets/global/plugins/validation/jquery.validate.js
CHANGED
@@ -15,195 +15,195 @@
|
|
15 |
$.extend($.fn, {
|
16 |
validate: function (options) {
|
17 |
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
},
|
106 |
valid: function () {
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
},
|
125 |
rules: function (command, argument) {
|
126 |
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
}
|
193 |
});
|
194 |
|
195 |
// Custom selectors
|
196 |
$.extend($.expr[ ":" ], {
|
197 |
blank: function (a) {
|
198 |
-
|
199 |
},
|
200 |
filled: function (a) {
|
201 |
-
|
202 |
-
|
203 |
},
|
204 |
|
205 |
unchecked: function (a) {
|
206 |
-
|
207 |
}
|
208 |
});
|
209 |
|
@@ -216,25 +216,25 @@
|
|
216 |
|
217 |
$.validator.format = function (source, params) {
|
218 |
if (arguments.length === 1) {
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
}
|
225 |
if (params === undefined) {
|
226 |
-
|
227 |
}
|
228 |
if (arguments.length > 2 && params.constructor !== Array) {
|
229 |
-
|
230 |
}
|
231 |
if (params.constructor !== Array) {
|
232 |
-
|
233 |
}
|
234 |
$.each(params, function (i, n) {
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
});
|
239 |
return source;
|
240 |
};
|
@@ -242,1093 +242,1093 @@
|
|
242 |
$.extend($.validator, {
|
243 |
|
244 |
defaults: {
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
},
|
311 |
setDefaults: function (settings) {
|
312 |
-
|
313 |
},
|
314 |
|
315 |
messages: {
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
},
|
333 |
|
334 |
autoCreateRanges: false,
|
335 |
|
336 |
prototype: {
|
337 |
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
},
|
1003 |
classRuleSettings: {
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
},
|
1013 |
|
1014 |
addClassRules: function (className, rules) {
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
},
|
1021 |
|
1022 |
classRules: function (element) {
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
},
|
1035 |
|
1036 |
normalizeAttributeRule: function (rules, type, method, value) {
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
},
|
1050 |
|
1051 |
attributeRules: function (element) {
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
},
|
1075 |
|
1076 |
dataRules: function (element) {
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
},
|
1088 |
|
1089 |
staticRules: function (element) {
|
1090 |
-
|
1091 |
-
|
1092 |
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
},
|
1098 |
|
1099 |
normalizeRules: function (rules, element) {
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
},
|
1156 |
normalizeRule: function (data) {
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
},
|
1166 |
addMethod: function (name, method, message) {
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
},
|
1173 |
methods: {
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
|
1282 |
-
|
1283 |
-
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
|
1294 |
-
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
}
|
1306 |
});
|
1307 |
var pendingRequests = {},
|
1308 |
-
|
1309 |
if ($.ajaxPrefilter) {
|
1310 |
$.ajaxPrefilter(function (settings, _, xhr) {
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
});
|
1319 |
} else {
|
1320 |
ajax = $.ajax;
|
1321 |
$.ajax = function (settings) {
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
};
|
1333 |
}
|
1334 |
}));
|
15 |
$.extend($.fn, {
|
16 |
validate: function (options) {
|
17 |
|
18 |
+
// If nothing is selected, return nothing; can't chain anyway
|
19 |
+
if (!this.length) {
|
20 |
+
if (options && options.debug && window.console) {
|
21 |
+
console.warn("Nothing selected, can't validate, returning nothing.");
|
22 |
+
}
|
23 |
+
return;
|
24 |
+
}
|
25 |
+
|
26 |
+
// Check if a validator for this form was already created
|
27 |
+
var validator = $.data(this[ 0 ], "validator");
|
28 |
+
if (validator) {
|
29 |
+
return validator;
|
30 |
+
}
|
31 |
+
|
32 |
+
// Add novalidate tag if HTML5.
|
33 |
+
this.attr("novalidate", "novalidate");
|
34 |
+
|
35 |
+
validator = new $.validator(options, this[ 0 ]);
|
36 |
+
$.data(this[ 0 ], "validator", validator);
|
37 |
+
|
38 |
+
if (validator.settings.onsubmit) {
|
39 |
+
|
40 |
+
this.on("click.validate", ":submit", function (event) {
|
41 |
+
if (validator.settings.submitHandler) {
|
42 |
+
validator.submitButton = event.target;
|
43 |
+
}
|
44 |
+
|
45 |
+
// Allow suppressing validation by adding a cancel class to the submit button
|
46 |
+
if ($(this).hasClass("cancel")) {
|
47 |
+
validator.cancelSubmit = true;
|
48 |
+
}
|
49 |
+
|
50 |
+
// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button
|
51 |
+
if ($(this).attr("formnovalidate") !== undefined) {
|
52 |
+
validator.cancelSubmit = true;
|
53 |
+
}
|
54 |
+
});
|
55 |
+
|
56 |
+
// Validate the form on submit
|
57 |
+
this.on("submit.validate", function (event) {
|
58 |
+
if (validator.settings.debug) {
|
59 |
+
|
60 |
+
// Prevent form submit to be able to see console output
|
61 |
+
event.preventDefault();
|
62 |
+
}
|
63 |
+
function handle() {
|
64 |
+
var hidden, result;
|
65 |
+
if (validator.settings.submitHandler) {
|
66 |
+
if (validator.submitButton) {
|
67 |
+
|
68 |
+
// Insert a hidden input as a replacement for the missing submit button
|
69 |
+
hidden = $("<input type='hidden'/>")
|
70 |
+
.attr("name", validator.submitButton.name)
|
71 |
+
.val($(validator.submitButton).val())
|
72 |
+
.appendTo(validator.currentForm);
|
73 |
+
}
|
74 |
+
result = validator.settings.submitHandler.call(validator, validator.currentForm, event);
|
75 |
+
if (validator.submitButton) {
|
76 |
+
|
77 |
+
// And clean up afterwards; thanks to no-block-scope, hidden can be referenced
|
78 |
+
hidden.remove();
|
79 |
+
}
|
80 |
+
if (result !== undefined) {
|
81 |
+
return result;
|
82 |
+
}
|
83 |
+
return false;
|
84 |
+
}
|
85 |
+
return true;
|
86 |
+
}
|
87 |
+
if (validator.cancelSubmit) {
|
88 |
+
validator.cancelSubmit = false;
|
89 |
+
return handle();
|
90 |
+
}
|
91 |
+
if (validator.form()) {
|
92 |
+
if (validator.pendingRequest) {
|
93 |
+
validator.formSubmitted = true;
|
94 |
+
return false;
|
95 |
+
}
|
96 |
+
return handle();
|
97 |
+
} else {
|
98 |
+
validator.focusInvalid();
|
99 |
+
return false;
|
100 |
+
}
|
101 |
+
});
|
102 |
+
}
|
103 |
+
|
104 |
+
return validator;
|
105 |
},
|
106 |
valid: function () {
|
107 |
+
var valid, validator, errorList;
|
108 |
+
|
109 |
+
if ($(this[ 0 ]).is("form")) {
|
110 |
+
valid = this.validate().form();
|
111 |
+
} else {
|
112 |
+
errorList = [];
|
113 |
+
valid = true;
|
114 |
+
validator = $(this[ 0 ].form).validate();
|
115 |
+
this.each(function () {
|
116 |
+
valid = validator.element(this) && valid;
|
117 |
+
if (!valid) {
|
118 |
+
errorList = errorList.concat(validator.errorList);
|
119 |
+
}
|
120 |
+
});
|
121 |
+
validator.errorList = errorList;
|
122 |
+
}
|
123 |
+
return valid;
|
124 |
},
|
125 |
rules: function (command, argument) {
|
126 |
|
127 |
+
// If nothing is selected, return nothing; can't chain anyway
|
128 |
+
if (!this.length) {
|
129 |
+
return;
|
130 |
+
}
|
131 |
+
|
132 |
+
var element = this[ 0 ],
|
133 |
+
settings, staticRules, existingRules, data, param, filtered;
|
134 |
+
|
135 |
+
if (command) {
|
136 |
+
settings = $.data(element.form, "validator").settings;
|
137 |
+
staticRules = settings.rules;
|
138 |
+
existingRules = $.validator.staticRules(element);
|
139 |
+
switch (command) {
|
140 |
+
case "add":
|
141 |
+
$.extend(existingRules, $.validator.normalizeRule(argument));
|
142 |
+
|
143 |
+
// Remove messages from rules, but allow them to be set separately
|
144 |
+
delete existingRules.messages;
|
145 |
+
staticRules[ element.name ] = existingRules;
|
146 |
+
if (argument.messages) {
|
147 |
+
settings.messages[ element.name ] = $.extend(settings.messages[ element.name ], argument.messages);
|
148 |
+
}
|
149 |
+
break;
|
150 |
+
case "remove":
|
151 |
+
if (!argument) {
|
152 |
+
delete staticRules[ element.name ];
|
153 |
+
return existingRules;
|
154 |
+
}
|
155 |
+
filtered = {};
|
156 |
+
$.each(argument.split(/\s/), function (index, method) {
|
157 |
+
filtered[ method ] = existingRules[ method ];
|
158 |
+
delete existingRules[ method ];
|
159 |
+
if (method === "required") {
|
160 |
+
$(element).removeAttr("aria-required");
|
161 |
+
}
|
162 |
+
});
|
163 |
+
return filtered;
|
164 |
+
}
|
165 |
+
}
|
166 |
+
|
167 |
+
data = $.validator.normalizeRules(
|
168 |
+
$.extend(
|
169 |
+
{},
|
170 |
+
$.validator.classRules(element),
|
171 |
+
$.validator.attributeRules(element),
|
172 |
+
$.validator.dataRules(element),
|
173 |
+
$.validator.staticRules(element)
|
174 |
+
), element);
|
175 |
+
|
176 |
+
// Make sure required is at front
|
177 |
+
if (data.required) {
|
178 |
+
param = data.required;
|
179 |
+
delete data.required;
|
180 |
+
data = $.extend({required: param}, data);
|
181 |
+
$(element).attr("aria-required", "true");
|
182 |
+
}
|
183 |
+
|
184 |
+
// Make sure remote is at back
|
185 |
+
if (data.remote) {
|
186 |
+
param = data.remote;
|
187 |
+
delete data.remote;
|
188 |
+
data = $.extend(data, {remote: param});
|
189 |
+
}
|
190 |
+
|
191 |
+
return data;
|
192 |
}
|
193 |
});
|
194 |
|
195 |
// Custom selectors
|
196 |
$.extend($.expr[ ":" ], {
|
197 |
blank: function (a) {
|
198 |
+
return !$.trim("" + $(a).val());
|
199 |
},
|
200 |
filled: function (a) {
|
201 |
+
var val = $(a).val();
|
202 |
+
return val !== null && !!$.trim("" + val);
|
203 |
},
|
204 |
|
205 |
unchecked: function (a) {
|
206 |
+
return !$(a).prop("checked");
|
207 |
}
|
208 |
});
|
209 |
|
216 |
|
217 |
$.validator.format = function (source, params) {
|
218 |
if (arguments.length === 1) {
|
219 |
+
return function () {
|
220 |
+
var args = $.makeArray(arguments);
|
221 |
+
args.unshift(source);
|
222 |
+
return $.validator.format.apply(this, args);
|
223 |
+
};
|
224 |
}
|
225 |
if (params === undefined) {
|
226 |
+
return source;
|
227 |
}
|
228 |
if (arguments.length > 2 && params.constructor !== Array) {
|
229 |
+
params = $.makeArray(arguments).slice(1);
|
230 |
}
|
231 |
if (params.constructor !== Array) {
|
232 |
+
params = [params];
|
233 |
}
|
234 |
$.each(params, function (i, n) {
|
235 |
+
source = source.replace(new RegExp("\\{" + i + "\\}", "g"), function () {
|
236 |
+
return n;
|
237 |
+
});
|
238 |
});
|
239 |
return source;
|
240 |
};
|
242 |
$.extend($.validator, {
|
243 |
|
244 |
defaults: {
|
245 |
+
messages: {},
|
246 |
+
groups: {},
|
247 |
+
rules: {},
|
248 |
+
errorClass: "error",
|
249 |
+
pendingClass: "pending",
|
250 |
+
validClass: "valid",
|
251 |
+
errorElement: "label",
|
252 |
+
focusCleanup: false,
|
253 |
+
focusInvalid: true,
|
254 |
+
errorContainer: $([]),
|
255 |
+
errorLabelContainer: $([]),
|
256 |
+
onsubmit: true,
|
257 |
+
ignore: ":hidden",
|
258 |
+
ignoreTitle: false,
|
259 |
+
onfocusin: function (element) {
|
260 |
+
this.lastActive = element;
|
261 |
+
if (this.settings.focusCleanup) {
|
262 |
+
if (this.settings.unhighlight) {
|
263 |
+
this.settings.unhighlight.call(this, element, this.settings.errorClass, this.settings.validClass);
|
264 |
+
}
|
265 |
+
this.hideThese(this.errorsFor(element));
|
266 |
+
}
|
267 |
+
},
|
268 |
+
onfocusout: function (element) {
|
269 |
+
if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element))) {
|
270 |
+
this.element(element);
|
271 |
+
}
|
272 |
+
},
|
273 |
+
onkeyup: function (element, event) {
|
274 |
+
var excludedKeys = [
|
275 |
+
16, 17, 18, 20, 35, 36, 37,
|
276 |
+
38, 39, 40, 45, 144, 225
|
277 |
+
];
|
278 |
+
|
279 |
+
if (event.which === 9 && this.elementValue(element) === "" || $.inArray(event.keyCode, excludedKeys) !== -1) {
|
280 |
+
return;
|
281 |
+
} else if (element.name in this.submitted || element.name in this.invalid) {
|
282 |
+
this.element(element);
|
283 |
+
}
|
284 |
+
},
|
285 |
+
onclick: function (element) {
|
286 |
+
|
287 |
+
// Click on selects, radiobuttons and checkboxes
|
288 |
+
if (element.name in this.submitted) {
|
289 |
+
this.element(element);
|
290 |
+
|
291 |
+
// Or option elements, check parent select in that case
|
292 |
+
} else if (element.parentNode.name in this.submitted) {
|
293 |
+
this.element(element.parentNode);
|
294 |
+
}
|
295 |
+
},
|
296 |
+
highlight: function (element, errorClass, validClass) {
|
297 |
+
if (element.type === "radio") {
|
298 |
+
this.findByName(element.name).addClass(errorClass).removeClass(validClass);
|
299 |
+
} else {
|
300 |
+
$(element).addClass(errorClass).removeClass(validClass);
|
301 |
+
}
|
302 |
+
},
|
303 |
+
unhighlight: function (element, errorClass, validClass) {
|
304 |
+
if (element.type === "radio") {
|
305 |
+
this.findByName(element.name).removeClass(errorClass).addClass(validClass);
|
306 |
+
} else {
|
307 |
+
$(element).removeClass(errorClass).addClass(validClass);
|
308 |
+
}
|
309 |
+
}
|
310 |
},
|
311 |
setDefaults: function (settings) {
|
312 |
+
$.extend($.validator.defaults, settings);
|
313 |
},
|
314 |
|
315 |
messages: {
|
316 |
+
required: "This field is required.",
|
317 |
+
remote: "Please fix this field.",
|
318 |
+
email: "Please enter a valid email address.",
|
319 |
+
url: "Please enter a valid URL.",
|
320 |
+
date: "Please enter a valid date.",
|
321 |
+
dateISO: "Please enter a valid date ( ISO ).",
|
322 |
+
number: "Please enter a valid number.",
|
323 |
+
digits: "Please enter only digits.",
|
324 |
+
equalTo: "Please enter the same value again.",
|
325 |
+
maxlength: $.validator.format("Please enter no more than {0} characters."),
|
326 |
+
minlength: $.validator.format("Please enter at least {0} characters."),
|
327 |
+
rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
|
328 |
+
range: $.validator.format("Please enter a value between {0} and {1}."),
|
329 |
+
max: $.validator.format("Please enter a value less than or equal to {0}."),
|
330 |
+
min: $.validator.format("Please enter a value greater than or equal to {0}."),
|
331 |
+
step: $.validator.format("Please enter a multiple of {0}.")
|
332 |
},
|
333 |
|
334 |
autoCreateRanges: false,
|
335 |
|
336 |
prototype: {
|
337 |
|
338 |
+
init: function () {
|
339 |
+
this.labelContainer = $(this.settings.errorLabelContainer);
|
340 |
+
this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm);
|
341 |
+
this.containers = $(this.settings.errorContainer).add(this.settings.errorLabelContainer);
|
342 |
+
this.submitted = {};
|
343 |
+
this.valueCache = {};
|
344 |
+
this.pendingRequest = 0;
|
345 |
+
this.pending = {};
|
346 |
+
this.invalid = {};
|
347 |
+
this.reset();
|
348 |
+
|
349 |
+
var groups = (this.groups = {}),
|
350 |
+
rules;
|
351 |
+
$.each(this.settings.groups, function (key, value) {
|
352 |
+
if (typeof value === "string") {
|
353 |
+
value = value.split(/\s/);
|
354 |
+
}
|
355 |
+
$.each(value, function (index, name) {
|
356 |
+
groups[ name ] = key;
|
357 |
+
});
|
358 |
+
});
|
359 |
+
rules = this.settings.rules;
|
360 |
+
$.each(rules, function (key, value) {
|
361 |
+
rules[ key ] = $.validator.normalizeRule(value);
|
362 |
+
});
|
363 |
+
|
364 |
+
function delegate(event) {
|
365 |
+
var validator = $.data(this.form, "validator"),
|
366 |
+
eventType = "on" + event.type.replace(/^validate/, ""),
|
367 |
+
settings = validator.settings;
|
368 |
+
if (settings[ eventType ] && !$(this).is(settings.ignore)) {
|
369 |
+
settings[ eventType ].call(validator, this, event);
|
370 |
+
}
|
371 |
+
}
|
372 |
+
|
373 |
+
$(this.currentForm)
|
374 |
+
.on("focusin.validate focusout.validate keyup.validate",
|
375 |
+
":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], " +
|
376 |
+
"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], " +
|
377 |
+
"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], " +
|
378 |
+
"[type='radio'], [type='checkbox'], [contenteditable]", delegate)
|
379 |
+
.on("click.validate", "select, option, [type='radio'], [type='checkbox']", delegate);
|
380 |
+
|
381 |
+
if (this.settings.invalidHandler) {
|
382 |
+
$(this.currentForm).on("invalid-form.validate", this.settings.invalidHandler);
|
383 |
+
}
|
384 |
+
|
385 |
+
// Add aria-required to any Static/Data/Class required fields before first validation
|
386 |
+
// Screen readers require this attribute to be present before the initial submission http://www.w3.org/TR/WCAG-TECHS/ARIA2.html
|
387 |
+
$(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required", "true");
|
388 |
+
},
|
389 |
+
|
390 |
+
form: function () {
|
391 |
+
this.checkForm();
|
392 |
+
$.extend(this.submitted, this.errorMap);
|
393 |
+
this.invalid = $.extend({}, this.errorMap);
|
394 |
+
if (!this.valid()) {
|
395 |
+
$(this.currentForm).triggerHandler("invalid-form", [this]);
|
396 |
+
}
|
397 |
+
this.showErrors();
|
398 |
+
return this.valid();
|
399 |
+
},
|
400 |
+
|
401 |
+
checkForm: function () {
|
402 |
+
this.prepareForm();
|
403 |
+
for (var i = 0, elements = (this.currentElements = this.elements()); elements[ i ]; i++) {
|
404 |
+
this.check(elements[ i ]);
|
405 |
+
}
|
406 |
+
return this.valid();
|
407 |
+
},
|
408 |
+
element: function (element) {
|
409 |
+
var cleanElement = this.clean(element),
|
410 |
+
checkElement = this.validationTargetFor(cleanElement),
|
411 |
+
v = this,
|
412 |
+
result = true,
|
413 |
+
rs, group;
|
414 |
+
|
415 |
+
if (checkElement === undefined) {
|
416 |
+
delete this.invalid[ cleanElement.name ];
|
417 |
+
} else {
|
418 |
+
this.prepareElement(checkElement);
|
419 |
+
this.currentElements = $(checkElement);
|
420 |
+
|
421 |
+
// If this element is grouped, then validate all group elements already
|
422 |
+
// containing a value
|
423 |
+
group = this.groups[ checkElement.name ];
|
424 |
+
if (group) {
|
425 |
+
$.each(this.groups, function (name, testgroup) {
|
426 |
+
if (testgroup === group && name !== checkElement.name) {
|
427 |
+
cleanElement = v.validationTargetFor(v.clean(v.findByName(name)));
|
428 |
+
if (cleanElement && cleanElement.name in v.invalid) {
|
429 |
+
v.currentElements.push(cleanElement);
|
430 |
+
result = result && v.check(cleanElement);
|
431 |
+
}
|
432 |
+
}
|
433 |
+
});
|
434 |
+
}
|
435 |
+
|
436 |
+
rs = this.check(checkElement) !== false;
|
437 |
+
result = result && rs;
|
438 |
+
if (rs) {
|
439 |
+
this.invalid[ checkElement.name ] = false;
|
440 |
+
} else {
|
441 |
+
this.invalid[ checkElement.name ] = true;
|
442 |
+
}
|
443 |
+
|
444 |
+
if (!this.numberOfInvalids()) {
|
445 |
+
|
446 |
+
// Hide error containers on last error
|
447 |
+
this.toHide = this.toHide.add(this.containers);
|
448 |
+
}
|
449 |
+
this.showErrors();
|
450 |
+
|
451 |
+
// Add aria-invalid status for screen readers
|
452 |
+
$(element).attr("aria-invalid", !rs);
|
453 |
+
}
|
454 |
+
|
455 |
+
return result;
|
456 |
+
},
|
457 |
+
showErrors: function (errors) {
|
458 |
+
if (errors) {
|
459 |
+
var validator = this;
|
460 |
+
|
461 |
+
// Add items to error list and map
|
462 |
+
$.extend(this.errorMap, errors);
|
463 |
+
this.errorList = $.map(this.errorMap, function (message, name) {
|
464 |
+
return {
|
465 |
+
message: message,
|
466 |
+
element: validator.findByName(name)[ 0 ]
|
467 |
+
};
|
468 |
+
});
|
469 |
+
|
470 |
+
// Remove items from success list
|
471 |
+
this.successList = $.grep(this.successList, function (element) {
|
472 |
+
return !(element.name in errors);
|
473 |
+
});
|
474 |
+
}
|
475 |
+
if (this.settings.showErrors) {
|
476 |
+
this.settings.showErrors.call(this, this.errorMap, this.errorList);
|
477 |
+
} else {
|
478 |
+
this.defaultShowErrors();
|
479 |
+
}
|
480 |
+
},
|
481 |
+
resetForm: function () {
|
482 |
+
if ($.fn.resetForm) {
|
483 |
+
$(this.currentForm).resetForm();
|
484 |
+
}
|
485 |
+
this.invalid = {};
|
486 |
+
this.submitted = {};
|
487 |
+
this.prepareForm();
|
488 |
+
this.hideErrors();
|
489 |
+
var elements = this.elements()
|
490 |
+
.removeData("previousValue")
|
491 |
+
.removeAttr("aria-invalid");
|
492 |
+
|
493 |
+
this.resetElements(elements);
|
494 |
+
},
|
495 |
+
|
496 |
+
resetElements: function (elements) {
|
497 |
+
var i;
|
498 |
+
|
499 |
+
if (this.settings.unhighlight) {
|
500 |
+
for (i = 0; elements[ i ]; i++) {
|
501 |
+
this.settings.unhighlight.call(this, elements[ i ],
|
502 |
+
this.settings.errorClass, "");
|
503 |
+
this.findByName(elements[ i ].name).removeClass(this.settings.validClass);
|
504 |
+
}
|
505 |
+
} else {
|
506 |
+
elements
|
507 |
+
.removeClass(this.settings.errorClass)
|
508 |
+
.removeClass(this.settings.validClass);
|
509 |
+
}
|
510 |
+
},
|
511 |
+
|
512 |
+
numberOfInvalids: function () {
|
513 |
+
return this.objectLength(this.invalid);
|
514 |
+
},
|
515 |
+
|
516 |
+
objectLength: function (obj) {
|
517 |
+
/* jshint unused: false */
|
518 |
+
var count = 0,
|
519 |
+
i;
|
520 |
+
for (i in obj) {
|
521 |
+
if (obj[ i ]) {
|
522 |
+
count++;
|
523 |
+
}
|
524 |
+
}
|
525 |
+
return count;
|
526 |
+
},
|
527 |
+
|
528 |
+
hideErrors: function () {
|
529 |
+
this.hideThese(this.toHide);
|
530 |
+
},
|
531 |
+
|
532 |
+
hideThese: function (errors) {
|
533 |
+
errors.not(this.containers).text("");
|
534 |
+
this.addWrapper(errors).hide();
|
535 |
+
},
|
536 |
+
|
537 |
+
valid: function () {
|
538 |
+
return this.size() === 0;
|
539 |
+
},
|
540 |
+
|
541 |
+
size: function () {
|
542 |
+
return this.errorList.length;
|
543 |
+
},
|
544 |
+
|
545 |
+
focusInvalid: function () {
|
546 |
+
if (this.settings.focusInvalid) {
|
547 |
+
try {
|
548 |
+
$(this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [])
|
549 |
+
.filter(":visible")
|
550 |
+
.focus()
|
551 |
+
|
552 |
+
// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find
|
553 |
+
.trigger("focusin");
|
554 |
+
} catch (e) {
|
555 |
+
}
|
556 |
+
}
|
557 |
+
},
|
558 |
+
|
559 |
+
findLastActive: function () {
|
560 |
+
var lastActive = this.lastActive;
|
561 |
+
return lastActive && $.grep(this.errorList, function (n) {
|
562 |
+
return n.element.name === lastActive.name;
|
563 |
+
}).length === 1 && lastActive;
|
564 |
+
},
|
565 |
+
|
566 |
+
elements: function () {
|
567 |
+
var validator = this,
|
568 |
+
rulesCache = {};
|
569 |
+
|
570 |
+
// Select all valid inputs inside the form (no submit or reset buttons)
|
571 |
+
return $(this.currentForm)
|
572 |
+
.find("input, select, textarea, [contenteditable]")
|
573 |
+
.not(":submit, :reset, :image, :disabled")
|
574 |
+
.not(this.settings.ignore)
|
575 |
+
.filter(function () {
|
576 |
+
var name = this.name || $(this).attr("name"); // For contenteditable
|
577 |
+
if (!name && validator.settings.debug && window.console) {
|
578 |
+
console.error("%o has no name assigned", this);
|
579 |
+
}
|
580 |
+
|
581 |
+
if (this.hasAttribute("contenteditable")) {
|
582 |
+
this.form = $(this).closest("form")[ 0 ];
|
583 |
+
}
|
584 |
+
|
585 |
+
// Select only the first element for each name, and only those with rules specified
|
586 |
+
if (name in rulesCache || !validator.objectLength($(this).rules())) {
|
587 |
+
return false;
|
588 |
+
}
|
589 |
+
|
590 |
+
rulesCache[ name ] = true;
|
591 |
+
return true;
|
592 |
+
});
|
593 |
+
},
|
594 |
+
|
595 |
+
clean: function (selector) {
|
596 |
+
return $(selector)[ 0 ];
|
597 |
+
},
|
598 |
+
|
599 |
+
errors: function () {
|
600 |
+
var errorClass = this.settings.errorClass.split(" ").join(".");
|
601 |
+
return $(this.settings.errorElement + "." + errorClass, this.errorContext);
|
602 |
+
},
|
603 |
+
|
604 |
+
resetInternals: function () {
|
605 |
+
this.successList = [];
|
606 |
+
this.errorList = [];
|
607 |
+
this.errorMap = {};
|
608 |
+
this.toShow = $([]);
|
609 |
+
this.toHide = $([]);
|
610 |
+
},
|
611 |
+
|
612 |
+
reset: function () {
|
613 |
+
this.resetInternals();
|
614 |
+
this.currentElements = $([]);
|
615 |
+
},
|
616 |
+
|
617 |
+
prepareForm: function () {
|
618 |
+
this.reset();
|
619 |
+
this.toHide = this.errors().add(this.containers);
|
620 |
+
},
|
621 |
+
|
622 |
+
prepareElement: function (element) {
|
623 |
+
this.reset();
|
624 |
+
this.toHide = this.errorsFor(element);
|
625 |
+
},
|
626 |
+
|
627 |
+
elementValue: function (element) {
|
628 |
+
var $element = $(element),
|
629 |
+
type = element.type,
|
630 |
+
val, idx;
|
631 |
+
|
632 |
+
if (type === "radio" || type === "checkbox") {
|
633 |
+
return this.findByName(element.name).filter(":checked").val();
|
634 |
+
} else if (type === "number" && typeof element.validity !== "undefined") {
|
635 |
+
return element.validity.badInput ? "NaN" : $element.val();
|
636 |
+
}
|
637 |
+
|
638 |
+
if (element.hasAttribute("contenteditable")) {
|
639 |
+
val = $element.text();
|
640 |
+
} else {
|
641 |
+
val = $element.val();
|
642 |
+
}
|
643 |
+
|
644 |
+
if (type === "file") {
|
645 |
+
|
646 |
+
// Modern browser (chrome & safari)
|
647 |
+
if (val.substr(0, 12) === "C:\\fakepath\\") {
|
648 |
+
return val.substr(12);
|
649 |
+
}
|
650 |
+
|
651 |
+
idx = val.lastIndexOf("/");
|
652 |
+
if (idx >= 0) {
|
653 |
+
return val.substr(idx + 1);
|
654 |
+
}
|
655 |
+
|
656 |
+
// Windows-based path
|
657 |
+
idx = val.lastIndexOf("\\");
|
658 |
+
if (idx >= 0) {
|
659 |
+
return val.substr(idx + 1);
|
660 |
+
}
|
661 |
+
|
662 |
+
// Just the file name
|
663 |
+
return val;
|
664 |
+
}
|
665 |
+
|
666 |
+
if (typeof val === "string") {
|
667 |
+
return val.replace(/\r/g, "");
|
668 |
+
}
|
669 |
+
return val;
|
670 |
+
},
|
671 |
+
|
672 |
+
check: function (element) {
|
673 |
+
element = this.validationTargetFor(this.clean(element));
|
674 |
+
|
675 |
+
var rules = $(element).rules(),
|
676 |
+
rulesCount = $.map(rules, function (n, i) {
|
677 |
+
return i;
|
678 |
+
}).length,
|
679 |
+
dependencyMismatch = false,
|
680 |
+
val = this.elementValue(element),
|
681 |
+
result, method, rule;
|
682 |
+
if (typeof rules.normalizer === "function") {
|
683 |
+
val = rules.normalizer.call(element, val);
|
684 |
+
|
685 |
+
if (typeof val !== "string") {
|
686 |
+
throw new TypeError("The normalizer should return a string value.");
|
687 |
+
}
|
688 |
+
delete rules.normalizer;
|
689 |
+
}
|
690 |
+
|
691 |
+
for (method in rules) {
|
692 |
+
rule = {method: method, parameters: rules[ method ]};
|
693 |
+
try {
|
694 |
+
result = $.validator.methods[ method ].call(this, val, element, rule.parameters);
|
695 |
+
if (result === "dependency-mismatch" && rulesCount === 1) {
|
696 |
+
dependencyMismatch = true;
|
697 |
+
continue;
|
698 |
+
}
|
699 |
+
dependencyMismatch = false;
|
700 |
+
|
701 |
+
if (result === "pending") {
|
702 |
+
this.toHide = this.toHide.not(this.errorsFor(element));
|
703 |
+
return;
|
704 |
+
}
|
705 |
+
|
706 |
+
if (!result) {
|
707 |
+
this.formatAndAdd(element, rule);
|
708 |
+
return false;
|
709 |
+
}
|
710 |
+
} catch (e) {
|
711 |
+
if (this.settings.debug && window.console) {
|
712 |
+
console.log("Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.", e);
|
713 |
+
}
|
714 |
+
if (e instanceof TypeError) {
|
715 |
+
e.message += ". Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.";
|
716 |
+
}
|
717 |
+
|
718 |
+
throw e;
|
719 |
+
}
|
720 |
+
}
|
721 |
+
if (dependencyMismatch) {
|
722 |
+
return;
|
723 |
+
}
|
724 |
+
if (this.objectLength(rules)) {
|
725 |
+
this.successList.push(element);
|
726 |
+
}
|
727 |
+
return true;
|
728 |
+
},
|
729 |
+
|
730 |
+
customDataMessage: function (element, method) {
|
731 |
+
return $(element).data("msg" + method.charAt(0).toUpperCase() +
|
732 |
+
method.substring(1).toLowerCase()) || $(element).data("msg");
|
733 |
+
},
|
734 |
+
|
735 |
+
// Return the custom message for the given element name and validation method
|
736 |
+
customMessage: function (name, method) {
|
737 |
+
var m = this.settings.messages[ name ];
|
738 |
+
return m && (m.constructor === String ? m : m[ method ]);
|
739 |
+
},
|
740 |
+
|
741 |
+
// Return the first defined argument, allowing empty strings
|
742 |
+
findDefined: function () {
|
743 |
+
for (var i = 0; i < arguments.length; i++) {
|
744 |
+
if (arguments[ i ] !== undefined) {
|
745 |
+
return arguments[ i ];
|
746 |
+
}
|
747 |
+
}
|
748 |
+
return undefined;
|
749 |
+
},
|
750 |
+
|
751 |
+
defaultMessage: function (element, rule) {
|
752 |
+
var message = this.findDefined(
|
753 |
+
this.customMessage(element.name, rule.method),
|
754 |
+
this.customDataMessage(element, rule.method),
|
755 |
+
// 'title' is never undefined, so handle empty string as undefined
|
756 |
+
!this.settings.ignoreTitle && element.title || undefined,
|
757 |
+
$.validator.messages[ rule.method ],
|
758 |
+
"<strong>Warning: No message defined for " + element.name + "</strong>"
|
759 |
+
),
|
760 |
+
theregex = /\$?\{(\d+)\}/g;
|
761 |
+
if (typeof message === "function") {
|
762 |
+
message = message.call(this, rule.parameters, element);
|
763 |
+
} else if (theregex.test(message)) {
|
764 |
+
message = $.validator.format(message.replace(theregex, "{$1}"), rule.parameters);
|
765 |
+
}
|
766 |
+
|
767 |
+
return message;
|
768 |
+
},
|
769 |
+
|
770 |
+
formatAndAdd: function (element, rule) {
|
771 |
+
var message = this.defaultMessage(element, rule);
|
772 |
+
|
773 |
+
this.errorList.push({
|
774 |
+
message: message,
|
775 |
+
element: element,
|
776 |
+
method: rule.method
|
777 |
+
});
|
778 |
+
|
779 |
+
this.errorMap[ element.name ] = message;
|
780 |
+
this.submitted[ element.name ] = message;
|
781 |
+
},
|
782 |
+
|
783 |
+
addWrapper: function (toToggle) {
|
784 |
+
if (this.settings.wrapper) {
|
785 |
+
toToggle = toToggle.add(toToggle.parent(this.settings.wrapper));
|
786 |
+
}
|
787 |
+
return toToggle;
|
788 |
+
},
|
789 |
+
|
790 |
+
defaultShowErrors: function () {
|
791 |
+
var i, elements, error;
|
792 |
+
for (i = 0; this.errorList[ i ]; i++) {
|
793 |
+
error = this.errorList[ i ];
|
794 |
+
if (this.settings.highlight) {
|
795 |
+
this.settings.highlight.call(this, error.element, this.settings.errorClass, this.settings.validClass);
|
796 |
+
}
|
797 |
+
this.showLabel(error.element, error.message);
|
798 |
+
}
|
799 |
+
if (this.errorList.length) {
|
800 |
+
this.toShow = this.toShow.add(this.containers);
|
801 |
+
}
|
802 |
+
if (this.settings.success) {
|
803 |
+
for (i = 0; this.successList[ i ]; i++) {
|
804 |
+
this.showLabel(this.successList[ i ]);
|
805 |
+
}
|
806 |
+
}
|
807 |
+
if (this.settings.unhighlight) {
|
808 |
+
for (i = 0, elements = this.validElements(); elements[ i ]; i++) {
|
809 |
+
this.settings.unhighlight.call(this, elements[ i ], this.settings.errorClass, this.settings.validClass);
|
810 |
+
}
|
811 |
+
}
|
812 |
+
this.toHide = this.toHide.not(this.toShow);
|
813 |
+
this.hideErrors();
|
814 |
+
this.addWrapper(this.toShow).show();
|
815 |
+
},
|
816 |
+
|
817 |
+
validElements: function () {
|
818 |
+
return this.currentElements.not(this.invalidElements());
|
819 |
+
},
|
820 |
+
|
821 |
+
invalidElements: function () {
|
822 |
+
return $(this.errorList).map(function () {
|
823 |
+
return this.element;
|
824 |
+
});
|
825 |
+
},
|
826 |
+
|
827 |
+
showLabel: function (element, message) {
|
828 |
+
var place, group, errorID, v,
|
829 |
+
error = this.errorsFor(element),
|
830 |
+
elementID = this.idOrName(element),
|
831 |
+
describedBy = $(element).attr("aria-describedby");
|
832 |
+
|
833 |
+
if (error.length) {
|
834 |
+
|
835 |
+
// Refresh error/success class
|
836 |
+
error.removeClass(this.settings.validClass).addClass(this.settings.errorClass);
|
837 |
+
|
838 |
+
// Replace message on existing label
|
839 |
+
error.html(message);
|
840 |
+
} else {
|
841 |
+
|
842 |
+
// Create error element
|
843 |
+
error = $("<" + this.settings.errorElement + ">")
|
844 |
+
.attr("id", elementID + "-error")
|
845 |
+
.addClass(this.settings.errorClass)
|
846 |
+
.html(message || "");
|
847 |
+
|
848 |
+
// Maintain reference to the element to be placed into the DOM
|
849 |
+
place = error;
|
850 |
+
if (this.settings.wrapper) {
|
851 |
+
place = error.hide().show().wrap("<" + this.settings.wrapper + "/>").parent();
|
852 |
+
}
|
853 |
+
if (this.labelContainer.length) {
|
854 |
+
this.labelContainer.append(place);
|
855 |
+
} else if (this.settings.errorPlacement) {
|
856 |
+
this.settings.errorPlacement(place, $(element));
|
857 |
+
} else {
|
858 |
+
place.insertAfter(element);
|
859 |
+
}
|
860 |
+
|
861 |
+
if (error.is("label")) {
|
862 |
+
error.attr("for", elementID);
|
863 |
+
} else if (error.parents("label[for='" + this.escapeCssMeta(elementID) + "']").length === 0) {
|
864 |
+
errorID = error.attr("id");
|
865 |
+
if (!describedBy) {
|
866 |
+
describedBy = errorID;
|
867 |
+
} else if (!describedBy.match(new RegExp("\\b" + this.escapeCssMeta(errorID) + "\\b"))) {
|
868 |
+
describedBy += " " + errorID;
|
869 |
+
}
|
870 |
+
$(element).attr("aria-describedby", describedBy);
|
871 |
+
group = this.groups[ element.name ];
|
872 |
+
if (group) {
|
873 |
+
v = this;
|
874 |
+
$.each(v.groups, function (name, testgroup) {
|
875 |
+
if (testgroup === group) {
|
876 |
+
$("[name='" + v.escapeCssMeta(name) + "']", v.currentForm)
|
877 |
+
.attr("aria-describedby", error.attr("id"));
|
878 |
+
}
|
879 |
+
});
|
880 |
+
}
|
881 |
+
}
|
882 |
+
}
|
883 |
+
if (!message && this.settings.success) {
|
884 |
+
error.text("");
|
885 |
+
if (typeof this.settings.success === "string") {
|
886 |
+
error.addClass(this.settings.success);
|
887 |
+
} else {
|
888 |
+
this.settings.success(error, element);
|
889 |
+
}
|
890 |
+
}
|
891 |
+
this.toShow = this.toShow.add(error);
|
892 |
+
},
|
893 |
+
|
894 |
+
errorsFor: function (element) {
|
895 |
+
var name = this.escapeCssMeta(this.idOrName(element)),
|
896 |
+
describer = $(element).attr("aria-describedby"),
|
897 |
+
selector = "label[for='" + name + "'], label[for='" + name + "'] *";
|
898 |
+
if (describer) {
|
899 |
+
selector = selector + ", #" + this.escapeCssMeta(describer)
|
900 |
+
.replace(/\s+/g, ", #");
|
901 |
+
}
|
902 |
+
|
903 |
+
return this
|
904 |
+
.errors()
|
905 |
+
.filter(selector);
|
906 |
+
},
|
907 |
+
escapeCssMeta: function (string) {
|
908 |
+
return string.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g, "\\$1");
|
909 |
+
},
|
910 |
+
|
911 |
+
idOrName: function (element) {
|
912 |
+
return this.groups[ element.name ] || (this.checkable(element) ? element.name : element.id || element.name);
|
913 |
+
},
|
914 |
+
|
915 |
+
validationTargetFor: function (element) {
|
916 |
+
|
917 |
+
if (this.checkable(element)) {
|
918 |
+
element = this.findByName(element.name);
|
919 |
+
}
|
920 |
+
return $(element).not(this.settings.ignore)[ 0 ];
|
921 |
+
},
|
922 |
+
|
923 |
+
checkable: function (element) {
|
924 |
+
return (/radio|checkbox/i).test(element.type);
|
925 |
+
},
|
926 |
+
|
927 |
+
findByName: function (name) {
|
928 |
+
return $(this.currentForm).find("[name='" + this.escapeCssMeta(name) + "']");
|
929 |
+
},
|
930 |
+
|
931 |
+
getLength: function (value, element) {
|
932 |
+
switch (element.nodeName.toLowerCase()) {
|
933 |
+
case "select":
|
934 |
+
return $("option:selected", element).length;
|
935 |
+
case "input":
|
936 |
+
if (this.checkable(element)) {
|
937 |
+
return this.findByName(element.name).filter(":checked").length;
|
938 |
+
}
|
939 |
+
}
|
940 |
+
return value.length;
|
941 |
+
},
|
942 |
+
|
943 |
+
depend: function (param, element) {
|
944 |
+
return this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ](param, element) : true;
|
945 |
+
},
|
946 |
+
|
947 |
+
dependTypes: {
|
948 |
+
"boolean": function (param) {
|
949 |
+
return param;
|
950 |
+
},
|
951 |
+
"string": function (param, element) {
|
952 |
+
return !!$(param, element.form).length;
|
953 |
+
},
|
954 |
+
"function": function (param, element) {
|
955 |
+
return param(element);
|
956 |
+
}
|
957 |
+
},
|
958 |
+
|
959 |
+
optional: function (element) {
|
960 |
+
var val = this.elementValue(element);
|
961 |
+
return !$.validator.methods.required.call(this, val, element) && "dependency-mismatch";
|
962 |
+
},
|
963 |
+
|
964 |
+
startRequest: function (element) {
|
965 |
+
if (!this.pending[ element.name ]) {
|
966 |
+
this.pendingRequest++;
|
967 |
+
$(element).addClass(this.settings.pendingClass);
|
968 |
+
this.pending[ element.name ] = true;
|
969 |
+
}
|
970 |
+
},
|
971 |
+
stopRequest: function (element, valid) {
|
972 |
+
this.pendingRequest--;
|
973 |
+
if (this.pendingRequest < 0) {
|
974 |
+
this.pendingRequest = 0;
|
975 |
+
}
|
976 |
+
delete this.pending[ element.name ];
|
977 |
+
$(element).removeClass(this.settings.pendingClass);
|
978 |
+
if (valid && this.pendingRequest === 0 && this.formSubmitted && this.form()) {
|
979 |
+
$(this.currentForm).submit();
|
980 |
+
this.formSubmitted = false;
|
981 |
+
} else if (!valid && this.pendingRequest === 0 && this.formSubmitted) {
|
982 |
+
$(this.currentForm).triggerHandler("invalid-form", [this]);
|
983 |
+
this.formSubmitted = false;
|
984 |
+
}
|
985 |
+
},
|
986 |
+
previousValue: function (element, method) {
|
987 |
+
return $.data(element, "previousValue") || $.data(element, "previousValue", {
|
988 |
+
old: null,
|
989 |
+
valid: true,
|
990 |
+
message: this.defaultMessage(element, {method: method})
|
991 |
+
});
|
992 |
+
},
|
993 |
+
destroy: function () {
|
994 |
+
this.resetForm();
|
995 |
+
$(this.currentForm)
|
996 |
+
.off(".validate")
|
997 |
+
.removeData("validator")
|
998 |
+
.find(".validate-equalTo-blur")
|
999 |
+
.off(".validate-equalTo")
|
1000 |
+
.removeClass("validate-equalTo-blur");
|
1001 |
+
}
|
1002 |
},
|
1003 |
classRuleSettings: {
|
1004 |
+
required: {required: true},
|
1005 |
+
email: {email: true},
|
1006 |
+
url: {url: true},
|
1007 |
+
date: {date: true},
|
1008 |
+
dateISO: {dateISO: true},
|
1009 |
+
number: {number: true},
|
1010 |
+
digits: {digits: true},
|
1011 |
+
creditcard: {creditcard: true}
|
1012 |
},
|
1013 |
|
1014 |
addClassRules: function (className, rules) {
|
1015 |
+
if (className.constructor === String) {
|
1016 |
+
this.classRuleSettings[ className ] = rules;
|
1017 |
+
} else {
|
1018 |
+
$.extend(this.classRuleSettings, className);
|
1019 |
+
}
|
1020 |
},
|
1021 |
|
1022 |
classRules: function (element) {
|
1023 |
+
var rules = {},
|
1024 |
+
classes = $(element).attr("class");
|
1025 |
+
|
1026 |
+
if (classes) {
|
1027 |
+
$.each(classes.split(" "), function () {
|
1028 |
+
if (this in $.validator.classRuleSettings) {
|
1029 |
+
$.extend(rules, $.validator.classRuleSettings[ this ]);
|
1030 |
+
}
|
1031 |
+
});
|
1032 |
+
}
|
1033 |
+
return rules;
|
1034 |
},
|
1035 |
|
1036 |
normalizeAttributeRule: function (rules, type, method, value) {
|
1037 |
+
if (/min|max|step/.test(method) && (type === null || /number|range|text/.test(type))) {
|
1038 |
+
value = Number(value);
|
1039 |
+
if (isNaN(value)) {
|
1040 |
+
value = undefined;
|
1041 |
+
}
|
1042 |
+
}
|
1043 |
+
|
1044 |
+
if (value || value === 0) {
|
1045 |
+
rules[ method ] = value;
|
1046 |
+
} else if (type === method && type !== "range") {
|
1047 |
+
rules[ method ] = true;
|
1048 |
+
}
|
1049 |
},
|
1050 |
|
1051 |
attributeRules: function (element) {
|
1052 |
+
var rules = {},
|
1053 |
+
$element = $(element),
|
1054 |
+
type = element.getAttribute("type"),
|
1055 |
+
method, value;
|
1056 |
+
|
1057 |
+
for (method in $.validator.methods) {
|
1058 |
+
if (method === "required") {
|
1059 |
+
value = element.getAttribute(method);
|
1060 |
+
if (value === "") {
|
1061 |
+
value = true;
|
1062 |
+
}
|
1063 |
+
value = !!value;
|
1064 |
+
} else {
|
1065 |
+
value = $element.attr(method);
|
1066 |
+
}
|
1067 |
+
this.normalizeAttributeRule(rules, type, method, value);
|
1068 |
+
}
|
1069 |
+
if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {
|
1070 |
+
delete rules.maxlength;
|
1071 |
+
}
|
1072 |
+
|
1073 |
+
return rules;
|
1074 |
},
|
1075 |
|
1076 |
dataRules: function (element) {
|
1077 |
+
var rules = {},
|
1078 |
+
$element = $(element),
|
1079 |
+
type = element.getAttribute("type"),
|
1080 |
+
method, value;
|
1081 |
+
|
1082 |
+
for (method in $.validator.methods) {
|
1083 |
+
value = $element.data("rule" + method.charAt(0).toUpperCase() + method.substring(1).toLowerCase());
|
1084 |
+
this.normalizeAttributeRule(rules, type, method, value);
|
1085 |
+
}
|
1086 |
+
return rules;
|
1087 |
},
|
1088 |
|
1089 |
staticRules: function (element) {
|
1090 |
+
var rules = {},
|
1091 |
+
validator = $.data(element.form, "validator");
|
1092 |
|
1093 |
+
if (validator.settings.rules) {
|
1094 |
+
rules = $.validator.normalizeRule(validator.settings.rules[ element.name ]) || {};
|
1095 |
+
}
|
1096 |
+
return rules;
|
1097 |
},
|
1098 |
|
1099 |
normalizeRules: function (rules, element) {
|
1100 |
+
$.each(rules, function (prop, val) {
|
1101 |
+
if (val === false) {
|
1102 |
+
delete rules[ prop ];
|
1103 |
+
return;
|
1104 |
+
}
|
1105 |
+
if (val.param || val.depends) {
|
1106 |
+
var keepRule = true;
|
1107 |
+
switch (typeof val.depends) {
|
1108 |
+
case "string":
|
1109 |
+
keepRule = !!$(val.depends, element.form).length;
|
1110 |
+
break;
|
1111 |
+
case "function":
|
1112 |
+
keepRule = val.depends.call(element, element);
|
1113 |
+
break;
|
1114 |
+
}
|
1115 |
+
if (keepRule) {
|
1116 |
+
rules[ prop ] = val.param !== undefined ? val.param : true;
|
1117 |
+
} else {
|
1118 |
+
$.data(element.form, "validator").resetElements($(element));
|
1119 |
+
delete rules[ prop ];
|
1120 |
+
}
|
1121 |
+
}
|
1122 |
+
});
|
1123 |
+
$.each(rules, function (rule, parameter) {
|
1124 |
+
rules[ rule ] = $.isFunction(parameter) && rule !== "normalizer" ? parameter(element) : parameter;
|
1125 |
+
});
|
1126 |
+
$.each(["minlength", "maxlength"], function () {
|
1127 |
+
if (rules[ this ]) {
|
1128 |
+
rules[ this ] = Number(rules[ this ]);
|
1129 |
+
}
|
1130 |
+
});
|
1131 |
+
$.each(["rangelength", "range"], function () {
|
1132 |
+
var parts;
|
1133 |
+
if (rules[ this ]) {
|
1134 |
+
if ($.isArray(rules[ this ])) {
|
1135 |
+
rules[ this ] = [Number(rules[ this ][ 0 ]), Number(rules[ this ][ 1 ])];
|
1136 |
+
} else if (typeof rules[ this ] === "string") {
|
1137 |
+
parts = rules[ this ].replace(/[\[\]]/g, "").split(/[\s,]+/);
|
1138 |
+
rules[ this ] = [Number(parts[ 0 ]), Number(parts[ 1 ])];
|
1139 |
+
}
|
1140 |
+
}
|
1141 |
+
});
|
1142 |
+
if ($.validator.autoCreateRanges) {
|
1143 |
+
if (rules.min != null && rules.max != null) {
|
1144 |
+
rules.range = [rules.min, rules.max];
|
1145 |
+
delete rules.min;
|
1146 |
+
delete rules.max;
|
1147 |
+
}
|
1148 |
+
if (rules.minlength != null && rules.maxlength != null) {
|
1149 |
+
rules.rangelength = [rules.minlength, rules.maxlength];
|
1150 |
+
delete rules.minlength;
|
1151 |
+
delete rules.maxlength;
|
1152 |
+
}
|
1153 |
+
}
|
1154 |
+
return rules;
|
1155 |
},
|
1156 |
normalizeRule: function (data) {
|
1157 |
+
if (typeof data === "string") {
|
1158 |
+
var transformed = {};
|
1159 |
+
$.each(data.split(/\s/), function () {
|
1160 |
+
transformed[ this ] = true;
|
1161 |
+
});
|
1162 |
+
data = transformed;
|
1163 |
+
}
|
1164 |
+
return data;
|
1165 |
},
|
1166 |
addMethod: function (name, method, message) {
|
1167 |
+
$.validator.methods[ name ] = method;
|
1168 |
+
$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];
|
1169 |
+
if (method.length < 3) {
|
1170 |
+
$.validator.addClassRules(name, $.validator.normalizeRule(name));
|
1171 |
+
}
|
1172 |
},
|
1173 |
methods: {
|
1174 |
+
required: function (value, element, param) {
|
1175 |
+
if (!this.depend(param, element)) {
|
1176 |
+
return "dependency-mismatch";
|
1177 |
+
}
|
1178 |
+
if (element.nodeName.toLowerCase() === "select") {
|
1179 |
+
var val = $(element).val();
|
1180 |
+
return val && val.length > 0;
|
1181 |
+
}
|
1182 |
+
if (this.checkable(element)) {
|
1183 |
+
return this.getLength(value, element) > 0;
|
1184 |
+
}
|
1185 |
+
return value.length > 0;
|
1186 |
+
},
|
1187 |
+
email: function (value, element) {
|
1188 |
+
return this.optional(element) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(value);
|
1189 |
+
},
|
1190 |
+
url: function (value, element) {
|
1191 |
+
return this.optional(element) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(value);
|
1192 |
+
},
|
1193 |
+
date: function (value, element) {
|
1194 |
+
return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString());
|
1195 |
+
},
|
1196 |
+
dateISO: function (value, element) {
|
1197 |
+
return this.optional(element) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value);
|
1198 |
+
},
|
1199 |
+
number: function (value, element) {
|
1200 |
+
return this.optional(element) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
|
1201 |
+
},
|
1202 |
+
digits: function (value, element) {
|
1203 |
+
return this.optional(element) || /^\d+$/.test(value);
|
1204 |
+
},
|
1205 |
+
minlength: function (value, element, param) {
|
1206 |
+
var length = $.isArray(value) ? value.length : this.getLength(value, element);
|
1207 |
+
return this.optional(element) || length >= param;
|
1208 |
+
},
|
1209 |
+
maxlength: function (value, element, param) {
|
1210 |
+
var length = $.isArray(value) ? value.length : this.getLength(value, element);
|
1211 |
+
return this.optional(element) || length <= param;
|
1212 |
+
},
|
1213 |
+
rangelength: function (value, element, param) {
|
1214 |
+
var length = $.isArray(value) ? value.length : this.getLength(value, element);
|
1215 |
+
return this.optional(element) || (length >= param[ 0 ] && length <= param[ 1 ]);
|
1216 |
+
},
|
1217 |
+
min: function (value, element, param) {
|
1218 |
+
return this.optional(element) || value >= param;
|
1219 |
+
},
|
1220 |
+
max: function (value, element, param) {
|
1221 |
+
return this.optional(element) || value <= param;
|
1222 |
+
},
|
1223 |
+
range: function (value, element, param) {
|
1224 |
+
return this.optional(element) || (value >= param[ 0 ] && value <= param[ 1 ]);
|
1225 |
+
},
|
1226 |
+
step: function (value, element, param) {
|
1227 |
+
var type = $(element).attr("type"),
|
1228 |
+
errorMessage = "Step attribute on input type " + type + " is not supported.",
|
1229 |
+
supportedTypes = ["text", "number", "range"],
|
1230 |
+
re = new RegExp("\\b" + type + "\\b"),
|
1231 |
+
notSupported = type && !re.test(supportedTypes.join());
|
1232 |
+
if (notSupported) {
|
1233 |
+
throw new Error(errorMessage);
|
1234 |
+
}
|
1235 |
+
return this.optional(element) || (value % param === 0);
|
1236 |
+
},
|
1237 |
+
equalTo: function (value, element, param) {
|
1238 |
+
var target = $(param);
|
1239 |
+
if (this.settings.onfocusout && target.not(".validate-equalTo-blur").length) {
|
1240 |
+
target.addClass("validate-equalTo-blur").on("blur.validate-equalTo", function () {
|
1241 |
+
$(element).valid();
|
1242 |
+
});
|
1243 |
+
}
|
1244 |
+
return value === target.val();
|
1245 |
+
},
|
1246 |
+
remote: function (value, element, param, method) {
|
1247 |
+
if (this.optional(element)) {
|
1248 |
+
return "dependency-mismatch";
|
1249 |
+
}
|
1250 |
+
|
1251 |
+
method = typeof method === "string" && method || "remote";
|
1252 |
+
|
1253 |
+
var previous = this.previousValue(element, method),
|
1254 |
+
validator, data, optionDataString;
|
1255 |
+
|
1256 |
+
if (!this.settings.messages[ element.name ]) {
|
1257 |
+
this.settings.messages[ element.name ] = {};
|
1258 |
+
}
|
1259 |
+
previous.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];
|
1260 |
+
this.settings.messages[ element.name ][ method ] = previous.message;
|
1261 |
+
|
1262 |
+
param = typeof param === "string" && {url: param} || param;
|
1263 |
+
optionDataString = $.param($.extend({data: value}, param.data));
|
1264 |
+
if (previous.old === optionDataString) {
|
1265 |
+
return previous.valid;
|
1266 |
+
}
|
1267 |
+
|
1268 |
+
previous.old = optionDataString;
|
1269 |
+
validator = this;
|
1270 |
+
this.startRequest(element);
|
1271 |
+
data = {};
|
1272 |
+
data[ element.name ] = value;
|
1273 |
+
$.ajax($.extend(true, {
|
1274 |
+
mode: "abort",
|
1275 |
+
port: "validate" + element.name,
|
1276 |
+
dataType: "json",
|
1277 |
+
data: data,
|
1278 |
+
context: validator.currentForm,
|
1279 |
+
success: function (response) {
|
1280 |
+
var valid = response === true || response === "true",
|
1281 |
+
errors, message, submitted;
|
1282 |
+
|
1283 |
+
validator.settings.messages[ element.name ][ method ] = previous.originalMessage;
|
1284 |
+
if (valid) {
|
1285 |
+
submitted = validator.formSubmitted;
|
1286 |
+
validator.resetInternals();
|
1287 |
+
validator.toHide = validator.errorsFor(element);
|
1288 |
+
validator.formSubmitted = submitted;
|
1289 |
+
validator.successList.push(element);
|
1290 |
+
validator.invalid[ element.name ] = false;
|
1291 |
+
validator.showErrors();
|
1292 |
+
} else {
|
1293 |
+
errors = {};
|
1294 |
+
message = response || validator.defaultMessage(element, {method: method, parameters: value});
|
1295 |
+
errors[ element.name ] = previous.message = message;
|
1296 |
+
validator.invalid[ element.name ] = true;
|
1297 |
+
validator.showErrors(errors);
|
1298 |
+
}
|
1299 |
+
previous.valid = valid;
|
1300 |
+
validator.stopRequest(element, valid);
|
1301 |
+
}
|
1302 |
+
}, param));
|
1303 |
+
return "pending";
|
1304 |
+
}
|
1305 |
}
|
1306 |
});
|
1307 |
var pendingRequests = {},
|
1308 |
+
ajax;
|
1309 |
if ($.ajaxPrefilter) {
|
1310 |
$.ajaxPrefilter(function (settings, _, xhr) {
|
1311 |
+
var port = settings.port;
|
1312 |
+
if (settings.mode === "abort") {
|
1313 |
+
if (pendingRequests[ port ]) {
|
1314 |
+
pendingRequests[ port ].abort();
|
1315 |
+
}
|
1316 |
+
pendingRequests[ port ] = xhr;
|
1317 |
+
}
|
1318 |
});
|
1319 |
} else {
|
1320 |
ajax = $.ajax;
|
1321 |
$.ajax = function (settings) {
|
1322 |
+
var mode = ("mode" in settings ? settings : $.ajaxSettings).mode,
|
1323 |
+
port = ("port" in settings ? settings : $.ajaxSettings).port;
|
1324 |
+
if (mode === "abort") {
|
1325 |
+
if (pendingRequests[ port ]) {
|
1326 |
+
pendingRequests[ port ].abort();
|
1327 |
+
}
|
1328 |
+
pendingRequests[ port ] = ajax.apply(this, arguments);
|
1329 |
+
return pendingRequests[ port ];
|
1330 |
+
}
|
1331 |
+
return ajax.apply(this, arguments);
|
1332 |
};
|
1333 |
}
|
1334 |
}));
|
includes/authentication-manager-mail-bank.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
@@ -17,46 +16,38 @@ if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-register-transport.php"
|
|
17 |
}
|
18 |
|
19 |
if (!class_exists("authentication_manager_mail_bank")) {
|
20 |
-
|
21 |
class authentication_manager_mail_bank {
|
22 |
-
|
23 |
public function create_authentication_manager() {
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
}
|
28 |
-
|
29 |
public function create_manager(mail_bank_smtp_transport $transport) {
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
}
|
47 |
-
|
48 |
public function check_google_service_provider_mail_bank($hostname) {
|
49 |
-
|
50 |
}
|
51 |
-
|
52 |
public function check_microsoft_service_provider_mail_bank($hostname) {
|
53 |
-
|
54 |
}
|
55 |
-
|
56 |
public function check_yahoo_service_provider_mail_bank($hostname) {
|
57 |
-
|
58 |
}
|
59 |
-
|
60 |
}
|
61 |
-
|
62 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
16 |
}
|
17 |
|
18 |
if (!class_exists("authentication_manager_mail_bank")) {
|
|
|
19 |
class authentication_manager_mail_bank {
|
|
|
20 |
public function create_authentication_manager() {
|
21 |
+
$obj_mail_bank_register_transport = new mail_bank_register_transport();
|
22 |
+
$transport = $obj_mail_bank_register_transport->retrieve_mailertype_mail_bank();
|
23 |
+
return $this->create_manager($transport);
|
24 |
}
|
|
|
25 |
public function create_manager(mail_bank_smtp_transport $transport) {
|
26 |
+
$obj_mb_config_provider = new mail_bank_configuration_provider();
|
27 |
+
$configuration_settings = $obj_mb_config_provider->get_configuration_settings();
|
28 |
+
$authorization_token = mail_bank_manage_token::get_instance();
|
29 |
+
$hostname = $configuration_settings["hostname"];
|
30 |
+
$client_id = $configuration_settings["client_id"];
|
31 |
+
$client_secret = $configuration_settings["client_secret"];
|
32 |
+
$sender_email = $configuration_settings["sender_email"];
|
33 |
+
$redirect_uri = admin_url("admin-ajax.php");
|
34 |
+
if ($this->check_google_service_provider_mail_bank($hostname)) {
|
35 |
+
$obj_service_provider = new google_authentication_mail_bank($client_id, $client_secret, $authorization_token, $redirect_uri, $sender_email);
|
36 |
+
} elseif ($this->check_microsoft_service_provider_mail_bank($hostname)) {
|
37 |
+
$obj_service_provider = new microsoft_authentication_mail_bank($client_id, $client_secret, $authorization_token, $redirect_uri);
|
38 |
+
} elseif ($this->check_yahoo_service_provider_mail_bank($hostname)) {
|
39 |
+
$obj_service_provider = new yahoo_authentication_mail_bank($client_id, $client_secret, $authorization_token, $redirect_uri);
|
40 |
+
}
|
41 |
+
return $obj_service_provider;
|
42 |
}
|
|
|
43 |
public function check_google_service_provider_mail_bank($hostname) {
|
44 |
+
return mail_bank_zend_mail_helper::email_domains_mail_bank($hostname, "gmail.com") || mail_bank_zend_mail_helper::email_domains_mail_bank($hostname, "googleapis.com");
|
45 |
}
|
|
|
46 |
public function check_microsoft_service_provider_mail_bank($hostname) {
|
47 |
+
return mail_bank_zend_mail_helper::email_domains_mail_bank($hostname, "live.com");
|
48 |
}
|
|
|
49 |
public function check_yahoo_service_provider_mail_bank($hostname) {
|
50 |
+
return strpos($hostname, "yahoo");
|
51 |
}
|
|
|
52 |
}
|
|
|
53 |
}
|
includes/footer.php
CHANGED
@@ -15,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
-
|
19 |
-
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
@@ -29,65 +29,65 @@ if (!is_user_logged_in()) {
|
|
29 |
<div class="popup" data-popup="ux_open_popup_translator">
|
30 |
<div class="popup-inner">
|
31 |
<div class="portlet box vivid-green" style="margin-bottom:0px;">
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
</div>
|
92 |
</div>
|
93 |
</div>
|
@@ -97,7 +97,7 @@ if (!is_user_logged_in()) {
|
|
97 |
{
|
98 |
if (jQuery(this).parent("ul.page-sidebar-menu-tech-banker").size() === 1)
|
99 |
{
|
100 |
-
|
101 |
}
|
102 |
});
|
103 |
|
@@ -107,10 +107,10 @@ if (!is_user_logged_in()) {
|
|
107 |
var content_height = jQuery(".page-content").height() + 30;
|
108 |
if (parseInt(menus_height) > parseInt(content_height))
|
109 |
{
|
110 |
-
|
111 |
} else
|
112 |
{
|
113 |
-
|
114 |
}
|
115 |
}
|
116 |
|
@@ -126,27 +126,27 @@ if (!is_user_logged_in()) {
|
|
126 |
var sidebar_close = parent.children("li.open").removeClass("open");
|
127 |
if (sidebar_close)
|
128 |
{
|
129 |
-
|
130 |
}
|
131 |
if (sub.is(":visible"))
|
132 |
{
|
133 |
-
|
134 |
-
|
135 |
} else if (hasSubMenu)
|
136 |
{
|
137 |
-
|
138 |
-
|
139 |
}
|
140 |
});
|
141 |
function paste_only_digits_mail_bank(control_id)
|
142 |
{
|
143 |
jQuery("#" + control_id).on("paste keypress", function (e)
|
144 |
{
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
});
|
151 |
}
|
152 |
|
@@ -171,14 +171,14 @@ if (!is_user_logged_in()) {
|
|
171 |
jQuery("body").append(overlay);
|
172 |
if (control_id !== undefined)
|
173 |
{
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
}
|
183 |
}
|
184 |
|
@@ -192,24 +192,24 @@ if (!is_user_logged_in()) {
|
|
192 |
{
|
193 |
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
194 |
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
if (!data)
|
199 |
{
|
200 |
-
|
201 |
}
|
202 |
do
|
203 |
{
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
} while (i < data.length);
|
214 |
enc = tmp_arr.join('');
|
215 |
var r = data.length % 3;
|
@@ -230,107 +230,107 @@ if (!is_user_logged_in()) {
|
|
230 |
var hostname = smtp_host.substr(indexof, 5);
|
231 |
if (smtp_host === "smtp.gmail.com")
|
232 |
{
|
233 |
-
|
234 |
-
|
235 |
} else if (smtp_host === "smtp.live.com")
|
236 |
{
|
237 |
-
|
238 |
-
|
239 |
} else if (hostname === "yahoo")
|
240 |
{
|
241 |
-
|
242 |
-
|
243 |
} else
|
244 |
{
|
245 |
-
|
246 |
}
|
247 |
}
|
248 |
|
249 |
function mail_bank_mail_sender(to_email_address)
|
250 |
{
|
251 |
jQuery.post(ajaxurl,
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
}
|
282 |
|
283 |
function mail_bank_send_test_mail()
|
284 |
{
|
285 |
jQuery("#ux_frm_test_email_configuration").validate
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
}
|
335 |
|
336 |
// Close popup
|
@@ -339,8 +339,8 @@ if (!is_user_logged_in()) {
|
|
339 |
var confirm_close = confirm(<?php echo json_encode($mb_confirm_close); ?>);
|
340 |
if (confirm_close === true)
|
341 |
{
|
342 |
-
|
343 |
-
|
344 |
}
|
345 |
e.preventDefault();
|
346 |
});
|
@@ -348,25 +348,25 @@ if (!is_user_logged_in()) {
|
|
348 |
{
|
349 |
jQuery("[data-popup-open]").on("click", function (e)
|
350 |
{
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
});
|
355 |
// Close popup
|
356 |
jQuery("[data-popup-close]").on("click", function (e)
|
357 |
{
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
});
|
362 |
jQuery(document).keydown(function (e)
|
363 |
{
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
});
|
371 |
}
|
372 |
|
@@ -374,63 +374,63 @@ if (!is_user_logged_in()) {
|
|
374 |
var url = "<?php echo tech_banker_url . "/feedbacks.php"; ?>";
|
375 |
var domain_url = "<?php echo site_url(); ?>";
|
376 |
jQuery("#ux_frm_language_translator").validate
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
function show_pop_up_mail_bank()
|
435 |
{
|
436 |
open_popup_mail_bank();
|
@@ -451,827 +451,827 @@ if (!is_user_logged_in()) {
|
|
451 |
$check_wp_mail_bank_wizard = get_option("wp-mail-bank-wizard-set-up");
|
452 |
$page_url = $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : esc_attr($_GET["page"]);
|
453 |
if (isset($_GET["page"])) {
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
}
|
1276 |
?>
|
1277 |
</script>
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
29 |
<div class="popup" data-popup="ux_open_popup_translator">
|
30 |
<div class="popup-inner">
|
31 |
<div class="portlet box vivid-green" style="margin-bottom:0px;">
|
32 |
+
<div class="portlet-title">
|
33 |
+
<div class="caption" id="ux_div_action">
|
34 |
+
<?php echo $mb_translation_request; ?>
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
<div class="portlet-body form">
|
38 |
+
<div id="ux_div_popup_header">
|
39 |
+
<form id="ux_frm_language_translator">
|
40 |
+
<div class="form-body">
|
41 |
+
<div class="row">
|
42 |
+
<div class="col-md-6 popup-control">
|
43 |
+
<div class="form-group">
|
44 |
+
<label class="control-label">
|
45 |
+
<?php echo $mb_feature_requests_your_name; ?> :
|
46 |
+
<i class="icon-custom-question tooltips" data-original-title="<?php echo $mb_popup_your_name_tooltip; ?>" data-placement="right"></i>
|
47 |
+
<span class="required" aria-required="true">*</span>
|
48 |
+
</label>
|
49 |
+
<input type="text" class="form-control" name="ux_txt_your_name" id="ux_txt_your_name" value="" placeholder="<?php echo $mb_feature_requests_your_name_placeholder; ?>">
|
50 |
+
</div>
|
51 |
+
</div>
|
52 |
+
<div class="col-md-6 popup-control">
|
53 |
+
<div class="form-group">
|
54 |
+
<label class="control-label">
|
55 |
+
<?php echo $mb_feature_requests_your_email; ?> :
|
56 |
+
<i class="icon-custom-question tooltips" data-original-title="<?php echo $mb_popup_your_email_tooltip; ?>" data-placement="right"></i>
|
57 |
+
<span class="required" aria-required="true">*</span>
|
58 |
+
</label>
|
59 |
+
<input type="text" class="form-control" name="ux_txt_email_address" id="ux_txt_email_address" value="" placeholder="<?php echo $mb_feature_requests_your_email_placeholder; ?>">
|
60 |
+
</div>
|
61 |
+
</div>
|
62 |
+
</div>
|
63 |
+
<div class="form-group">
|
64 |
+
<label class="control-label">
|
65 |
+
<?php echo $mb_language_interested_to_translate; ?> :
|
66 |
+
<i class="icon-custom-question tooltips" data-original-title="<?php echo $mb_language_interested_to_translate_tooltip; ?>" data-placement="right"></i>
|
67 |
+
<span class="required" aria-required="true">*</span>
|
68 |
+
</label>
|
69 |
+
<input type="text" class="form-control" name="ux_txt_language" id="ux_txt_language" value="" placeholder="<?php echo $mb_language_interested_to_translate_placeholder; ?>">
|
70 |
+
</div>
|
71 |
+
<div class="form-group">
|
72 |
+
<label class="control-label">
|
73 |
+
<?php echo $mb_popup_query; ?> :
|
74 |
+
<i class="icon-custom-question tooltips" data-original-title="<?php echo $mb_popup_query_tooltip; ?>" data-placement="right"></i>
|
75 |
+
<span class="required" aria-required="true">*</span>
|
76 |
+
</label>
|
77 |
+
<textarea class="form-control" name="ux_txtarea_query" id="ux_txtarea_query" rows="7" placeholder="<?php echo $mb_popup_query_placeholder; ?>"><?php echo "Hi,\r\r\nI am interested in translating your plugin Mail Bank in my native language.\r\r\nPlease get back to me!\r\r\nThanks"; ?></textarea>
|
78 |
+
</div>
|
79 |
+
</div>
|
80 |
+
<div class="modal-footer">
|
81 |
+
<div class="form-actions">
|
82 |
+
<div class="pull-right">
|
83 |
+
<input type="button" data-popup-close-translator="ux_open_popup_translator" class="btn vivid-green" name="ux_btn_close" id="ux_btn_close" value="<?php echo $mb_manage_backups_close; ?>">
|
84 |
+
<input type="submit" class="btn vivid-green" name="ux_btn_send_request" id="ux_btn_send_request" value="<?php echo $mb_feature_requests_send_request; ?>">
|
85 |
+
</div>
|
86 |
+
</div>
|
87 |
+
</div>
|
88 |
+
</form>
|
89 |
+
</div>
|
90 |
+
</div>
|
91 |
</div>
|
92 |
</div>
|
93 |
</div>
|
97 |
{
|
98 |
if (jQuery(this).parent("ul.page-sidebar-menu-tech-banker").size() === 1)
|
99 |
{
|
100 |
+
jQuery(this).find("> a").append("<span class=\"selected\"></span>");
|
101 |
}
|
102 |
});
|
103 |
|
107 |
var content_height = jQuery(".page-content").height() + 30;
|
108 |
if (parseInt(menus_height) > parseInt(content_height))
|
109 |
{
|
110 |
+
jQuery(".page-content").attr("style", "min-height:" + menus_height + "px")
|
111 |
} else
|
112 |
{
|
113 |
+
jQuery(".page-sidebar-menu-tech-banker").attr("style", "min-height:" + content_height + "px")
|
114 |
}
|
115 |
}
|
116 |
|
126 |
var sidebar_close = parent.children("li.open").removeClass("open");
|
127 |
if (sidebar_close)
|
128 |
{
|
129 |
+
setInterval(load_sidebar_content_mail_bank, 100);
|
130 |
}
|
131 |
if (sub.is(":visible"))
|
132 |
{
|
133 |
+
jQuery(this).parent().removeClass("open");
|
134 |
+
sub.slideUp(slideSpeed);
|
135 |
} else if (hasSubMenu)
|
136 |
{
|
137 |
+
jQuery(this).parent().addClass("open");
|
138 |
+
sub.slideDown(slideSpeed);
|
139 |
}
|
140 |
});
|
141 |
function paste_only_digits_mail_bank(control_id)
|
142 |
{
|
143 |
jQuery("#" + control_id).on("paste keypress", function (e)
|
144 |
{
|
145 |
+
var $this = jQuery("#" + control_id);
|
146 |
+
setTimeout(function ()
|
147 |
+
{
|
148 |
+
$this.val($this.val().replace(/[^0-9]/g, ""));
|
149 |
+
}, 5);
|
150 |
});
|
151 |
}
|
152 |
|
171 |
jQuery("body").append(overlay);
|
172 |
if (control_id !== undefined)
|
173 |
{
|
174 |
+
var message = control_id;
|
175 |
+
var success = <?php echo json_encode($mb_success); ?>;
|
176 |
+
var issuccessmessage = jQuery("#toast-container").exists();
|
177 |
+
if (issuccessmessage !== true)
|
178 |
+
{
|
179 |
+
var shortCutFunction = jQuery("#manage_messages input:checked").val();
|
180 |
+
toastr[shortCutFunction](message, success);
|
181 |
+
}
|
182 |
}
|
183 |
}
|
184 |
|
192 |
{
|
193 |
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
194 |
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
|
195 |
+
ac = 0,
|
196 |
+
enc = '',
|
197 |
+
tmp_arr = [];
|
198 |
if (!data)
|
199 |
{
|
200 |
+
return data;
|
201 |
}
|
202 |
do
|
203 |
{
|
204 |
+
o1 = data.charCodeAt(i++);
|
205 |
+
o2 = data.charCodeAt(i++);
|
206 |
+
o3 = data.charCodeAt(i++);
|
207 |
+
bits = o1 << 16 | o2 << 8 | o3;
|
208 |
+
h1 = bits >> 18 & 0x3f;
|
209 |
+
h2 = bits >> 12 & 0x3f;
|
210 |
+
h3 = bits >> 6 & 0x3f;
|
211 |
+
h4 = bits & 0x3f;
|
212 |
+
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
|
213 |
} while (i < data.length);
|
214 |
enc = tmp_arr.join('');
|
215 |
var r = data.length % 3;
|
230 |
var hostname = smtp_host.substr(indexof, 5);
|
231 |
if (smtp_host === "smtp.gmail.com")
|
232 |
{
|
233 |
+
jQuery("#ux_link_content").text("(" +<?php echo json_encode($mb_email_configuration_get_google_credentials); ?> + ")");
|
234 |
+
jQuery("#ux_link_reference").attr("href", "https://console.developers.google.com");
|
235 |
} else if (smtp_host === "smtp.live.com")
|
236 |
{
|
237 |
+
jQuery("#ux_link_content").text("(" +<?php echo json_encode($mb_email_configuration_get_microsoft_credentials); ?> + ")");
|
238 |
+
jQuery("#ux_link_reference").attr("href", "https://account.live.com/developers/applications/create");
|
239 |
} else if (hostname === "yahoo")
|
240 |
{
|
241 |
+
jQuery("#ux_link_content").text("(" +<?php echo json_encode($mb_email_configuration_get_yahoo_credentials); ?> + ")");
|
242 |
+
jQuery("#ux_link_reference").attr("href", "https://developer.yahoo.com/apps/");
|
243 |
} else
|
244 |
{
|
245 |
+
jQuery("#ux_link_content").text("");
|
246 |
}
|
247 |
}
|
248 |
|
249 |
function mail_bank_mail_sender(to_email_address)
|
250 |
{
|
251 |
jQuery.post(ajaxurl,
|
252 |
+
{
|
253 |
+
data: base64_encode_mail_bank(jQuery("#ux_frm_test_email_configuration").serialize()),
|
254 |
+
param: "mail_bank_test_email_configuration_module",
|
255 |
+
action: "mail_bank_action",
|
256 |
+
_wp_nonce: "<?php echo isset($mail_bank_test_email_configuration) ? $mail_bank_test_email_configuration : ""; ?>"
|
257 |
+
},
|
258 |
+
function (data)
|
259 |
+
{
|
260 |
+
jQuery("#ux_txtarea_result_log").html("<?php echo $mb_email_configuration_send_test_email_textarea; ?>\n");
|
261 |
+
jQuery("#ux_txtarea_result_log").append(<?php echo json_encode($mb_test_email_sending_test_email); ?> + " " + to_email_address + "\n");
|
262 |
+
if (jQuery.trim(data) === "true" || jQuery.trim(data) === "1")
|
263 |
+
{
|
264 |
+
jQuery("#ux_div_mail_console").css("display", "block");
|
265 |
+
jQuery("#console_log_div").css("display", "none");
|
266 |
+
jQuery("#ux_txtarea_result_log").append(<?php echo json_encode($mb_test_email_sent); ?>);
|
267 |
+
} else
|
268 |
+
{
|
269 |
+
jQuery("#console_log_div").css("display", "none");
|
270 |
+
jQuery("#ux_div_mail_console").css("display", "block");
|
271 |
+
if (jQuery.trim(data) !== "")
|
272 |
+
{
|
273 |
+
jQuery("#ux_txtarea_result_log").html(data);
|
274 |
+
} else
|
275 |
+
{
|
276 |
+
jQuery("#ux_txtarea_result_log").append(<?php echo json_encode($mb_test_email_not_send); ?>);
|
277 |
+
}
|
278 |
+
}
|
279 |
+
load_sidebar_content_mail_bank();
|
280 |
+
});
|
281 |
}
|
282 |
|
283 |
function mail_bank_send_test_mail()
|
284 |
{
|
285 |
jQuery("#ux_frm_test_email_configuration").validate
|
286 |
+
({
|
287 |
+
rules:
|
288 |
+
{
|
289 |
+
ux_txt_email:
|
290 |
+
{
|
291 |
+
required: true,
|
292 |
+
email: true
|
293 |
+
},
|
294 |
+
ux_txt_subject:
|
295 |
+
{
|
296 |
+
required: true
|
297 |
+
},
|
298 |
+
ux_content:
|
299 |
+
{
|
300 |
+
required: true
|
301 |
+
}
|
302 |
+
},
|
303 |
+
errorPlacement: function ()
|
304 |
+
{
|
305 |
+
},
|
306 |
+
highlight: function (element)
|
307 |
+
{
|
308 |
+
jQuery(element).closest(".form-group").removeClass("has-success").addClass("has-error");
|
309 |
+
},
|
310 |
+
success: function (label, element)
|
311 |
+
{
|
312 |
+
var icon = jQuery(element).parent(".input-icon").children("i");
|
313 |
+
jQuery(element).closest(".form-group").removeClass("has-error").addClass("has-success");
|
314 |
+
icon.removeClass("fa-warning").addClass("fa-check");
|
315 |
+
},
|
316 |
+
submitHandler: function ()
|
317 |
+
{
|
318 |
+
var to_email_address = jQuery("#ux_txt_email").val();
|
319 |
+
if (window.CKEDITOR)
|
320 |
+
{
|
321 |
+
jQuery("#ux_email_configuration_text_area").val(CKEDITOR.instances["ux_content"].getData());
|
322 |
+
} else if (jQuery("#wp-ux_content-wrap").hasClass("tmce-active"))
|
323 |
+
{
|
324 |
+
jQuery("#ux_email_configuration_text_area").val(tinyMCE.get("ux_content").getContent());
|
325 |
+
} else
|
326 |
+
{
|
327 |
+
jQuery("#ux_email_configuration_text_area").val(jQuery("#ux_content").val());
|
328 |
+
}
|
329 |
+
mail_bank_mail_sender(to_email_address);
|
330 |
+
jQuery("#console_log_div").css("display", "block");
|
331 |
+
jQuery("#ux_div_test_mail").css("display", "none");
|
332 |
+
}
|
333 |
+
});
|
334 |
}
|
335 |
|
336 |
// Close popup
|
339 |
var confirm_close = confirm(<?php echo json_encode($mb_confirm_close); ?>);
|
340 |
if (confirm_close === true)
|
341 |
{
|
342 |
+
var targeted_popup_class = jQuery(this).attr("data-popup-close-translator");
|
343 |
+
jQuery('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);
|
344 |
}
|
345 |
e.preventDefault();
|
346 |
});
|
348 |
{
|
349 |
jQuery("[data-popup-open]").on("click", function (e)
|
350 |
{
|
351 |
+
var targeted_popup_class = jQuery(this).attr("data-popup-open");
|
352 |
+
jQuery('[data-popup="' + targeted_popup_class + '"]').fadeIn(350);
|
353 |
+
e.preventDefault();
|
354 |
});
|
355 |
// Close popup
|
356 |
jQuery("[data-popup-close]").on("click", function (e)
|
357 |
{
|
358 |
+
var targeted_popup_class = jQuery(this).attr("data-popup-close");
|
359 |
+
jQuery('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);
|
360 |
+
e.preventDefault();
|
361 |
});
|
362 |
jQuery(document).keydown(function (e)
|
363 |
{
|
364 |
+
// ESCAPE key pressed
|
365 |
+
if (e.keyCode === 27)
|
366 |
+
{
|
367 |
+
var targeted_popup_class = jQuery("[data-popup-close]").attr("data-popup-close");
|
368 |
+
jQuery('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);
|
369 |
+
}
|
370 |
});
|
371 |
}
|
372 |
|
374 |
var url = "<?php echo tech_banker_url . "/feedbacks.php"; ?>";
|
375 |
var domain_url = "<?php echo site_url(); ?>";
|
376 |
jQuery("#ux_frm_language_translator").validate
|
377 |
+
({
|
378 |
+
rules:
|
379 |
+
{
|
380 |
+
ux_txt_your_name:
|
381 |
+
{
|
382 |
+
required: true
|
383 |
+
},
|
384 |
+
ux_txt_email_address:
|
385 |
+
{
|
386 |
+
required: true,
|
387 |
+
email: true
|
388 |
+
},
|
389 |
+
ux_txt_language:
|
390 |
+
{
|
391 |
+
required: true
|
392 |
+
},
|
393 |
+
ux_txtarea_query:
|
394 |
+
{
|
395 |
+
required: true
|
396 |
+
}
|
397 |
+
},
|
398 |
+
errorPlacement: function ()
|
399 |
+
{
|
400 |
+
},
|
401 |
+
highlight: function (element)
|
402 |
+
{
|
403 |
+
jQuery(element).closest(".form-group").removeClass("has-success").addClass("has-error");
|
404 |
+
},
|
405 |
+
success: function (label, element)
|
406 |
+
{
|
407 |
+
var icon = jQuery(element).parent(".input-icon").children("i");
|
408 |
+
jQuery(element).closest(".form-group").removeClass("has-error").addClass("has-success");
|
409 |
+
icon.removeClass("fa-warning").addClass("fa-check");
|
410 |
+
},
|
411 |
+
submitHandler: function ()
|
412 |
+
{
|
413 |
+
translation_request_array.push(jQuery("#ux_txt_your_name").val());
|
414 |
+
translation_request_array.push(jQuery("#ux_txt_email_address").val());
|
415 |
+
translation_request_array.push(domain_url);
|
416 |
+
translation_request_array.push(jQuery("#ux_txt_language").val());
|
417 |
+
translation_request_array.push(jQuery("#ux_txtarea_query").val());
|
418 |
+
jQuery.post(url,
|
419 |
+
{
|
420 |
+
data: JSON.stringify(translation_request_array),
|
421 |
+
param: "mail_bank_translation_request"
|
422 |
+
},
|
423 |
+
function ()
|
424 |
+
{
|
425 |
+
overlay_loading_mail_bank(<?php echo json_encode($mb_feature_request_message) ?>);
|
426 |
+
setTimeout(function ()
|
427 |
+
{
|
428 |
+
remove_overlay_mail_bank();
|
429 |
+
window.location.href = "admin.php?page=mb_email_configuration";
|
430 |
+
}, 3000);
|
431 |
+
});
|
432 |
+
}
|
433 |
+
});
|
434 |
function show_pop_up_mail_bank()
|
435 |
{
|
436 |
open_popup_mail_bank();
|
451 |
$check_wp_mail_bank_wizard = get_option("wp-mail-bank-wizard-set-up");
|
452 |
$page_url = $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : esc_attr($_GET["page"]);
|
453 |
if (isset($_GET["page"])) {
|
454 |
+
switch ($page_url) {
|
455 |
+
case "wp_mail_bank_wizard":
|
456 |
+
?>
|
457 |
+
function show_hide_details_wp_mail_bank()
|
458 |
+
{
|
459 |
+
if (jQuery("#ux_div_wizard_set_up").hasClass("wizard-set-up"))
|
460 |
+
{
|
461 |
+
jQuery("#ux_div_wizard_set_up").css("display", "none");
|
462 |
+
jQuery("#ux_div_wizard_set_up").removeClass("wizard-set-up");
|
463 |
+
} else
|
464 |
+
{
|
465 |
+
jQuery("#ux_div_wizard_set_up").css("display", "block");
|
466 |
+
jQuery("#ux_div_wizard_set_up").addClass("wizard-set-up");
|
467 |
+
}
|
468 |
+
}
|
469 |
|
470 |
+
function plugin_stats_wp_mail_bank(type)
|
471 |
+
{
|
472 |
+
overlay_loading_mail_bank();
|
473 |
+
jQuery.post(ajaxurl,
|
474 |
+
{
|
475 |
+
type: type,
|
476 |
+
param: "wizard_wp_mail_bank",
|
477 |
+
action: "mail_bank_action",
|
478 |
+
_wp_nonce: "<?php echo $wp_mail_bank_check_status; ?>"
|
479 |
+
},
|
480 |
+
function ()
|
481 |
+
{
|
482 |
+
remove_overlay_mail_bank();
|
483 |
+
window.location.href = "admin.php?page=mb_email_configuration";
|
484 |
+
});
|
485 |
+
}
|
486 |
|
487 |
+
<?php
|
488 |
+
break;
|
489 |
+
case "mb_email_configuration":
|
490 |
+
?>
|
491 |
+
jQuery("#ux_mb_li_email_configuration").addClass("active");
|
492 |
+
<?php
|
493 |
+
if (email_configuration_mail_bank == 1) {
|
494 |
+
?>
|
495 |
+
function select_credentials_mail_bank()
|
496 |
+
{
|
497 |
+
var selected_credential = jQuery("#ux_ddl_mb_authentication").val();
|
498 |
+
var type = jQuery("#ux_ddl_type").val();
|
499 |
+
if (selected_credential === "oauth2" && type === "smtp")
|
500 |
+
{
|
501 |
+
jQuery("#ux_div_username_password_authentication").css("display", "none");
|
502 |
+
jQuery("#ux_div_oauth_authentication").css("display", "block");
|
503 |
+
check_links_oauth_mail_bank();
|
504 |
+
} else
|
505 |
+
{
|
506 |
+
if (selected_credential === "none")
|
507 |
+
{
|
508 |
+
jQuery("#ux_div_username_password_authentication").css("display", "none");
|
509 |
+
jQuery("#ux_div_oauth_authentication").css("display", "none");
|
510 |
+
} else
|
511 |
+
{
|
512 |
+
jQuery("#ux_div_username_password_authentication").css("display", "block");
|
513 |
+
jQuery("#ux_div_oauth_authentication").css("display", "none");
|
514 |
+
}
|
515 |
+
}
|
516 |
+
}
|
517 |
|
518 |
+
function mail_bank_second_step_settings()
|
519 |
+
{
|
520 |
+
jQuery("#ux_div_first_step").css("display", "none");
|
521 |
+
jQuery("#test_email").css("display", "none");
|
522 |
+
jQuery("#ux_div_second_step").css("display", "block");
|
523 |
+
jQuery("#ux_div_step_progres_bar_width").css("width", "66%");
|
524 |
+
jQuery("#ux_div_frm_wizard li:eq(1)").addClass("active");
|
525 |
+
jQuery("#ux_div_frm_wizard li:eq(2)").removeClass("active");
|
526 |
+
}
|
527 |
|
528 |
+
function mail_bank_third_step_settings()
|
529 |
+
{
|
530 |
+
jQuery("#ux_div_first_step").removeClass("first-step-helper");
|
531 |
+
jQuery("#test_email").css("display", "block");
|
532 |
+
jQuery("#ux_div_first_step").css("display", "none");
|
533 |
+
jQuery("#ux_div_second_step").css("display", "none");
|
534 |
+
jQuery("#ux_div_step_progres_bar_width").css("width", "100%");
|
535 |
+
jQuery("#ux_div_frm_wizard li:eq(1)").addClass("active");
|
536 |
+
jQuery("#ux_div_frm_wizard li:eq(2)").addClass("active");
|
537 |
+
}
|
538 |
|
539 |
+
function mail_bank_from_name_override()
|
540 |
+
{
|
541 |
+
var from_name = jQuery("#ux_ddl_from_name").val();
|
542 |
+
if (jQuery.trim(from_name) === "dont_override")
|
543 |
+
{
|
544 |
+
jQuery("#ux_txt_mb_from_name").attr("disabled", true);
|
545 |
+
} else
|
546 |
+
{
|
547 |
+
jQuery("#ux_txt_mb_from_name").attr("disabled", false);
|
548 |
+
}
|
549 |
+
}
|
550 |
|
551 |
+
function mail_bank_from_email_override()
|
552 |
+
{
|
553 |
+
var from_email = jQuery("#ux_ddl_from_email").val();
|
554 |
+
if (jQuery.trim(from_email) === "dont_override")
|
555 |
+
{
|
556 |
+
jQuery("#ux_txt_mb_from_email_configuration").attr("disabled", true);
|
557 |
+
} else
|
558 |
+
{
|
559 |
+
jQuery("#ux_txt_mb_from_email_configuration").attr("disabled", false);
|
560 |
+
}
|
561 |
+
}
|
562 |
|
563 |
+
function mail_bank_validate_settings()
|
564 |
+
{
|
565 |
+
jQuery("#ux_frm_email_configuration").validate
|
566 |
+
({
|
567 |
+
rules:
|
568 |
+
{
|
569 |
+
ux_txt_mb_from_name:
|
570 |
+
{
|
571 |
+
required: true
|
572 |
+
},
|
573 |
+
ux_txt_mb_from_email_configuration:
|
574 |
+
{
|
575 |
+
required: true,
|
576 |
+
email: true
|
577 |
+
},
|
578 |
+
ux_txt_email_address:
|
579 |
+
{
|
580 |
+
required: true,
|
581 |
+
email: true
|
582 |
+
},
|
583 |
+
ux_txt_host:
|
584 |
+
{
|
585 |
+
required: true
|
586 |
+
},
|
587 |
+
ux_txt_port:
|
588 |
+
{
|
589 |
+
required: true
|
590 |
+
},
|
591 |
+
ux_txt_client_id:
|
592 |
+
{
|
593 |
+
required: true
|
594 |
+
},
|
595 |
+
ux_txt_client_secret:
|
596 |
+
{
|
597 |
+
required: true
|
598 |
+
},
|
599 |
+
ux_txt_username:
|
600 |
+
{
|
601 |
+
required: true
|
602 |
+
},
|
603 |
+
ux_txt_password:
|
604 |
+
{
|
605 |
+
required: true
|
606 |
+
}
|
607 |
+
},
|
608 |
+
errorPlacement: function ()
|
609 |
+
{
|
610 |
+
},
|
611 |
+
highlight: function (element)
|
612 |
+
{
|
613 |
+
jQuery(element).closest(".form-group").removeClass("has-success").addClass("has-error");
|
614 |
+
},
|
615 |
+
success: function (label, element)
|
616 |
+
{
|
617 |
+
var icon = jQuery(element).parent(".input-icon").children("i");
|
618 |
+
jQuery(element).closest(".form-group").removeClass("has-error").addClass("has-success");
|
619 |
+
icon.removeClass("fa-warning").addClass("fa-check");
|
620 |
+
},
|
621 |
+
submitHandler: function ()
|
622 |
+
{
|
623 |
+
if (jQuery("#ux_div_first_step").hasClass("first-step-helper"))
|
624 |
+
{
|
625 |
+
mail_bank_second_step_settings();
|
626 |
+
} else if (jQuery("#test_email").hasClass("second-step-helper"))
|
627 |
+
{
|
628 |
+
jQuery.post(ajaxurl,
|
629 |
+
{
|
630 |
+
data: base64_encode_mail_bank(jQuery("#ux_frm_email_configuration").serialize()),
|
631 |
+
action: "mail_bank_action",
|
632 |
+
param: "mail_bank_email_configuration_settings_module",
|
633 |
+
_wp_nonce: "<?php echo $mail_bank_email_configuration_settings; ?>"
|
634 |
+
},
|
635 |
+
function (data)
|
636 |
+
{
|
637 |
+
var automatic_mail = jQuery("#ux_chk_automatic_sent_mail").is(":checked");
|
638 |
+
var mailer_type = jQuery("#ux_ddl_type").val();
|
639 |
+
if (jQuery.trim(data) === "100" && mailer_type === "smtp")
|
640 |
+
{
|
641 |
+
var shortCutFunction = jQuery("#toastTypeGroup_error input:checked").val();
|
642 |
+
toastr[shortCutFunction](<?php echo json_encode($oauth_not_supported); ?>);
|
643 |
+
} else if (jQuery.trim(data) !== "" && mailer_type === "smtp")
|
644 |
+
{
|
645 |
+
window.location.href = data;
|
646 |
+
} else
|
647 |
+
{
|
648 |
+
var send_mail = false;
|
649 |
+
if (jQuery.trim(automatic_mail) === "true")
|
650 |
+
{
|
651 |
+
var send_mail = true;
|
652 |
+
}
|
653 |
+
window.location.href = "admin.php?page=mb_email_configuration&auto_mail=" + send_mail;
|
654 |
+
}
|
655 |
+
});
|
656 |
+
}
|
657 |
+
}
|
658 |
+
});
|
659 |
+
}
|
660 |
|
661 |
+
function change_settings_mail_bank()
|
662 |
+
{
|
663 |
+
var type = jQuery("#ux_ddl_type").val();
|
664 |
+
switch (type)
|
665 |
+
{
|
666 |
+
case "php_mail_function":
|
667 |
+
jQuery("#ux_div_smtp_mail_function").css("display", "none");
|
668 |
+
break;
|
669 |
+
case "smtp":
|
670 |
+
jQuery("#ux_div_smtp_mail_function").css("display", "block");
|
671 |
+
break;
|
672 |
+
}
|
673 |
+
select_credentials_mail_bank();
|
674 |
+
}
|
675 |
|
676 |
+
function mail_bank_get_host_port()
|
677 |
+
{
|
678 |
+
change_settings_mail_bank();
|
679 |
+
var smtp_user = jQuery("#ux_txt_email_address").val();
|
680 |
+
jQuery.post(ajaxurl,
|
681 |
+
{
|
682 |
+
smtp_user: smtp_user,
|
683 |
+
param: "mail_bank_set_hostname_port_module",
|
684 |
+
action: "mail_bank_action",
|
685 |
+
_wp_nonce: "<?php echo $mail_bank_set_hostname_port; ?>"
|
686 |
+
},
|
687 |
+
function (data)
|
688 |
+
{
|
689 |
+
if (jQuery.trim(data) !== "")
|
690 |
+
{
|
691 |
+
jQuery("#ux_txt_host").val(data);
|
692 |
+
check_links_oauth_mail_bank();
|
693 |
+
} else
|
694 |
+
{
|
695 |
+
jQuery("#ux_txt_host").val("");
|
696 |
+
jQuery("#ux_link_content").text("");
|
697 |
+
}
|
698 |
+
change_settings_mail_bank();
|
699 |
+
});
|
700 |
+
}
|
701 |
|
702 |
+
function change_link_content_mail_bank()
|
703 |
+
{
|
704 |
+
var host_type = jQuery("#ux_txt_host").val();
|
705 |
+
var indexof = host_type.indexOf("yahoo");
|
706 |
+
var hostname = host_type.substr(indexof, 5);
|
707 |
+
if (host_type === "smtp.gmail.com")
|
708 |
+
{
|
709 |
+
check_links_oauth_mail_bank();
|
710 |
+
jQuery("#ux_ddl_mb_authentication").val("oauth2");
|
711 |
+
select_credentials_mail_bank();
|
712 |
+
} else if (host_type === "smtp.live.com")
|
713 |
+
{
|
714 |
+
check_links_oauth_mail_bank();
|
715 |
+
jQuery("#ux_ddl_mb_authentication").val("oauth2");
|
716 |
+
select_credentials_mail_bank();
|
717 |
+
} else if (hostname === "yahoo")
|
718 |
+
{
|
719 |
+
check_links_oauth_mail_bank();
|
720 |
+
jQuery("#ux_ddl_mb_authentication").val("oauth2");
|
721 |
+
select_credentials_mail_bank();
|
722 |
+
} else
|
723 |
+
{
|
724 |
+
check_links_oauth_mail_bank();
|
725 |
+
jQuery("#ux_ddl_mb_authentication").val("login");
|
726 |
+
select_credentials_mail_bank();
|
727 |
+
}
|
728 |
+
}
|
729 |
|
730 |
+
jQuery(document).ready(function ()
|
731 |
+
{
|
732 |
+
if (window.CKEDITOR)
|
733 |
+
{
|
734 |
+
CKEDITOR.replace("ux_content");
|
735 |
+
}
|
736 |
+
jQuery("#ux_ddl_type").val("<?php echo isset($email_configuration_array["mailer_type"]) ? esc_attr($email_configuration_array["mailer_type"]) : ""; ?>");
|
737 |
+
jQuery("#ux_ddl_mb_authentication").val("<?php echo isset($email_configuration_array["auth_type"]) ? esc_attr($email_configuration_array["auth_type"]) : "login"; ?>");
|
738 |
+
jQuery("#ux_ddl_from_name").val("<?php echo isset($email_configuration_array["sender_name_configuration"]) ? esc_html($email_configuration_array["sender_name_configuration"]) : ""; ?>");
|
739 |
+
jQuery("#ux_ddl_from_email").val("<?php echo isset($email_configuration_array["from_email_configuration"]) ? esc_attr($email_configuration_array["from_email_configuration"]) : ""; ?>");
|
740 |
+
jQuery("#ux_ddl_encryption").val("<?php echo isset($email_configuration_array["enc_type"]) ? esc_attr($email_configuration_array["enc_type"]) : "" ?>");
|
741 |
+
<?php
|
742 |
+
if (isset($test_secret_key_error)) {
|
743 |
+
?>
|
744 |
+
var shortCutFunction = jQuery("#toastTypeGroup_error input:checked").val();
|
745 |
+
toastr[shortCutFunction](<?php echo json_encode($test_secret_key_error); ?>);
|
746 |
+
mail_bank_second_step_settings();
|
747 |
+
<?php
|
748 |
+
}
|
749 |
+
if (isset($automatically_send_mail)) {
|
750 |
+
?>
|
751 |
+
window.location.href = "admin.php?page=mb_email_configuration&auto_mail=true";
|
752 |
+
<?php
|
753 |
+
} elseif (isset($automatically_not_send_mail)) {
|
754 |
+
?>
|
755 |
+
window.location.href = "admin.php?page=mb_email_configuration&auto_mail=false";
|
756 |
+
<?php
|
757 |
+
}
|
758 |
+
?>
|
759 |
+
load_sidebar_content_mail_bank();
|
760 |
+
//change_link_content_mail_bank();
|
761 |
+
select_credentials_mail_bank();
|
762 |
+
change_settings_mail_bank();
|
763 |
+
mail_bank_from_name_override();
|
764 |
+
mail_bank_from_email_override();
|
765 |
+
<?php
|
766 |
+
if (isset($_REQUEST["auto_mail"]) && esc_attr($_REQUEST["auto_mail"]) == "true") {
|
767 |
+
?>
|
768 |
+
mail_bank_mail_sender("<?php echo get_option('admin_email'); ?>");
|
769 |
+
jQuery("#console_log_div").css("display", "block");
|
770 |
+
jQuery("#ux_div_mail_console").css("display", "none");
|
771 |
+
jQuery("#ux_div_test_mail").css("display", "none");
|
772 |
+
mail_bank_third_step_settings();
|
773 |
+
<?php
|
774 |
+
} elseif (isset($_REQUEST["auto_mail"]) && esc_attr($_REQUEST["auto_mail"]) == "false") {
|
775 |
+
?>
|
776 |
+
jQuery("#ux_div_mail_console").css("display", "none");
|
777 |
+
jQuery("#ux_div_test_mail").css("display", "block");
|
778 |
+
mail_bank_third_step_settings();
|
779 |
+
<?php
|
780 |
+
}
|
781 |
+
if ($email_configuration_array["hostname"] != "") {
|
782 |
+
?>
|
783 |
+
jQuery("#ux_txt_host").val("<?php echo isset($email_configuration_array["hostname"]) ? esc_attr($email_configuration_array["hostname"]) : ""; ?>");
|
784 |
+
<?php
|
785 |
+
} else {
|
786 |
+
?>
|
787 |
+
mail_bank_get_host_port();
|
788 |
+
<?php
|
789 |
+
}
|
790 |
+
?>
|
791 |
+
});
|
792 |
+
function mail_bank_move_to_second_step()
|
793 |
+
{
|
794 |
+
jQuery("#ux_div_first_step").addClass("first-step-helper");
|
795 |
+
mail_bank_validate_settings();
|
796 |
+
}
|
797 |
|
798 |
+
function mail_bank_move_to_first_step()
|
799 |
+
{
|
800 |
+
jQuery("#ux_div_first_step").removeClass("first-step-helper");
|
801 |
+
jQuery("#test_email").removeClass("second-step-helper");
|
802 |
+
jQuery("#ux_div_first_step").css("display", "block");
|
803 |
+
jQuery("#test_email").css("display", "none");
|
804 |
+
jQuery("#ux_div_second_step").css("display", "none");
|
805 |
+
jQuery("#ux_div_step_progres_bar_width").css("width", "33%");
|
806 |
+
jQuery("#ux_div_frm_wizard li:eq(1)").removeClass("active");
|
807 |
+
}
|
808 |
|
809 |
+
function mail_bank_save_changes()
|
810 |
+
{
|
811 |
+
overlay_loading_mail_bank(<?php echo json_encode($mb_update_email_configuration); ?>);
|
812 |
+
setTimeout(function ()
|
813 |
+
{
|
814 |
+
remove_overlay_mail_bank();
|
815 |
+
window.location.href = "admin.php?page=mb_email_configuration";
|
816 |
+
}, 3000);
|
817 |
+
}
|
818 |
|
819 |
+
function mail_bank_move_to_third_step()
|
820 |
+
{
|
821 |
+
mail_bank_validate_settings();
|
822 |
+
jQuery("#ux_div_first_step").removeClass("first-step-helper");
|
823 |
+
jQuery("#test_email").addClass("second-step-helper");
|
824 |
+
}
|
825 |
|
826 |
+
function mail_bank_select_port()
|
827 |
+
{
|
828 |
+
var encryption = jQuery("#ux_ddl_encryption").val();
|
829 |
+
switch (encryption)
|
830 |
+
{
|
831 |
+
case "none":
|
832 |
+
case "tls":
|
833 |
+
jQuery("#ux_txt_port").val(587);
|
834 |
+
break;
|
835 |
+
case "ssl":
|
836 |
+
jQuery("#ux_txt_port").val(465);
|
837 |
+
break;
|
838 |
+
}
|
839 |
+
}
|
840 |
|
841 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
842 |
+
setTimeout(function ()
|
843 |
+
{
|
844 |
+
clearInterval(sidebar_load_interval);
|
845 |
+
}, 5000);
|
846 |
+
load_sidebar_content_mail_bank();
|
847 |
+
<?php
|
848 |
+
}
|
849 |
+
break;
|
850 |
+
case "mb_test_email":
|
851 |
+
?>
|
852 |
+
jQuery("#ux_mb_li_test_email").addClass("active");
|
853 |
+
jQuery(document).ready(function ()
|
854 |
+
{
|
855 |
+
if (window.CKEDITOR)
|
856 |
+
{
|
857 |
+
CKEDITOR.replace("ux_content");
|
858 |
+
}
|
859 |
+
});
|
860 |
+
<?php
|
861 |
+
break;
|
862 |
+
case "mb_connectivity_test":
|
863 |
+
?>
|
864 |
+
jQuery("#ux_mb_li_connectivity_test").addClass("active");
|
865 |
+
<?php
|
866 |
+
if (conectivity_test_email_mail_bank == 1) {
|
867 |
+
?>
|
868 |
+
jQuery("#ux_frm_settings").validate
|
869 |
+
({
|
870 |
+
rules:
|
871 |
+
{
|
872 |
+
ux_txt_conn_search:
|
873 |
+
{
|
874 |
+
required: true
|
875 |
+
}
|
876 |
+
},
|
877 |
+
errorPlacement: function ()
|
878 |
+
{
|
879 |
+
},
|
880 |
+
highlight: function (element)
|
881 |
+
{
|
882 |
+
jQuery(element).closest(".form-group").removeClass("has-success").addClass("has-error");
|
883 |
+
},
|
884 |
+
success: function (label, element)
|
885 |
+
{
|
886 |
+
var icon = jQuery(element).parent(".input-icon").children("i");
|
887 |
+
jQuery(element).closest(".form-group").removeClass("has-error").addClass("has-success");
|
888 |
+
icon.removeClass("fa-warning").addClass("fa-check");
|
889 |
+
},
|
890 |
+
submitHandler: function ()
|
891 |
+
{
|
892 |
+
jQuery("#ux_div_connectivity_test").css("display", "block");
|
893 |
+
overlay_loading_mail_bank();
|
894 |
+
jQuery.post(ajaxurl,
|
895 |
+
{
|
896 |
+
smtp_host: jQuery("#ux_txt_conn_search").val(),
|
897 |
+
param: "mail_bank_connectivity_test",
|
898 |
+
action: "mail_bank_action",
|
899 |
+
_wp_nonce: "<?php echo $connectivity_test_nonce; ?>"
|
900 |
+
},
|
901 |
+
function (data)
|
902 |
+
{
|
903 |
+
jQuery("#ux_tbody_smtp").html(data);
|
904 |
+
setTimeout(function ()
|
905 |
+
{
|
906 |
+
remove_overlay_mail_bank();
|
907 |
+
}, 1000);
|
908 |
+
});
|
909 |
+
}
|
910 |
+
});
|
911 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
912 |
+
setTimeout(function ()
|
913 |
+
{
|
914 |
+
clearInterval(sidebar_load_interval);
|
915 |
+
}, 5000);
|
916 |
+
<?php
|
917 |
+
}
|
918 |
+
break;
|
919 |
+
case "mb_email_logs":
|
920 |
+
?>
|
921 |
+
jQuery("#ux_mb_li_email_logs").addClass("active");
|
922 |
+
<?php
|
923 |
+
if (email_logs_mail_bank == 1) {
|
924 |
+
?>
|
925 |
+
jQuery(document).ready(function ()
|
926 |
+
{
|
927 |
+
jQuery("#ux_txt_mb_start_date").datepicker
|
928 |
+
({
|
929 |
+
dateFormat: 'mm/dd/yy',
|
930 |
+
numberOfMonths: 1,
|
931 |
+
changeMonth: true,
|
932 |
+
changeYear: true,
|
933 |
+
yearRange: "1970:2039",
|
934 |
+
onSelect: function (selected)
|
935 |
+
{
|
936 |
+
jQuery("#ux_txt_mb_end_date").datepicker("option", "minDate", selected)
|
937 |
+
}
|
938 |
+
});
|
939 |
+
jQuery("#ux_txt_mb_end_date").datepicker
|
940 |
+
({
|
941 |
+
dateFormat: 'mm/dd/yy',
|
942 |
+
numberOfMonths: 1,
|
943 |
+
changeMonth: true,
|
944 |
+
changeYear: true,
|
945 |
+
yearRange: "1970:2039",
|
946 |
+
onSelect: function (selected)
|
947 |
+
{
|
948 |
+
jQuery("#ux_txt_mb_start_date").datepicker("option", "maxDate", selected)
|
949 |
+
}
|
950 |
+
});
|
951 |
+
});
|
952 |
+
function prevent_datepicker_mail_bank(id)
|
953 |
+
{
|
954 |
+
jQuery("#" + id).on("keypress", function (e)
|
955 |
+
{
|
956 |
+
e.preventDefault();
|
957 |
+
});
|
958 |
+
}
|
959 |
|
960 |
+
var oTable = jQuery("#ux_tbl_email_logs").dataTable
|
961 |
+
({
|
962 |
+
"pagingType": "full_numbers",
|
963 |
+
"language":
|
964 |
+
{
|
965 |
+
"emptyTable": "No data available in table",
|
966 |
+
"info": "Showing _START_ to _END_ of _TOTAL_ entries",
|
967 |
+
"infoEmpty": "No entries found",
|
968 |
+
"infoFiltered": "(filtered1 from _MAX_ total entries)",
|
969 |
+
"lengthMenu": "Show _MENU_ entries",
|
970 |
+
"search": "Search:",
|
971 |
+
"zeroRecords": "No matching records found"
|
972 |
+
},
|
973 |
+
"bSort": true,
|
974 |
+
"pageLength": 10,
|
975 |
+
"aoColumnDefs": [{"bSortable": false, "aTargets": [0]}]
|
976 |
+
});
|
977 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
978 |
+
setTimeout(function ()
|
979 |
+
{
|
980 |
+
clearInterval(sidebar_load_interval);
|
981 |
+
}, 5000);
|
982 |
+
jQuery("#ux_chk_all_email_logs").click(function ()
|
983 |
+
{
|
984 |
+
jQuery("input[type=checkbox]", oTable.fnGetFilteredNodes()).attr("checked", this.checked);
|
985 |
+
});
|
986 |
+
function check_email_logs()
|
987 |
+
{
|
988 |
+
if (jQuery("input:checked", oTable.fnGetFilteredNodes()).length === jQuery("input[type=checkbox]", oTable.fnGetFilteredNodes()).length)
|
989 |
+
{
|
990 |
+
jQuery("#ux_chk_all_email_logs").attr("checked", "checked");
|
991 |
+
} else
|
992 |
+
{
|
993 |
+
jQuery("#ux_chk_all_email_logs").removeAttr("checked");
|
994 |
+
}
|
995 |
+
}
|
996 |
|
997 |
+
var ux_frm_email_logs = jQuery("#ux_frm_email_logs").validate
|
998 |
+
({
|
999 |
+
submitHandler: function ()
|
1000 |
+
{
|
1001 |
+
premium_edition_notification_mail_bank();
|
1002 |
+
}
|
1003 |
+
});
|
1004 |
+
load_sidebar_content_mail_bank();
|
1005 |
+
<?php
|
1006 |
+
}
|
1007 |
+
break;
|
1008 |
+
case "mb_settings":
|
1009 |
+
?>
|
1010 |
+
jQuery("#ux_mb_li_settings").addClass("active");
|
1011 |
+
<?php
|
1012 |
+
if (settings_mail_bank == 1) {
|
1013 |
+
?>
|
1014 |
+
jQuery(document).ready(function ()
|
1015 |
+
{
|
1016 |
+
jQuery("#ux_ddl_debug_mode").val("<?php echo isset($settings_data_array["debug_mode"]) ? esc_attr($settings_data_array["debug_mode"]) : "enable"; ?>");
|
1017 |
+
jQuery("#ux_ddl_remove_tables").val("<?php echo isset($settings_data_array["remove_tables_at_uninstall"]) ? esc_attr($settings_data_array["remove_tables_at_uninstall"]) : "disable"; ?>");
|
1018 |
+
jQuery("#ux_ddl_monitor_email_logs").val("<?php echo isset($settings_data_array["monitor_email_logs"]) ? esc_attr($settings_data_array["monitor_email_logs"]) : "enable"; ?>");
|
1019 |
+
});
|
1020 |
+
jQuery("#ux_frm_settings").validate
|
1021 |
+
({
|
1022 |
+
submitHandler: function ()
|
1023 |
+
{
|
1024 |
+
overlay_loading_mail_bank(<?php echo json_encode($mb_update_settings); ?>);
|
1025 |
+
jQuery.post(ajaxurl,
|
1026 |
+
{
|
1027 |
+
data: base64_encode_mail_bank(jQuery("#ux_frm_settings").serialize()),
|
1028 |
+
action: "mail_bank_action",
|
1029 |
+
param: "mail_bank_settings_module",
|
1030 |
+
_wp_nonce: "<?php echo $mail_bank_settings; ?>"
|
1031 |
+
},
|
1032 |
+
function ()
|
1033 |
+
{
|
1034 |
+
setTimeout(function ()
|
1035 |
+
{
|
1036 |
+
remove_overlay_mail_bank();
|
1037 |
+
window.location.href = "admin.php?page=mb_settings";
|
1038 |
+
}, 3000);
|
1039 |
+
});
|
1040 |
+
}
|
1041 |
+
});
|
1042 |
+
load_sidebar_content_mail_bank();
|
1043 |
+
<?php
|
1044 |
+
}
|
1045 |
+
break;
|
1046 |
+
case "mb_roles_and_capabilities":
|
1047 |
+
?>
|
1048 |
+
jQuery("#ux_mb_li_roles_and_capabilities").addClass("active");
|
1049 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
1050 |
+
setTimeout(function ()
|
1051 |
+
{
|
1052 |
+
clearInterval(sidebar_load_interval);
|
1053 |
+
}, 5000);
|
1054 |
+
<?php
|
1055 |
+
if (roles_and_capabilities_mail_bank == 1) {
|
1056 |
+
?>
|
1057 |
+
function full_control_function_mail_bank(id, div_id)
|
1058 |
+
{
|
1059 |
+
var checkbox_id = jQuery(id).prop("checked");
|
1060 |
+
jQuery("#" + div_id + " input[type=checkbox]").each(function ()
|
1061 |
+
{
|
1062 |
+
if (checkbox_id)
|
1063 |
+
{
|
1064 |
+
jQuery(this).attr("checked", "checked");
|
1065 |
+
if (jQuery(id).attr("id") !== jQuery(this).attr("id"))
|
1066 |
+
{
|
1067 |
+
jQuery(this).attr("disabled", "disabled");
|
1068 |
+
}
|
1069 |
+
} else
|
1070 |
+
{
|
1071 |
+
if (jQuery(id).attr("id") !== jQuery(this).attr("id"))
|
1072 |
+
{
|
1073 |
+
jQuery(this).removeAttr("disabled");
|
1074 |
+
jQuery("#ux_chk_other_capabilities_manage_options").attr("disabled", "disabled");
|
1075 |
+
jQuery("#ux_chk_other_capabilities_read").attr("checked", "checked").attr("disabled", "disabled");
|
1076 |
+
}
|
1077 |
+
}
|
1078 |
+
});
|
1079 |
+
}
|
1080 |
|
1081 |
+
function show_roles_capabilities_mail_bank(id, div_id)
|
1082 |
+
{
|
1083 |
+
if (jQuery(id).prop("checked"))
|
1084 |
+
{
|
1085 |
+
jQuery("#" + div_id).css("display", "block");
|
1086 |
+
} else
|
1087 |
+
{
|
1088 |
+
jQuery("#" + div_id).css("display", "none");
|
1089 |
+
}
|
1090 |
+
}
|
1091 |
|
1092 |
+
jQuery(document).ready(function ()
|
1093 |
+
{
|
1094 |
+
jQuery("#ux_ddl_mail_bank_menu").val("<?php echo isset($details_roles_capabilities["show_mail_bank_top_bar_menu"]) ? esc_attr($details_roles_capabilities["show_mail_bank_top_bar_menu"]) : "enable"; ?>");
|
1095 |
+
show_roles_capabilities_mail_bank("#ux_chk_author", "ux_div_author_roles");
|
1096 |
+
full_control_function_mail_bank("#ux_chk_full_control_author", "ux_div_author_roles");
|
1097 |
+
show_roles_capabilities_mail_bank("#ux_chk_editor", "ux_div_editor_roles");
|
1098 |
+
full_control_function_mail_bank("#ux_chk_full_control_editor", "ux_div_editor_roles");
|
1099 |
+
show_roles_capabilities_mail_bank("#ux_chk_contributor", "ux_div_contributor_roles");
|
1100 |
+
full_control_function_mail_bank("#ux_chk_full_control_contributor", "ux_div_contributor_roles");
|
1101 |
+
show_roles_capabilities_mail_bank("#ux_chk_subscriber", "ux_div_subscriber_roles");
|
1102 |
+
full_control_function_mail_bank("#ux_chk_full_control_subscriber", "ux_div_subscriber_roles");
|
1103 |
+
show_roles_capabilities_mail_bank("#ux_chk_others_privileges", "ux_div_other_privileges_roles");
|
1104 |
+
full_control_function_mail_bank("#ux_chk_full_control_other_privileges_roles", "ux_div_other_privileges_roles");
|
1105 |
+
full_control_function_mail_bank("#ux_chk_full_control_other_roles", "ux_div_other_roles");
|
1106 |
+
});
|
1107 |
+
jQuery("#ux_frm_roles_and_capabilities").validate
|
1108 |
+
({
|
1109 |
+
submitHandler: function ()
|
1110 |
+
{
|
1111 |
+
premium_edition_notification_mail_bank();
|
1112 |
+
}
|
1113 |
+
});
|
1114 |
+
load_sidebar_content_mail_bank();
|
1115 |
+
<?php
|
1116 |
+
}
|
1117 |
+
break;
|
1118 |
+
case "mb_feedbacks":
|
1119 |
+
?>
|
1120 |
+
jQuery("#ux_mb_li_feedbacks").addClass("active");
|
1121 |
+
load_sidebar_content_mail_bank();
|
1122 |
+
var feedback_array = [];
|
1123 |
+
var url = "<?php echo tech_banker_url . "/feedbacks.php"; ?>";
|
1124 |
+
var domain_url = "<?php echo site_url(); ?>";
|
1125 |
+
jQuery("#ux_frm_feedbacks").validate
|
1126 |
+
({
|
1127 |
+
rules:
|
1128 |
+
{
|
1129 |
+
ux_txt_your_name:
|
1130 |
+
{
|
1131 |
+
required: true
|
1132 |
+
},
|
1133 |
+
ux_txt_email_address:
|
1134 |
+
{
|
1135 |
+
required: true,
|
1136 |
+
email: true
|
1137 |
+
},
|
1138 |
+
ux_txtarea_feedbacks:
|
1139 |
+
{
|
1140 |
+
required: true
|
1141 |
+
}
|
1142 |
+
},
|
1143 |
+
errorPlacement: function ()
|
1144 |
+
{
|
1145 |
+
},
|
1146 |
+
highlight: function (element)
|
1147 |
+
{
|
1148 |
+
jQuery(element).closest(".form-group").removeClass("has-success").addClass("has-error");
|
1149 |
+
},
|
1150 |
+
success: function (label, element)
|
1151 |
+
{
|
1152 |
+
var icon = jQuery(element).parent(".input-icon").children("i");
|
1153 |
+
jQuery(element).closest(".form-group").removeClass("has-error").addClass("has-success");
|
1154 |
+
icon.removeClass("fa-warning").addClass("fa-check");
|
1155 |
+
},
|
1156 |
+
submitHandler: function ()
|
1157 |
+
{
|
1158 |
+
feedback_array.push(jQuery("#ux_txt_your_name").val(), jQuery("#ux_txt_email_address").val(), domain_url, jQuery("#ux_txtarea_feedbacks").val());
|
1159 |
+
overlay_loading_mail_bank(<?php echo json_encode($mb_update_feedbacks); ?>);
|
1160 |
+
jQuery.post(url,
|
1161 |
+
{
|
1162 |
+
data: JSON.stringify(feedback_array),
|
1163 |
+
param: "mail_bank_send_feedback"
|
1164 |
+
},
|
1165 |
+
function ()
|
1166 |
+
{
|
1167 |
+
setTimeout(function ()
|
1168 |
+
{
|
1169 |
+
remove_overlay_mail_bank();
|
1170 |
+
window.location.href = "admin.php?page=mb_feedbacks";
|
1171 |
+
}, 3000);
|
1172 |
+
});
|
1173 |
+
}
|
1174 |
+
});
|
1175 |
+
load_sidebar_content_mail_bank();
|
1176 |
+
<?php
|
1177 |
+
break;
|
1178 |
+
case "mb_system_information":
|
1179 |
+
?>
|
1180 |
+
jQuery("#ux_mb_li_system_information").addClass("active");
|
1181 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
1182 |
+
setTimeout(function ()
|
1183 |
+
{
|
1184 |
+
clearInterval(sidebar_load_interval);
|
1185 |
+
}, 5000);
|
1186 |
+
<?php
|
1187 |
+
if (system_information_mail_bank == 1) {
|
1188 |
+
?>
|
1189 |
+
jQuery.getSystemReport = function (strDefault, stringCount, string, location)
|
1190 |
+
{
|
1191 |
+
var o = strDefault.toString();
|
1192 |
+
if (!string)
|
1193 |
+
{
|
1194 |
+
string = "0";
|
1195 |
+
}
|
1196 |
+
while (o.length < stringCount)
|
1197 |
+
{
|
1198 |
+
if (location === "undefined")
|
1199 |
+
{
|
1200 |
+
o = string + o;
|
1201 |
+
} else
|
1202 |
+
{
|
1203 |
+
o = o + string;
|
1204 |
+
}
|
1205 |
+
}
|
1206 |
+
return o;
|
1207 |
+
};
|
1208 |
+
jQuery(".system-report").click(function ()
|
1209 |
+
{
|
1210 |
+
var report = "";
|
1211 |
+
jQuery(".custom-form-body").each(function ()
|
1212 |
+
{
|
1213 |
+
jQuery("h3.form-section", jQuery(this)).each(function ()
|
1214 |
+
{
|
1215 |
+
report = report + "\n### " + jQuery.trim(jQuery(this).text()) + " ###\n\n";
|
1216 |
+
});
|
1217 |
+
jQuery("tbody > tr", jQuery(this)).each(function ()
|
1218 |
+
{
|
1219 |
+
var the_name = jQuery.getSystemReport(jQuery.trim(jQuery(this).find("strong").text()), 25, " ");
|
1220 |
+
var the_value = jQuery.trim(jQuery(this).find("span").text());
|
1221 |
+
var value_array = the_value.split(", ");
|
1222 |
+
if (value_array.length > 1)
|
1223 |
+
{
|
1224 |
+
var temp_line = "";
|
1225 |
+
jQuery.each(value_array, function (key, line)
|
1226 |
+
{
|
1227 |
+
var tab = (key == 0) ? 0 : 25;
|
1228 |
+
temp_line = temp_line + jQuery.getSystemReport("", tab, " ", "f") + line + "\n";
|
1229 |
+
});
|
1230 |
+
the_value = temp_line;
|
1231 |
+
}
|
1232 |
+
report = report + "" + the_name + the_value + "\n";
|
1233 |
+
});
|
1234 |
+
});
|
1235 |
+
try
|
1236 |
+
{
|
1237 |
+
jQuery("#ux_system_information").slideDown();
|
1238 |
+
jQuery("#ux_system_information textarea").val(report).focus().select();
|
1239 |
+
return false;
|
1240 |
+
} catch (e)
|
1241 |
+
{
|
1242 |
+
}
|
1243 |
+
return false;
|
1244 |
+
});
|
1245 |
+
jQuery("#ux_btn_system_information").click(function ()
|
1246 |
+
{
|
1247 |
+
if (jQuery("#ux_btn_system_information").text() === "Close System Information!")
|
1248 |
+
{
|
1249 |
+
jQuery("#ux_system_information").slideUp();
|
1250 |
+
jQuery("#ux_btn_system_information").html("Get System Information!");
|
1251 |
+
} else
|
1252 |
+
{
|
1253 |
+
jQuery("#ux_btn_system_information").html("Close System Information!");
|
1254 |
+
jQuery("#ux_btn_system_information").removeClass("system-information");
|
1255 |
+
jQuery("#ux_btn_system_information").addClass("close-information");
|
1256 |
+
}
|
1257 |
+
});
|
1258 |
+
load_sidebar_content_mail_bank();
|
1259 |
+
<?php
|
1260 |
+
}
|
1261 |
+
break;
|
1262 |
|
1263 |
+
case "mb_upgrade":
|
1264 |
+
?>
|
1265 |
+
jQuery("#ux_li_upgrade").addClass("active");
|
1266 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
1267 |
+
setTimeout(function ()
|
1268 |
+
{
|
1269 |
+
clearInterval(sidebar_load_interval);
|
1270 |
+
}, 5000);
|
1271 |
+
load_sidebar_content_mail_bank();
|
1272 |
+
<?php
|
1273 |
+
break;
|
1274 |
+
}
|
1275 |
}
|
1276 |
?>
|
1277 |
</script>
|
includes/google-authentication-mail-bank.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
@@ -10,64 +9,58 @@ if (file_exists(MAIL_BANK_DIR_PATH . "includes/token-manager-mail-bank.php")) {
|
|
10 |
if (!class_exists("google_authentication_mail_bank")) {
|
11 |
|
12 |
class google_authentication_mail_bank extends token_manager_mail_bank {
|
13 |
-
|
14 |
public
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
// Constructor
|
22 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri, $sender_email) {
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
}
|
30 |
-
|
31 |
// This function request the token code
|
32 |
public function get_token_code($state_id) {
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
|
44 |
-
|
45 |
}
|
46 |
-
|
47 |
// This function process the token code
|
48 |
public function process_token_Code($state_id) {
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
}
|
70 |
-
|
71 |
}
|
72 |
-
|
73 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
9 |
if (!class_exists("google_authentication_mail_bank")) {
|
10 |
|
11 |
class google_authentication_mail_bank extends token_manager_mail_bank {
|
|
|
12 |
public
|
13 |
+
$client_id,
|
14 |
+
$client_secret,
|
15 |
+
$callback_uri,
|
16 |
+
$sender_email,
|
17 |
+
$token_url;
|
|
|
18 |
// Constructor
|
19 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri, $sender_email) {
|
20 |
+
$this->sender_email = $sender_email;
|
21 |
+
$this->client_id = $client_id;
|
22 |
+
$this->client_secret = $client_secret;
|
23 |
+
$this->callback_uri = $callback_uri;
|
24 |
+
$this->token_url = "https://www.googleapis.com/oauth2/v3/token";
|
25 |
+
parent::__construct($client_id, $client_secret, $authorization_token, $callback_uri);
|
26 |
}
|
|
|
27 |
// This function request the token code
|
28 |
public function get_token_code($state_id) {
|
29 |
+
$configurations = array(
|
30 |
+
"response_type" => "code",
|
31 |
+
"redirect_uri" => urlencode($this->callback_uri),
|
32 |
+
"client_id" => $this->client_id,
|
33 |
+
"scope" => urlencode("https://mail.google.com/"),
|
34 |
+
"access_type" => "offline",
|
35 |
+
"approval_prompt" => "force",
|
36 |
+
"state" => $state_id,
|
37 |
+
"login_hint" => $this->sender_email
|
38 |
+
);
|
39 |
|
40 |
+
echo $oauth_url = "https://accounts.google.com/o/oauth2/auth?" . build_query($configurations);
|
41 |
}
|
|
|
42 |
// This function process the token code
|
43 |
public function process_token_Code($state_id) {
|
44 |
+
if (isset($_REQUEST["access_token"])) {
|
45 |
+
$code = esc_attr($_REQUEST["access_token"]);
|
46 |
+
$configurations = array(
|
47 |
+
"client_id" => $this->client_id,
|
48 |
+
"client_secret" => $this->client_secret,
|
49 |
+
"grant_type" => "authorization_code",
|
50 |
+
"redirect_uri" => $this->callback_uri,
|
51 |
+
"code" => $code
|
52 |
+
);
|
53 |
+
$response = mail_bank_zend_mail_helper::retrieve_body_from_response_mail_bank($this->token_url, $configurations);
|
54 |
+
$test_error = $this->process_response($response);
|
55 |
+
if (isset($test_error->error)) {
|
56 |
+
return $test_error;
|
57 |
+
} else {
|
58 |
+
$this->get_authorization_token()->set_vendorname_mail_bank("google");
|
59 |
+
return "1";
|
60 |
+
}
|
61 |
+
} else {
|
62 |
+
return false;
|
63 |
+
}
|
64 |
}
|
|
|
65 |
}
|
|
|
66 |
}
|
includes/header.php
CHANGED
@@ -15,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
-
|
19 |
-
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
@@ -26,14 +26,14 @@ if (!is_user_logged_in()) {
|
|
26 |
<div class="page-container">
|
27 |
<div id="manage_messages" style="display:none;">
|
28 |
<div class="radio">
|
29 |
-
|
30 |
</div>
|
31 |
</div>
|
32 |
<div id="toastTypeGroup_error" style="display:none;">
|
33 |
<div class="radio">
|
34 |
-
|
35 |
</div>
|
36 |
</div>
|
37 |
-
|
38 |
}
|
39 |
}
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
26 |
<div class="page-container">
|
27 |
<div id="manage_messages" style="display:none;">
|
28 |
<div class="radio">
|
29 |
+
<input type="radio" value="success" checked="checked" />
|
30 |
</div>
|
31 |
</div>
|
32 |
<div id="toastTypeGroup_error" style="display:none;">
|
33 |
<div class="radio">
|
34 |
+
<input type="radio" value="error" checked=""/>
|
35 |
</div>
|
36 |
</div>
|
37 |
+
<?php
|
38 |
}
|
39 |
}
|
includes/mail-bank-configuration-provider.php
CHANGED
@@ -1,26 +1,22 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
6 |
if (!class_exists("mail_bank_configuration_provider")) {
|
7 |
|
8 |
class mail_bank_configuration_provider {
|
9 |
-
|
10 |
public function get_configuration_settings() {
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
}
|
23 |
-
|
24 |
}
|
25 |
-
|
26 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
5 |
if (!class_exists("mail_bank_configuration_provider")) {
|
6 |
|
7 |
class mail_bank_configuration_provider {
|
|
|
8 |
public function get_configuration_settings() {
|
9 |
+
global $wpdb;
|
10 |
+
$email_configuration_data = $wpdb->get_var
|
11 |
+
(
|
12 |
+
$wpdb->prepare
|
13 |
+
(
|
14 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
15 |
+
" WHERE meta_key=%s", "email_configuration"
|
16 |
+
)
|
17 |
+
);
|
18 |
+
$email_configuration_array = maybe_unserialize($email_configuration_data);
|
19 |
+
return $email_configuration_array;
|
20 |
}
|
|
|
21 |
}
|
|
|
22 |
}
|
includes/mail-bank-configure-transport.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
@@ -10,54 +9,50 @@ if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-configuration-provider.
|
|
10 |
if (!class_exists("mail_bank_configure_transport")) {
|
11 |
|
12 |
class mail_bank_configure_transport {
|
13 |
-
|
14 |
public function configure_plain_transport() {
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
}
|
34 |
-
|
35 |
public function configure_oauth_transport() {
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
}
|
60 |
-
|
61 |
}
|
62 |
-
|
63 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
9 |
if (!class_exists("mail_bank_configure_transport")) {
|
10 |
|
11 |
class mail_bank_configure_transport {
|
|
|
12 |
public function configure_plain_transport() {
|
13 |
+
$obj_mail_bank_configuration_provider = new mail_bank_configuration_provider();
|
14 |
+
$configuration_setting = $obj_mail_bank_configuration_provider->get_configuration_settings();
|
15 |
+
|
16 |
+
$port = $configuration_setting["port"];
|
17 |
+
$enc_type = $configuration_setting["enc_type"];
|
18 |
+
|
19 |
+
//set configurations
|
20 |
+
$config = array(
|
21 |
+
"port" => $port
|
22 |
+
);
|
23 |
+
if ($enc_type != "none") {
|
24 |
+
$config["ssl"] = $enc_type;
|
25 |
+
}
|
26 |
+
|
27 |
+
$config["auth"] = $configuration_setting["auth_type"];
|
28 |
+
$config["username"] = $configuration_setting["username"];
|
29 |
+
$config["password"] = base64_decode($configuration_setting["password"]);
|
30 |
+
return $config;
|
31 |
}
|
|
|
32 |
public function configure_oauth_transport() {
|
33 |
+
$obj_mail_bank_configuration_provider = new mail_bank_configuration_provider();
|
34 |
+
$configuration_setting = $obj_mail_bank_configuration_provider->get_configuration_settings();
|
35 |
+
$sender_email = $configuration_setting["email_address"];
|
36 |
+
|
37 |
+
//set vendor name for yahoo
|
38 |
+
$vendor = "";
|
39 |
+
if (mail_bank_zend_mail_helper::email_domains_mail_bank($configuration_setting["hostname"], "yahoo.com")) {
|
40 |
+
$vendor = "yahoo";
|
41 |
+
}
|
42 |
+
|
43 |
+
$obj_mail_bank_manage_token = mail_bank_manage_token::get_instance();
|
44 |
+
// create oauth2 string
|
45 |
+
$xoauth2_request = base64_encode(sprintf("user=%s\1auth=Bearer %s\1%s\1", $sender_email, $obj_mail_bank_manage_token->retrieve_access_token_mail_bank(), $vendor));
|
46 |
+
|
47 |
+
//set configurations
|
48 |
+
$config = array(
|
49 |
+
"ssl" => $configuration_setting["enc_type"],
|
50 |
+
"port" => $configuration_setting["port"],
|
51 |
+
"auth" => "oauth2",
|
52 |
+
"xoauth2_request" => $xoauth2_request
|
53 |
+
);
|
54 |
+
|
55 |
+
return $config;
|
56 |
}
|
|
|
57 |
}
|
|
|
58 |
}
|
includes/mail-bank-email-log.php
CHANGED
@@ -1,129 +1,118 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
6 |
if (!class_exists("mail_bank_email_log")) {
|
7 |
|
8 |
class mail_bank_email_log {
|
9 |
-
|
10 |
public $to_recipients;
|
11 |
public $subject;
|
12 |
public $body;
|
13 |
-
|
14 |
}
|
15 |
-
|
16 |
}
|
17 |
|
18 |
if (!class_exists("mail_bank_email_log_writter")) {
|
19 |
|
20 |
// This class is used to create logs.
|
21 |
class mail_bank_email_log_writter {
|
22 |
-
|
23 |
// This function is used to write success logs.
|
24 |
public function mb_success_log($email_logs, $email_message, $debug_mode, $email_configuration_settings, $obj_mail_bank_manage_email) {
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
}
|
30 |
-
|
31 |
// This function is used to write failure logs.
|
32 |
public function mb_failure_log($email_logs, $email_message = null, $debug_mode, $email_configuration_settings, $obj_mail_bank_manage_email) {
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
}
|
37 |
-
|
38 |
// This function writes the Email Logs.
|
39 |
public function mb_email_log($email_logs, $debug_mode, $status, $email_configuration_settings, $obj_mail_bank_manage_email, $message) {
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
}
|
98 |
-
|
99 |
// This function is used to create email logs
|
100 |
public function mb_create_email_log($email_logs, mail_bank_manage_email $email_message = null) {
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
}
|
108 |
-
|
109 |
// This function creates a readable "TO" entry based on the recipient header
|
110 |
public static function mb_flat_emails(array $addresses) {
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
}
|
126 |
-
|
127 |
}
|
128 |
-
|
129 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
5 |
if (!class_exists("mail_bank_email_log")) {
|
6 |
|
7 |
class mail_bank_email_log {
|
|
|
8 |
public $to_recipients;
|
9 |
public $subject;
|
10 |
public $body;
|
|
|
11 |
}
|
|
|
12 |
}
|
13 |
|
14 |
if (!class_exists("mail_bank_email_log_writter")) {
|
15 |
|
16 |
// This class is used to create logs.
|
17 |
class mail_bank_email_log_writter {
|
|
|
18 |
// This function is used to write success logs.
|
19 |
public function mb_success_log($email_logs, $email_message, $debug_mode, $email_configuration_settings, $obj_mail_bank_manage_email) {
|
20 |
+
$status = "Sent";
|
21 |
+
$subject = $email_message->mb_get_subject();
|
22 |
+
$this->mb_create_email_log($email_logs, $email_message);
|
23 |
+
$this->mb_email_log($email_logs, $debug_mode, $status, $email_configuration_settings, $obj_mail_bank_manage_email, $email_message);
|
24 |
}
|
|
|
25 |
// This function is used to write failure logs.
|
26 |
public function mb_failure_log($email_logs, $email_message = null, $debug_mode, $email_configuration_settings, $obj_mail_bank_manage_email) {
|
27 |
+
$status = "Not Sent";
|
28 |
+
$this->mb_create_email_log($email_logs, $email_message);
|
29 |
+
$this->mb_email_log($email_logs, $debug_mode, $status, $email_configuration_settings, $obj_mail_bank_manage_email, $email_message);
|
30 |
}
|
|
|
31 |
// This function writes the Email Logs.
|
32 |
public function mb_email_log($email_logs, $debug_mode, $status, $email_configuration_settings, $obj_mail_bank_manage_email, $message) {
|
33 |
+
$sender = $message->get_email_address_mail_bank();
|
34 |
+
|
35 |
+
$sender_email = $email_configuration_settings["from_email_configuration"] == "override" ? $email_configuration_settings["sender_email"] : $sender->mb_get_email();
|
36 |
+
$sender_name = $email_configuration_settings["sender_name_configuration"] == "override" ? $email_configuration_settings["sender_name"] : $sender->mb_get_name();
|
37 |
+
|
38 |
+
$cc_recipients = $obj_mail_bank_manage_email->mb_get_cc_recipients();
|
39 |
+
$bcc_recipients = $obj_mail_bank_manage_email->mb_get_bcc_recipients();
|
40 |
+
$cc_address = "";
|
41 |
+
if ($email_configuration_settings["cc"] == "") {
|
42 |
+
$cc_array = array();
|
43 |
+
foreach ($cc_recipients as $recipient) {
|
44 |
+
array_push($cc_array, $recipient->email);
|
45 |
+
}
|
46 |
+
$cc_address = implode(",", $cc_array);
|
47 |
+
} else {
|
48 |
+
$cc_address = $email_configuration_settings["cc"];
|
49 |
+
}
|
50 |
+
$bcc_address = "";
|
51 |
+
if ($email_configuration_settings["bcc"] == "") {
|
52 |
+
$bcc_array = array();
|
53 |
+
foreach ($bcc_recipients as $recipient) {
|
54 |
+
array_push($bcc_array, $recipient->email);
|
55 |
+
}
|
56 |
+
$bcc_address = implode(",", $bcc_array);
|
57 |
+
} else {
|
58 |
+
$bcc_address = $email_configuration_settings["bcc"];
|
59 |
+
}
|
60 |
+
|
61 |
+
$email_logs_data_array = array();
|
62 |
+
$email_logs_data_array["email_to"] = $email_logs->to_recipients;
|
63 |
+
$email_logs_data_array["cc"] = $cc_address;
|
64 |
+
$email_logs_data_array["bcc"] = $bcc_address;
|
65 |
+
$email_logs_data_array["subject"] = $email_logs->subject;
|
66 |
+
$email_logs_data_array["content"] = $email_logs->body;
|
67 |
+
$email_logs_data_array["sender_name"] = $sender_name;
|
68 |
+
$email_logs_data_array["sender_email"] = $sender_email;
|
69 |
+
if ($debug_mode == "enable") {
|
70 |
+
$email_logs_data_array["debug_mode"] = $debug_mode;
|
71 |
+
$email_logs_data_array["debugging_output"] = get_option("mail_bank_mail_status");
|
72 |
+
}
|
73 |
+
$email_logs_data_array["timestamp"] = MAIL_BANK_LOCAL_TIME;
|
74 |
+
$email_logs_data_array["status"] = $status;
|
75 |
+
global $wpdb;
|
76 |
+
$email_logs_id = $wpdb->get_var
|
77 |
+
(
|
78 |
+
$wpdb->prepare
|
79 |
+
(
|
80 |
+
"SELECT id FROM " . mail_bank() .
|
81 |
+
" WHERE type = %s", "email_logs"
|
82 |
+
)
|
83 |
+
);
|
84 |
+
|
85 |
+
$email_logs_data = array();
|
86 |
+
$email_logs_data["meta_id"] = $email_logs_id;
|
87 |
+
$email_logs_data["meta_key"] = "email_logs";
|
88 |
+
$email_logs_data["meta_value"] = serialize($email_logs_data_array);
|
89 |
+
$wpdb->insert(mail_bank_meta(), $email_logs_data);
|
90 |
}
|
|
|
91 |
// This function is used to create email logs
|
92 |
public function mb_create_email_log($email_logs, mail_bank_manage_email $email_message = null) {
|
93 |
+
if ($email_message) {
|
94 |
+
$email_logs->to_recipients = $this->mb_flat_emails($email_message->mb_get_to_recipients());
|
95 |
+
$email_logs->subject = $email_message->mb_get_subject();
|
96 |
+
$email_logs->body = $email_message->mb_get_body();
|
97 |
+
}
|
98 |
+
return $email_logs;
|
99 |
}
|
|
|
100 |
// This function creates a readable "TO" entry based on the recipient header
|
101 |
public static function mb_flat_emails(array $addresses) {
|
102 |
+
$flat = "";
|
103 |
+
$count = 0;
|
104 |
+
foreach ($addresses as $address) {
|
105 |
+
if ($count >= 3) {
|
106 |
+
$flat .= sprintf('.. +%d more', sizeof($addresses) - $count);
|
107 |
+
break;
|
108 |
+
}
|
109 |
+
if ($count > 0) {
|
110 |
+
$flat .= ', ';
|
111 |
+
}
|
112 |
+
$flat .= $address->mb_email_format();
|
113 |
+
$count ++;
|
114 |
+
}
|
115 |
+
return $flat;
|
116 |
}
|
|
|
117 |
}
|
|
|
118 |
}
|
includes/mail-bank-manage-email-address.php
CHANGED
@@ -1,80 +1,68 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
6 |
if (!class_exists("mail_bank_manage_email_address")) {
|
7 |
|
8 |
class mail_bank_manage_email_address {
|
9 |
-
|
10 |
public
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
public function __construct($email, $name = null) {
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
}
|
24 |
-
|
25 |
public function mb_get_name() {
|
26 |
-
|
27 |
}
|
28 |
-
|
29 |
public function mb_get_email() {
|
30 |
-
|
31 |
}
|
32 |
-
|
33 |
public function mb_email_format() {
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
}
|
41 |
-
|
42 |
public function mb_set_name($name) {
|
43 |
-
|
44 |
}
|
45 |
-
|
46 |
public function mb_set_email($email) {
|
47 |
-
|
48 |
}
|
49 |
-
|
50 |
// This function validate the email address.
|
51 |
public function validate_email_contents_mail_bank($description = "") {
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
}
|
61 |
-
|
62 |
// This function takes a string or array of addresses and return an array.
|
63 |
public static function convert_string_to_array_mail_bank($emails) {
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
}
|
77 |
-
|
78 |
}
|
79 |
-
|
80 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
5 |
if (!class_exists("mail_bank_manage_email_address")) {
|
6 |
|
7 |
class mail_bank_manage_email_address {
|
|
|
8 |
public
|
9 |
+
$name,
|
10 |
+
$email;
|
|
|
11 |
public function __construct($email, $name = null) {
|
12 |
+
if (preg_match('/(.*)<(.+)>/', $email, $matches)) {
|
13 |
+
if (count($matches) == 3) {
|
14 |
+
$name = $matches [1];
|
15 |
+
$email = $matches [2];
|
16 |
+
}
|
17 |
+
}
|
18 |
+
$this->mb_set_email(trim($email));
|
19 |
+
$this->mb_set_name(trim($name));
|
20 |
}
|
|
|
21 |
public function mb_get_name() {
|
22 |
+
return $this->name;
|
23 |
}
|
|
|
24 |
public function mb_get_email() {
|
25 |
+
return $this->email;
|
26 |
}
|
|
|
27 |
public function mb_email_format() {
|
28 |
+
$name = $this->mb_get_name();
|
29 |
+
if (!empty($name)) {
|
30 |
+
return sprintf("%s <%s>", $this->mb_get_name(), $this->mb_get_email());
|
31 |
+
} else {
|
32 |
+
return sprintf("%s", $this->mb_get_email());
|
33 |
+
}
|
34 |
}
|
|
|
35 |
public function mb_set_name($name) {
|
36 |
+
$this->name = $name;
|
37 |
}
|
|
|
38 |
public function mb_set_email($email) {
|
39 |
+
$this->email = $email;
|
40 |
}
|
|
|
41 |
// This function validate the email address.
|
42 |
public function validate_email_contents_mail_bank($description = "") {
|
43 |
+
if (!mail_bank_zend_mail_helper::email_validation_mail_bank($this->email)) {
|
44 |
+
if (empty($description)) {
|
45 |
+
$message = sprintf('Invalid e-mail address "%s"', $this->email);
|
46 |
+
} else {
|
47 |
+
$message = sprintf('Invalid "%1$s" e-mail address "%2$s"', $description, $this->email);
|
48 |
+
}
|
49 |
+
throw new Exception($message);
|
50 |
+
}
|
51 |
}
|
|
|
52 |
// This function takes a string or array of addresses and return an array.
|
53 |
public static function convert_string_to_array_mail_bank($emails) {
|
54 |
+
if (!is_array($emails)) {
|
55 |
+
$t = explode(",", $emails);
|
56 |
+
$emails = array();
|
57 |
+
foreach ($t as $k => $v) {
|
58 |
+
if (strpos($v, ',') !== false) {
|
59 |
+
$t[$k] = '"' . str_replace(' <', '" <', $v);
|
60 |
+
}
|
61 |
+
$simplified_email = trim($t [$k]);
|
62 |
+
array_push($emails, $simplified_email);
|
63 |
+
}
|
64 |
+
}
|
65 |
+
return $emails;
|
66 |
}
|
|
|
67 |
}
|
|
|
68 |
}
|
includes/mail-bank-manage-email.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
@@ -7,37 +6,32 @@ if (!class_exists("mail_bank_manage_email")) {
|
|
7 |
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-email-address.php")) {
|
8 |
require_once MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-email-address.php";
|
9 |
}
|
10 |
-
|
11 |
class mail_bank_manage_email {
|
12 |
-
|
13 |
const EOL = "\r\n";
|
14 |
-
|
15 |
public
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
// Constructor
|
34 |
function __construct() {
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
}
|
40 |
-
|
41 |
// public static function getinstance()
|
42 |
// {
|
43 |
// static $inst = null;
|
@@ -49,328 +43,290 @@ if (!class_exists("mail_bank_manage_email")) {
|
|
49 |
// }
|
50 |
|
51 |
public function check_email_body_parts_mail_bank() {
|
52 |
-
|
53 |
}
|
54 |
-
|
55 |
public function validate_email_contents_mail_bank($transport) {
|
56 |
-
|
57 |
}
|
58 |
-
|
59 |
// This function create body parts based on content type
|
60 |
public function createBodyParts() {
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
}
|
106 |
-
|
107 |
// This function validate email headers
|
108 |
public function validate_email_headers_mail_bank() {
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
|
113 |
-
|
114 |
-
|
115 |
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
}
|
131 |
-
|
132 |
public function get_email_address_mail_bank() {
|
133 |
-
|
134 |
}
|
135 |
-
|
136 |
// Get the charset.
|
137 |
public function mb_get_charset() {
|
138 |
-
|
139 |
}
|
140 |
-
|
141 |
// Set the charset
|
142 |
public function mb_set_charset($charset) {
|
143 |
-
|
144 |
}
|
145 |
-
|
146 |
// Get the content type
|
147 |
public function mb_get_content_type() {
|
148 |
-
|
149 |
}
|
150 |
-
|
151 |
public function mb_set_content_type($content_type) {
|
152 |
-
|
153 |
}
|
154 |
-
|
155 |
public function mb_addto($to) {
|
156 |
-
|
157 |
}
|
158 |
-
|
159 |
public function mb_add_cc($cc) {
|
160 |
-
|
161 |
}
|
162 |
-
|
163 |
public function mb_add_bcc($bcc) {
|
164 |
-
|
165 |
}
|
166 |
-
|
167 |
public function mb_add_recipients(&$all_recipients, $recipients) {
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
}
|
177 |
-
|
178 |
// This function add headers
|
179 |
public function mb_add_headers($headers) {
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
}
|
200 |
-
|
201 |
// This function process headers
|
202 |
public function mb_process_header($name, $content) {
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
}
|
266 |
-
|
267 |
// Add attachments to the message
|
268 |
public function mb_add_attachments_to_mail(mail_bank_Zend_Mail $mail) {
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
}
|
285 |
-
|
286 |
function mb_set_body($body) {
|
287 |
-
|
288 |
}
|
289 |
-
|
290 |
function mb_set_body_textpart($body_textpart) {
|
291 |
-
|
292 |
}
|
293 |
-
|
294 |
function mb_set_body_htmlPart($body_htmlpart) {
|
295 |
-
|
296 |
}
|
297 |
-
|
298 |
function mb_set_subject($subject) {
|
299 |
-
|
300 |
}
|
301 |
-
|
302 |
function mb_set_attachments($attachments) {
|
303 |
-
|
304 |
}
|
305 |
-
|
306 |
function mb_set_from($email, $name = null) {
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
}
|
311 |
-
|
312 |
function mb_set_replyto($reply_to) {
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
}
|
317 |
-
|
318 |
function mb_set_messageid($message_id) {
|
319 |
-
|
320 |
}
|
321 |
-
|
322 |
function mb_set_date($date) {
|
323 |
-
|
324 |
}
|
325 |
-
|
326 |
public function mb_get_headers() {
|
327 |
-
|
328 |
}
|
329 |
-
|
330 |
public function mb_get_boundary() {
|
331 |
-
|
332 |
}
|
333 |
-
|
334 |
public function mb_get_to_recipients() {
|
335 |
-
|
336 |
}
|
337 |
-
|
338 |
public function mb_get_cc_recipients() {
|
339 |
-
|
340 |
}
|
341 |
-
|
342 |
public function mb_get_bcc_recipients() {
|
343 |
-
|
344 |
}
|
345 |
-
|
346 |
public function mb_get_reply_to() {
|
347 |
-
|
348 |
}
|
349 |
-
|
350 |
public function mb_get_date() {
|
351 |
-
|
352 |
}
|
353 |
-
|
354 |
public function mb_get_message_id() {
|
355 |
-
|
356 |
}
|
357 |
-
|
358 |
public function mb_get_subject() {
|
359 |
-
|
360 |
}
|
361 |
-
|
362 |
public function mb_get_body() {
|
363 |
-
|
364 |
}
|
365 |
-
|
366 |
public function mb_get_body_textPart() {
|
367 |
-
|
368 |
}
|
369 |
-
|
370 |
public function mb_get_body_html_part() {
|
371 |
-
|
372 |
}
|
373 |
-
|
374 |
}
|
375 |
-
|
376 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
6 |
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-email-address.php")) {
|
7 |
require_once MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-email-address.php";
|
8 |
}
|
|
|
9 |
class mail_bank_manage_email {
|
|
|
10 |
const EOL = "\r\n";
|
|
|
11 |
public
|
12 |
+
$from,
|
13 |
+
$reply_to,
|
14 |
+
$to_recipients,
|
15 |
+
$cc_recipients,
|
16 |
+
$bcc_recipients,
|
17 |
+
$subject,
|
18 |
+
$body,
|
19 |
+
$body_textpart,
|
20 |
+
$body_htmlpart,
|
21 |
+
$headers,
|
22 |
+
$attachments,
|
23 |
+
$date,
|
24 |
+
$message_id,
|
25 |
+
$content_type,
|
26 |
+
$charset,
|
27 |
+
$boundary;
|
|
|
28 |
// Constructor
|
29 |
function __construct() {
|
30 |
+
$this->headers = array();
|
31 |
+
$this->to_recipients = array();
|
32 |
+
$this->cc_recipients = array();
|
33 |
+
$this->bcc_recipients = array();
|
34 |
}
|
|
|
35 |
// public static function getinstance()
|
36 |
// {
|
37 |
// static $inst = null;
|
43 |
// }
|
44 |
|
45 |
public function check_email_body_parts_mail_bank() {
|
46 |
+
return empty($this->body_textpart) && empty($this->body_htmlpart);
|
47 |
}
|
|
|
48 |
public function validate_email_contents_mail_bank($transport) {
|
49 |
+
$this->validate_email_headers_mail_bank();
|
50 |
}
|
|
|
51 |
// This function create body parts based on content type
|
52 |
public function createBodyParts() {
|
53 |
+
if (false !== stripos($this->content_type, "multipart") && !empty($this->boundary)) {
|
54 |
+
$this->content_type = sprintf("%s;\r\n\t boundary=\"%s\"", $this->content_type, $this->mb_get_boundary());
|
55 |
+
}
|
56 |
+
|
57 |
+
$body = $this->mb_get_body();
|
58 |
+
$content_type = $this->mb_get_content_type();
|
59 |
+
if ($content_type == "") {
|
60 |
+
$content_type = apply_filters("wp_mail_content_type", $content_type);
|
61 |
+
}
|
62 |
+
if (substr($content_type, 0, 9) === "text/html") {
|
63 |
+
$this->mb_set_body_htmlPart($body);
|
64 |
+
} else if (substr($content_type, 0, 10) === "text/plain") {
|
65 |
+
$this->mb_set_body_textpart($body);
|
66 |
+
} else if (substr($content_type, 0, 21) === "multipart/alternative") {
|
67 |
+
$arr = explode(PHP_EOL, $body);
|
68 |
+
$textBody = "";
|
69 |
+
$htmlBody = "";
|
70 |
+
$mode = "";
|
71 |
+
foreach ($arr as $s) {
|
72 |
+
if (substr($s, 0, 25) === "Content-Type: text/plain;") {
|
73 |
+
$mode = "foundText";
|
74 |
+
} else if (substr($s, 0, 24) === "Content-Type: text/html;") {
|
75 |
+
$mode = "foundHtml";
|
76 |
+
} else if ($mode == "textReading") {
|
77 |
+
$textBody .= $s;
|
78 |
+
} else if ($mode == "htmlReading") {
|
79 |
+
$htmlBody .= $s;
|
80 |
+
} else if ($mode == "foundText") {
|
81 |
+
$trim = trim($s);
|
82 |
+
if (empty($trim)) {
|
83 |
+
$mode = "textReading";
|
84 |
+
}
|
85 |
+
} else if ($mode == "foundHtml") {
|
86 |
+
$trim = trim($s);
|
87 |
+
if (empty($trim)) {
|
88 |
+
$mode = "htmlReading";
|
89 |
+
}
|
90 |
+
}
|
91 |
+
}
|
92 |
+
$this->mb_set_body_htmlPart($htmlBody);
|
93 |
+
$this->mb_set_body_textpart($textBody);
|
94 |
+
} else {
|
95 |
+
$this->mb_set_body_textpart($body);
|
96 |
+
}
|
97 |
}
|
|
|
98 |
// This function validate email headers
|
99 |
public function validate_email_headers_mail_bank() {
|
100 |
+
if (isset($this->reply_to)) {
|
101 |
+
$this->mb_get_reply_to()->validate_email_contents_mail_bank("Reply-To");
|
102 |
+
}
|
103 |
|
104 |
+
// validate the from address
|
105 |
+
$this->get_email_address_mail_bank()->validate_email_contents_mail_bank("From");
|
106 |
|
107 |
+
// validate the to recipients
|
108 |
+
foreach ((array) $this->mb_get_to_recipients() as $to_address) {
|
109 |
+
$to_address->validate_email_contents_mail_bank("To");
|
110 |
+
}
|
111 |
|
112 |
+
// validate the cc recipients
|
113 |
+
foreach ((array) $this->mb_get_cc_recipients() as $cc_address) {
|
114 |
+
$cc_address->validate_email_contents_mail_bank("Cc");
|
115 |
+
}
|
116 |
|
117 |
+
// validate the bcc recipients
|
118 |
+
foreach ((array) $this->mb_get_bcc_recipients() as $bcc_address) {
|
119 |
+
$bcc_address->validate_email_contents_mail_bank("Bcc");
|
120 |
+
}
|
121 |
}
|
|
|
122 |
public function get_email_address_mail_bank() {
|
123 |
+
return $this->from;
|
124 |
}
|
|
|
125 |
// Get the charset.
|
126 |
public function mb_get_charset() {
|
127 |
+
return $this->charset;
|
128 |
}
|
|
|
129 |
// Set the charset
|
130 |
public function mb_set_charset($charset) {
|
131 |
+
$this->charset = $charset;
|
132 |
}
|
|
|
133 |
// Get the content type
|
134 |
public function mb_get_content_type() {
|
135 |
+
return $this->content_type;
|
136 |
}
|
|
|
137 |
public function mb_set_content_type($content_type) {
|
138 |
+
$this->content_type = $content_type;
|
139 |
}
|
|
|
140 |
public function mb_addto($to) {
|
141 |
+
$this->mb_add_recipients($this->to_recipients, $to);
|
142 |
}
|
|
|
143 |
public function mb_add_cc($cc) {
|
144 |
+
$this->mb_add_recipients($this->cc_recipients, $cc);
|
145 |
}
|
|
|
146 |
public function mb_add_bcc($bcc) {
|
147 |
+
$this->mb_add_recipients($this->bcc_recipients, $bcc);
|
148 |
}
|
|
|
149 |
public function mb_add_recipients(&$all_recipients, $recipients) {
|
150 |
+
if (!empty($recipients)) {
|
151 |
+
$recipients = mail_bank_manage_email_address::convert_string_to_array_mail_bank($recipients);
|
152 |
+
foreach ($recipients as $recipient) {
|
153 |
+
if (!empty($recipient)) {
|
154 |
+
array_push($all_recipients, new mail_bank_manage_email_address($recipient));
|
155 |
+
}
|
156 |
+
}
|
157 |
+
}
|
158 |
}
|
|
|
159 |
// This function add headers
|
160 |
public function mb_add_headers($headers) {
|
161 |
+
if (!is_array($headers)) {
|
162 |
+
$headers = explode("\n", str_replace("\r\n", "\n", $headers));
|
163 |
+
}
|
164 |
+
foreach ($headers as $header) {
|
165 |
+
if (!empty($header)) {
|
166 |
+
if (strpos($header, ":") === false) {
|
167 |
+
if (false !== stripos($header, "boundary=")) {
|
168 |
+
$parts = preg_split("/boundary=/i", trim($header));
|
169 |
+
$this->boundary = trim(str_replace(array(
|
170 |
+
"'",
|
171 |
+
'"'
|
172 |
+
), '', $parts [1]));
|
173 |
+
}
|
174 |
+
continue;
|
175 |
+
}
|
176 |
+
list($name, $content) = explode(":", trim($header), 2);
|
177 |
+
$this->mb_process_header($name, $content);
|
178 |
+
}
|
179 |
+
}
|
180 |
}
|
|
|
181 |
// This function process headers
|
182 |
public function mb_process_header($name, $content) {
|
183 |
+
$name = trim($name);
|
184 |
+
$content = trim($content);
|
185 |
+
switch (strtolower($name)) {
|
186 |
+
case "content-type" :
|
187 |
+
if (strpos($content, ";") !== false) {
|
188 |
+
list($type, $charset) = explode(";", $content);
|
189 |
+
$this->mb_set_content_type(trim($type));
|
190 |
+
if (false !== stripos($charset, "charset=")) {
|
191 |
+
$charset = trim(str_replace(array(
|
192 |
+
'charset=',
|
193 |
+
'"'
|
194 |
+
), '', $charset));
|
195 |
+
} elseif (false !== stripos($charset, "boundary=")) {
|
196 |
+
$this->boundary = trim(str_replace(array(
|
197 |
+
'BOUNDARY=',
|
198 |
+
'boundary=',
|
199 |
+
'"'
|
200 |
+
), '', $charset));
|
201 |
+
$charset = '';
|
202 |
+
}
|
203 |
+
if (!empty($charset)) {
|
204 |
+
$this->mb_set_charset($charset);
|
205 |
+
}
|
206 |
+
} else {
|
207 |
+
$this->mb_set_content_type(trim($content));
|
208 |
+
}
|
209 |
+
break;
|
210 |
+
case "to" :
|
211 |
+
$this->mb_addto($content);
|
212 |
+
break;
|
213 |
+
case "cc" :
|
214 |
+
$this->mb_add_cc($content);
|
215 |
+
break;
|
216 |
+
case "bcc" :
|
217 |
+
$this->mb_add_bcc($content);
|
218 |
+
break;
|
219 |
+
case "from" :
|
220 |
+
$this->mb_set_from($content);
|
221 |
+
break;
|
222 |
+
case "subject" :
|
223 |
+
$this->mb_set_subject($content);
|
224 |
+
break;
|
225 |
+
case "reply-to" :
|
226 |
+
$this->mb_set_replyto($content);
|
227 |
+
break;
|
228 |
+
case "sender" :
|
229 |
+
break;
|
230 |
+
case "return-path" :
|
231 |
+
break;
|
232 |
+
case "date" :
|
233 |
+
$this->mb_set_date($content);
|
234 |
+
break;
|
235 |
+
case "message-id" :
|
236 |
+
$this->mb_set_messageid($content);
|
237 |
+
break;
|
238 |
+
default :
|
239 |
+
array_push($this->headers, array(
|
240 |
+
"name" => $name,
|
241 |
+
"content" => $content
|
242 |
+
));
|
243 |
+
break;
|
244 |
+
}
|
245 |
}
|
|
|
246 |
// Add attachments to the message
|
247 |
public function mb_add_attachments_to_mail(mail_bank_Zend_Mail $mail) {
|
248 |
+
$attachments = $this->attachments;
|
249 |
+
if (!is_array($attachments)) {
|
250 |
+
$attributes_array = explode(PHP_EOL, $attachments);
|
251 |
+
} else {
|
252 |
+
$attributes_array = $attachments;
|
253 |
+
}
|
254 |
+
foreach ($attributes_array as $file) {
|
255 |
+
if (file_exists($file)) {
|
256 |
+
$at = new mail_bank_Zend_Mime_Part(file_get_contents($file));
|
257 |
+
$at->disposition = mail_bank_Zend_Mime::DISPOSITION_ATTACHMENT;
|
258 |
+
$at->encoding = mail_bank_Zend_Mime::ENCODING_BASE64;
|
259 |
+
$at->filename = basename($file);
|
260 |
+
$mail->addAttachment($at);
|
261 |
+
}
|
262 |
+
}
|
263 |
}
|
|
|
264 |
function mb_set_body($body) {
|
265 |
+
$this->body = $body;
|
266 |
}
|
|
|
267 |
function mb_set_body_textpart($body_textpart) {
|
268 |
+
$this->body_textpart = $body_textpart;
|
269 |
}
|
|
|
270 |
function mb_set_body_htmlPart($body_htmlpart) {
|
271 |
+
$this->body_htmlpart = $body_htmlpart;
|
272 |
}
|
|
|
273 |
function mb_set_subject($subject) {
|
274 |
+
$this->subject = $subject;
|
275 |
}
|
|
|
276 |
function mb_set_attachments($attachments) {
|
277 |
+
$this->attachments = $attachments;
|
278 |
}
|
|
|
279 |
function mb_set_from($email, $name = null) {
|
280 |
+
if (!empty($email)) {
|
281 |
+
$this->from = new mail_bank_manage_email_address($email, $name);
|
282 |
+
}
|
283 |
}
|
|
|
284 |
function mb_set_replyto($reply_to) {
|
285 |
+
if (!empty($reply_to)) {
|
286 |
+
$this->reply_to = new mail_bank_manage_email_address($reply_to);
|
287 |
+
}
|
288 |
}
|
|
|
289 |
function mb_set_messageid($message_id) {
|
290 |
+
$this->message_id = $message_id;
|
291 |
}
|
|
|
292 |
function mb_set_date($date) {
|
293 |
+
$this->date = $date;
|
294 |
}
|
|
|
295 |
public function mb_get_headers() {
|
296 |
+
return $this->headers;
|
297 |
}
|
|
|
298 |
public function mb_get_boundary() {
|
299 |
+
return $this->boundary;
|
300 |
}
|
|
|
301 |
public function mb_get_to_recipients() {
|
302 |
+
return $this->to_recipients;
|
303 |
}
|
|
|
304 |
public function mb_get_cc_recipients() {
|
305 |
+
return $this->cc_recipients;
|
306 |
}
|
|
|
307 |
public function mb_get_bcc_recipients() {
|
308 |
+
return $this->bcc_recipients;
|
309 |
}
|
|
|
310 |
public function mb_get_reply_to() {
|
311 |
+
return $this->reply_to;
|
312 |
}
|
|
|
313 |
public function mb_get_date() {
|
314 |
+
return $this->date;
|
315 |
}
|
|
|
316 |
public function mb_get_message_id() {
|
317 |
+
return $this->message_id;
|
318 |
}
|
|
|
319 |
public function mb_get_subject() {
|
320 |
+
return $this->subject;
|
321 |
}
|
|
|
322 |
public function mb_get_body() {
|
323 |
+
return $this->body;
|
324 |
}
|
|
|
325 |
public function mb_get_body_textPart() {
|
326 |
+
return $this->body_textpart;
|
327 |
}
|
|
|
328 |
public function mb_get_body_html_part() {
|
329 |
+
return $this->body_htmlpart;
|
330 |
}
|
|
|
331 |
}
|
|
|
332 |
}
|
includes/mail-bank-manage-token.php
CHANGED
@@ -1,85 +1,68 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
6 |
if (!class_exists("mail_bank_manage_token")) {
|
7 |
|
8 |
class mail_bank_manage_token {
|
9 |
-
|
10 |
public
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
public function __construct() {
|
17 |
-
|
18 |
}
|
19 |
-
|
20 |
public static function get_instance() {
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
}
|
27 |
-
|
28 |
public function isValid() {
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
}
|
33 |
-
|
34 |
public function get_token_mail_bank() {
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
}
|
41 |
-
|
42 |
// Save the mail bank oauth token properties to the database
|
43 |
public function save_token_mail_bank() {
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
}
|
50 |
-
|
51 |
public function get_vendor_mail_bank() {
|
52 |
-
|
53 |
}
|
54 |
-
|
55 |
public function retrieve_token_expiry_time_mail_bank() {
|
56 |
-
|
57 |
}
|
58 |
-
|
59 |
public function retrieve_access_token_mail_bank() {
|
60 |
-
|
61 |
}
|
62 |
-
|
63 |
public function retrieve_refresh_token_mail_bank() {
|
64 |
-
|
65 |
}
|
66 |
-
|
67 |
public function set_vendorname_mail_bank($name) {
|
68 |
-
|
69 |
}
|
70 |
-
|
71 |
public function set_token_expirytime_mail_bank($time) {
|
72 |
-
|
73 |
}
|
74 |
-
|
75 |
public function set_access_token_mail_bank($token) {
|
76 |
-
|
77 |
}
|
78 |
-
|
79 |
public function set_refresh_token_mail_bank($token) {
|
80 |
-
|
81 |
}
|
82 |
-
|
83 |
}
|
84 |
-
|
85 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
5 |
if (!class_exists("mail_bank_manage_token")) {
|
6 |
|
7 |
class mail_bank_manage_token {
|
|
|
8 |
public
|
9 |
+
$vendor_name,
|
10 |
+
$access_token,
|
11 |
+
$refresh_token,
|
12 |
+
$expiry_time;
|
|
|
13 |
public function __construct() {
|
14 |
+
$this->get_token_mail_bank();
|
15 |
}
|
|
|
16 |
public static function get_instance() {
|
17 |
+
static $instance = null;
|
18 |
+
if ($instance === null) {
|
19 |
+
$instance = new mail_bank_manage_token();
|
20 |
+
}
|
21 |
+
return $instance;
|
22 |
}
|
|
|
23 |
public function isValid() {
|
24 |
+
$access_token = $this->retrieve_access_token_mail_bank();
|
25 |
+
$refresh_token = $this->retrieve_refresh_token_mail_bank();
|
26 |
+
return !(empty($access_token) || empty($refresh_token));
|
27 |
}
|
|
|
28 |
public function get_token_mail_bank() {
|
29 |
+
$oauth_token = get_option("mail_bank_auth");
|
30 |
+
$this->set_access_token_mail_bank($oauth_token["access_token"]);
|
31 |
+
$this->set_refresh_token_mail_bank($oauth_token["refresh_token"]);
|
32 |
+
$this->set_token_expirytime_mail_bank($oauth_token["auth_token_expires"]);
|
33 |
+
$this->set_vendorname_mail_bank($oauth_token["vendor_name"]);
|
34 |
}
|
|
|
35 |
// Save the mail bank oauth token properties to the database
|
36 |
public function save_token_mail_bank() {
|
37 |
+
$oauth_token["access_token"] = $this->retrieve_access_token_mail_bank();
|
38 |
+
$oauth_token["refresh_token"] = $this->retrieve_refresh_token_mail_bank();
|
39 |
+
$oauth_token["auth_token_expires"] = $this->retrieve_token_expiry_time_mail_bank();
|
40 |
+
$oauth_token["vendor_name"] = $this->get_vendor_mail_bank();
|
41 |
+
update_option("mail_bank_auth", $oauth_token);
|
42 |
}
|
|
|
43 |
public function get_vendor_mail_bank() {
|
44 |
+
return $this->vendor_name;
|
45 |
}
|
|
|
46 |
public function retrieve_token_expiry_time_mail_bank() {
|
47 |
+
return $this->expiry_time;
|
48 |
}
|
|
|
49 |
public function retrieve_access_token_mail_bank() {
|
50 |
+
return $this->access_token;
|
51 |
}
|
|
|
52 |
public function retrieve_refresh_token_mail_bank() {
|
53 |
+
return $this->refresh_token;
|
54 |
}
|
|
|
55 |
public function set_vendorname_mail_bank($name) {
|
56 |
+
$this->vendor_name = esc_html($name);
|
57 |
}
|
|
|
58 |
public function set_token_expirytime_mail_bank($time) {
|
59 |
+
$this->expiry_time = esc_html($time);
|
60 |
}
|
|
|
61 |
public function set_access_token_mail_bank($token) {
|
62 |
+
$this->access_token = esc_html($token);
|
63 |
}
|
|
|
64 |
public function set_refresh_token_mail_bank($token) {
|
65 |
+
$this->refresh_token = esc_html($token);
|
66 |
}
|
|
|
67 |
}
|
|
|
68 |
}
|
includes/mail-bank-register-transport.php
CHANGED
@@ -1,23 +1,17 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
6 |
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-configure-transport.php")) {
|
7 |
require_once MAIL_BANK_DIR_PATH . "includes/mail-bank-configure-transport.php";
|
8 |
}
|
9 |
-
|
10 |
class mail_bank_register_transport {
|
11 |
-
|
12 |
public static $transport;
|
13 |
-
|
14 |
public function listing_transport_mail_bank($instance) {
|
15 |
self::$transport = $instance;
|
16 |
}
|
17 |
-
|
18 |
// This function is used to get the transport
|
19 |
public function retrieve_mailertype_mail_bank() {
|
20 |
return self::$transport;
|
21 |
}
|
22 |
-
|
23 |
-
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
5 |
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-configure-transport.php")) {
|
6 |
require_once MAIL_BANK_DIR_PATH . "includes/mail-bank-configure-transport.php";
|
7 |
}
|
|
|
8 |
class mail_bank_register_transport {
|
|
|
9 |
public static $transport;
|
|
|
10 |
public function listing_transport_mail_bank($instance) {
|
11 |
self::$transport = $instance;
|
12 |
}
|
|
|
13 |
// This function is used to get the transport
|
14 |
public function retrieve_mailertype_mail_bank() {
|
15 |
return self::$transport;
|
16 |
}
|
17 |
+
}
|
|
includes/mail-bank-send-mail.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
@@ -19,140 +18,130 @@ if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.
|
|
19 |
if (!class_exists("mail_bank_send_mail")) {
|
20 |
|
21 |
class mail_bank_send_mail {
|
22 |
-
|
23 |
public
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
public function __construct() {
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
}
|
33 |
-
|
34 |
// This function is used to send the message and return the result.
|
35 |
public function send_email_message_mail_bank($to, $subject, $message, $headers = "", $attachments = array(), $email_configuration_settings) {
|
36 |
-
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
|
44 |
-
|
45 |
}
|
46 |
-
|
47 |
// This function is used to build a message based on the wordPress wp_mail parameters.
|
48 |
public function build_message_mail_bank($to, $subject, $message, $headers, $attachments) {
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
|
57 |
-
|
58 |
-
|
59 |
}
|
60 |
-
|
61 |
// This function is used to create the instance of mail_bank_manage_email.
|
62 |
public function create_message_mail_bank() {
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
}
|
69 |
-
|
70 |
// This function is used to get the options and token generated to send the message
|
71 |
public function get_message_content_mail_bank(mail_bank_manage_email $message, mail_bank_email_log $log, $email_configuration_settings) {
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
}
|
135 |
-
|
136 |
// This function is used to ensure the token is updated.
|
137 |
public function check_authtoken_mail_bank($transport, $authorization_token) {
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
}
|
145 |
-
|
146 |
// This function is used to set all the content into a message.
|
147 |
public function get_entire_message_content_mail_bank($message, $to, $subject, $body, $headers, $attachments) {
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
}
|
155 |
-
|
156 |
}
|
157 |
-
|
158 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
18 |
if (!class_exists("mail_bank_send_mail")) {
|
19 |
|
20 |
class mail_bank_send_mail {
|
|
|
21 |
public
|
22 |
+
$exception,
|
23 |
+
$configuration_settings,
|
24 |
+
$obj_mail_bank_register_transport;
|
|
|
25 |
public function __construct() {
|
26 |
+
$obj_mb_config_provider = new mail_bank_configuration_provider();
|
27 |
+
$this->obj_mail_bank_register_transport = new mail_bank_register_transport();
|
28 |
+
$this->configuration_settings = $obj_mb_config_provider->get_configuration_settings();
|
29 |
}
|
|
|
30 |
// This function is used to send the message and return the result.
|
31 |
public function send_email_message_mail_bank($to, $subject, $message, $headers = "", $attachments = array(), $email_configuration_settings) {
|
32 |
+
$mail_bank_manage_email = $this->build_message_mail_bank($to, $subject, $message, $headers, $attachments);
|
33 |
|
34 |
+
$log = new mail_bank_email_log();
|
35 |
+
$log->email_to = $to;
|
36 |
+
$log->email_subject = $subject;
|
37 |
+
$log->email_message = $message;
|
38 |
+
$log->email_headers = $headers;
|
39 |
|
40 |
+
return $this->get_message_content_mail_bank($mail_bank_manage_email, $log, $email_configuration_settings);
|
41 |
}
|
|
|
42 |
// This function is used to build a message based on the wordPress wp_mail parameters.
|
43 |
public function build_message_mail_bank($to, $subject, $message, $headers, $attachments) {
|
44 |
+
if (!is_array($attachments)) {
|
45 |
+
$attachments = explode("\n", str_replace("\r\n", "\n", $attachments));
|
46 |
+
}
|
47 |
|
48 |
+
// Creates the message
|
49 |
+
$mail_bank_manage_email = $this->create_message_mail_bank();
|
50 |
+
$this->get_entire_message_content_mail_bank($mail_bank_manage_email, $to, $subject, $message, $headers, $attachments);
|
51 |
|
52 |
+
// Return the message
|
53 |
+
return $mail_bank_manage_email;
|
54 |
}
|
|
|
55 |
// This function is used to create the instance of mail_bank_manage_email.
|
56 |
public function create_message_mail_bank() {
|
57 |
+
$message = new mail_bank_manage_email();
|
58 |
+
$transport = $this->obj_mail_bank_register_transport->retrieve_mailertype_mail_bank();
|
59 |
+
$message->mb_set_from($this->configuration_settings["email_address"], html_entity_decode($this->configuration_settings["sender_name"], ENT_QUOTES));
|
60 |
+
$message->mb_set_charset(get_bloginfo("charset"));
|
61 |
+
return $message;
|
62 |
}
|
|
|
63 |
// This function is used to get the options and token generated to send the message
|
64 |
public function get_message_content_mail_bank(mail_bank_manage_email $message, mail_bank_email_log $log, $email_configuration_settings) {
|
65 |
+
global $wpdb;
|
66 |
+
$mail_bank_settings_data = $wpdb->get_row
|
67 |
+
(
|
68 |
+
$wpdb->prepare
|
69 |
+
(
|
70 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
71 |
+
" WHERE meta_key = %s", "settings"
|
72 |
+
)
|
73 |
+
);
|
74 |
+
|
75 |
+
$settings_data = maybe_unserialize($mail_bank_settings_data->meta_value);
|
76 |
+
$ob_mb_config_provider = new mail_bank_configuration_provider();
|
77 |
+
$this->configuration_settings = $ob_mb_config_provider->get_configuration_settings();
|
78 |
+
$authorization_token = mail_bank_manage_token::get_instance();
|
79 |
+
|
80 |
+
$transport = $this->obj_mail_bank_register_transport->retrieve_mailertype_mail_bank();
|
81 |
+
$engine = $transport->initiate_mail_engine_mail_bank();
|
82 |
+
|
83 |
+
if ($message->check_email_body_parts_mail_bank()) {
|
84 |
+
$message->createBodyParts();
|
85 |
+
}
|
86 |
+
$obj_mail_bank_manage_email = new mail_bank_manage_email();
|
87 |
+
|
88 |
+
try {
|
89 |
+
$message->validate_email_contents_mail_bank($transport);
|
90 |
+
|
91 |
+
if ($this->configuration_settings["auth_type"] == "oauth2") {
|
92 |
+
$this->check_authtoken_mail_bank($transport, $authorization_token);
|
93 |
+
}
|
94 |
+
$engine->send_email_mail_bank($message);
|
95 |
+
|
96 |
+
// writes the log on success.
|
97 |
+
if ($engine->get_output_mail_bank() != "" && $settings_data["debug_mode"] == "enable") {
|
98 |
+
update_option("mail_bank_mail_status", $engine->get_output_mail_bank());
|
99 |
+
} else {
|
100 |
+
update_option("mail_bank_mail_status", true);
|
101 |
+
}
|
102 |
+
$obj_mb_log_writter = new mail_bank_email_log_writter();
|
103 |
+
update_option("mail_bank_is_mail_sent", "Sent");
|
104 |
+
if ($settings_data["monitor_email_logs"] == "enable") {
|
105 |
+
$obj_mb_log_writter->mb_success_log($log, $message, $settings_data["debug_mode"], $email_configuration_settings, $obj_mail_bank_manage_email);
|
106 |
+
}
|
107 |
+
return true;
|
108 |
+
} catch (Exception $e) {
|
109 |
+
$this->exception = $e;
|
110 |
+
// Writes the log on failure
|
111 |
+
if ($e->getCode() == 334 && $settings_data["debug_mode"] == "enable") {
|
112 |
+
update_option("mail_bank_mail_status", $e->getMessage());
|
113 |
+
} elseif ($engine->get_output_mail_bank() != "" && $settings_data["debug_mode"] == "enable") {
|
114 |
+
update_option("mail_bank_mail_status", $engine->get_output_mail_bank());
|
115 |
+
} elseif ($engine->get_output_mail_bank() == "" && $settings_data["debug_mode"] == "enable") {
|
116 |
+
update_option("mail_bank_mail_status", $e->getMessage());
|
117 |
+
} else {
|
118 |
+
update_option("mail_bank_mail_status", false);
|
119 |
+
}
|
120 |
+
$obj_mb_log_writter = new mail_bank_email_log_writter();
|
121 |
+
update_option("mail_bank_is_mail_sent", "Not Sent");
|
122 |
+
if ($settings_data["monitor_email_logs"] == "enable") {
|
123 |
+
$obj_mb_log_writter->mb_failure_log($log, $message, $settings_data["debug_mode"], $email_configuration_settings, $obj_mail_bank_manage_email);
|
124 |
+
}
|
125 |
+
return false;
|
126 |
+
}
|
127 |
}
|
|
|
128 |
// This function is used to ensure the token is updated.
|
129 |
public function check_authtoken_mail_bank($transport, $authorization_token) {
|
130 |
+
$authentication_manager = new authentication_manager_mail_bank();
|
131 |
+
$obj_authentication_manager_mail_bank = $authentication_manager->create_authentication_manager();
|
132 |
+
if ($obj_authentication_manager_mail_bank->check_access_token()) {
|
133 |
+
$obj_authentication_manager_mail_bank->get_refresh_token();
|
134 |
+
$authorization_token->save_token_mail_bank();
|
135 |
+
}
|
136 |
}
|
|
|
137 |
// This function is used to set all the content into a message.
|
138 |
public function get_entire_message_content_mail_bank($message, $to, $subject, $body, $headers, $attachments) {
|
139 |
+
$message->mb_add_headers($headers);
|
140 |
+
$message->mb_set_body($body);
|
141 |
+
$message->mb_set_subject($subject);
|
142 |
+
$message->mb_addto($to);
|
143 |
+
$message->mb_set_attachments($attachments);
|
144 |
+
return $message;
|
145 |
}
|
|
|
146 |
}
|
|
|
147 |
}
|
includes/mail-bank-smtp-transport.php
CHANGED
@@ -1,33 +1,26 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
6 |
-
|
7 |
class mail_bank_smtp_transport {
|
8 |
-
|
9 |
public $configuration_settings;
|
10 |
-
|
11 |
public function __construct() {
|
12 |
$obj_mb_config_provider = new mail_bank_configuration_provider();
|
13 |
$this->configuration_settings = $obj_mb_config_provider->get_configuration_settings();
|
14 |
}
|
15 |
-
|
16 |
// This function is used to create mail engine for sending emails.
|
17 |
public function initiate_mail_engine_mail_bank() {
|
18 |
require_once "mail-bank-zend-engine.php";
|
19 |
return new mail_bank_zend_engine($this);
|
20 |
}
|
21 |
-
|
22 |
// This function is used to create zend mail transport.
|
23 |
public function initiate_zendmail_transport_mail_bank($fake_hostname, $fake_config) {
|
24 |
$obj_mb_configure_transport = new mail_bank_configure_transport();
|
25 |
if ($this->configuration_settings["auth_type"] == "oauth2") {
|
26 |
-
|
27 |
} else {
|
28 |
-
|
29 |
}
|
30 |
return new mail_bank_Zend_Mail_Transport_Smtp($this->configuration_settings["hostname"], $config);
|
31 |
}
|
32 |
-
|
33 |
-
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
|
|
5 |
class mail_bank_smtp_transport {
|
|
|
6 |
public $configuration_settings;
|
|
|
7 |
public function __construct() {
|
8 |
$obj_mb_config_provider = new mail_bank_configuration_provider();
|
9 |
$this->configuration_settings = $obj_mb_config_provider->get_configuration_settings();
|
10 |
}
|
|
|
11 |
// This function is used to create mail engine for sending emails.
|
12 |
public function initiate_mail_engine_mail_bank() {
|
13 |
require_once "mail-bank-zend-engine.php";
|
14 |
return new mail_bank_zend_engine($this);
|
15 |
}
|
|
|
16 |
// This function is used to create zend mail transport.
|
17 |
public function initiate_zendmail_transport_mail_bank($fake_hostname, $fake_config) {
|
18 |
$obj_mb_configure_transport = new mail_bank_configure_transport();
|
19 |
if ($this->configuration_settings["auth_type"] == "oauth2") {
|
20 |
+
$config = $obj_mb_configure_transport->configure_oauth_transport();
|
21 |
} else {
|
22 |
+
$config = $obj_mb_configure_transport->configure_plain_transport();
|
23 |
}
|
24 |
return new mail_bank_Zend_Mail_Transport_Smtp($this->configuration_settings["hostname"], $config);
|
25 |
}
|
26 |
+
}
|
|
includes/mail-bank-zend-engine.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
@@ -82,167 +81,160 @@ if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-configuration-provider.
|
|
82 |
if (!class_exists("mail_bank_zend_engine")) {
|
83 |
|
84 |
class mail_bank_zend_engine {
|
85 |
-
|
86 |
public
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
function __construct($transport) {
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
}
|
96 |
-
|
97 |
// This Function is used to send Email.
|
98 |
public function send_email_mail_bank(mail_bank_manage_email $message) {
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
}
|
223 |
-
|
224 |
// This function is used to get the sender from mail_bank_manage_email and add it to the mail_bank_Zend_Mail object
|
225 |
public function get_sender_from_email_mail_bank($message, $mail) {
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
}
|
240 |
-
|
241 |
// This funtion is used to return SMTP session Transcript.
|
242 |
public function get_output_mail_bank() {
|
243 |
-
|
244 |
}
|
245 |
-
|
246 |
}
|
247 |
-
|
248 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
81 |
if (!class_exists("mail_bank_zend_engine")) {
|
82 |
|
83 |
class mail_bank_zend_engine {
|
|
|
84 |
public
|
85 |
+
$transcript,
|
86 |
+
$mail_bank_options,
|
87 |
+
$transport;
|
|
|
88 |
function __construct($transport) {
|
89 |
+
$this->transport = $transport;
|
90 |
+
$mb_config_provider_obj = new mail_bank_configuration_provider();
|
91 |
+
$this->mail_bank_options = $mb_config_provider_obj->get_configuration_settings();
|
92 |
}
|
|
|
93 |
// This Function is used to send Email.
|
94 |
public function send_email_mail_bank(mail_bank_manage_email $message) {
|
95 |
+
$envelope_from = new mail_bank_manage_email_address($this->mail_bank_options["email_address"]);
|
96 |
+
$envelope_from->validate_email_contents_mail_bank("Envelope From");
|
97 |
+
$charset = $message->mb_get_charset();
|
98 |
+
$mail = new mail_bank_Zend_Mail($charset);
|
99 |
+
|
100 |
+
// Add headers
|
101 |
+
foreach ((array) $message->mb_get_headers() as $header) {
|
102 |
+
$mail->addHeader($header["name"], $header["content"], true);
|
103 |
+
}
|
104 |
+
|
105 |
+
$content_type = $message->mb_get_content_type();
|
106 |
+
if (!empty($content_type)) {
|
107 |
+
$mail->addHeader("Content-Type", $content_type, false);
|
108 |
+
}
|
109 |
+
|
110 |
+
// Add the from header
|
111 |
+
$fromHeader = $this->get_sender_from_email_mail_bank($message, $mail);
|
112 |
+
$mail->addHeader("Sender", $this->mail_bank_options["email_address"], false);
|
113 |
+
|
114 |
+
// Add to recipients
|
115 |
+
foreach ((array) $message->mb_get_to_recipients() as $recipient) {
|
116 |
+
$mail->addTo($recipient->mb_get_email(), $recipient->mb_get_name());
|
117 |
+
}
|
118 |
+
|
119 |
+
// Add cc recipients
|
120 |
+
if ($this->mail_bank_options["cc"] == "") {
|
121 |
+
foreach ((array) $message->mb_get_cc_recipients() as $recipient) {
|
122 |
+
$mail->addCc($recipient->mb_get_email(), $recipient->mb_get_name());
|
123 |
+
}
|
124 |
+
} else {
|
125 |
+
$cc_address_array = explode(",", $this->mail_bank_options["cc"]);
|
126 |
+
foreach ($cc_address_array as $cc_address) {
|
127 |
+
$mail->addCc($cc_address);
|
128 |
+
}
|
129 |
+
}
|
130 |
+
|
131 |
+
|
132 |
+
// Add bcc recepients
|
133 |
+
if ($this->mail_bank_options["bcc"] == "") {
|
134 |
+
foreach ((array) $message->mb_get_bcc_recipients() as $recipient) {
|
135 |
+
$mail->addBcc($recipient->mb_get_email(), $recipient->mb_get_name());
|
136 |
+
}
|
137 |
+
} else {
|
138 |
+
$bcc_address_array = explode(",", $this->mail_bank_options["bcc"]);
|
139 |
+
foreach ($bcc_address_array as $bcc_address) {
|
140 |
+
$mail->addBcc($bcc_address);
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
// Add reply to
|
145 |
+
$reply_to = $message->mb_get_reply_to();
|
146 |
+
if ($this->mail_bank_options["reply_to"] != "") {
|
147 |
+
$mail->setReplyTo($this->mail_bank_options["reply_to"]);
|
148 |
+
} elseif (isset($reply_to)) {
|
149 |
+
$mail->setReplyTo($reply_to->mb_get_email());
|
150 |
+
}
|
151 |
+
|
152 |
+
// Add date
|
153 |
+
$date = $message->mb_get_date();
|
154 |
+
if (!empty($date)) {
|
155 |
+
$mail->setDate($date);
|
156 |
+
}
|
157 |
+
|
158 |
+
// Add message id
|
159 |
+
$message_id = $message->mb_get_message_id();
|
160 |
+
if (!empty($message_id)) {
|
161 |
+
$mail->setMessageId($message_id);
|
162 |
+
}
|
163 |
+
|
164 |
+
// Add subject of the email
|
165 |
+
if (null !== $message->mb_get_subject()) {
|
166 |
+
$mail->setSubject($message->mb_get_subject());
|
167 |
+
}
|
168 |
+
|
169 |
+
// Add message content of the email
|
170 |
+
//{
|
171 |
+
$text_part = $message->mb_get_body_textPart();
|
172 |
+
if (!empty($text_part)) {
|
173 |
+
$mail->setBodyText($text_part);
|
174 |
+
}
|
175 |
+
$html_part = $message->mb_get_body_html_part();
|
176 |
+
if (!empty($html_part)) {
|
177 |
+
$mail->setBodyHtml($html_part);
|
178 |
+
}
|
179 |
+
//}
|
180 |
+
// Add attachments to the email
|
181 |
+
$message->mb_add_attachments_to_mail($mail);
|
182 |
+
|
183 |
+
// Create the SMTP transport
|
184 |
+
$zend_transport = $this->transport->initiate_zendmail_transport_mail_bank($this->mail_bank_options["hostname"], array());
|
185 |
+
try {
|
186 |
+
// Send the message
|
187 |
+
$mail->send($zend_transport);
|
188 |
+
if ($zend_transport->getConnection() && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->getConnection()->getLog())) {
|
189 |
+
$this->transcript = $zend_transport->getConnection()->getLog();
|
190 |
+
} else if (method_exists($zend_transport, "get_output_mail_bank") && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->get_output_mail_bank())) {
|
191 |
+
// use the API response
|
192 |
+
$this->transcript = $zend_transport->get_output_mail_bank();
|
193 |
+
} else if (method_exists($zend_transport, "getMessage") && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->getMessage())) {
|
194 |
+
//use the raw message as the transcript
|
195 |
+
$this->transcript = $zend_transport->getMessage();
|
196 |
+
}
|
197 |
+
} catch (Exception $e) {
|
198 |
+
// In case of Error
|
199 |
+
if ($zend_transport->getConnection() && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->getConnection()->getLog())) {
|
200 |
+
$this->transcript = $zend_transport->getConnection()->getLog();
|
201 |
+
} else if (method_exists($zend_transport, "get_output_mail_bank") && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->get_output_mail_bank())) {
|
202 |
+
// Use API response
|
203 |
+
$this->transcript = $zend_transport->get_output_mail_bank();
|
204 |
+
} else if (method_exists($zend_transport, "getMessage") && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->getMessage())) {
|
205 |
+
// Use message as the transcript
|
206 |
+
$this->transcript = $zend_transport->getMessage();
|
207 |
+
}
|
208 |
+
|
209 |
+
// Get the current exception message
|
210 |
+
$message = $e->getMessage();
|
211 |
+
if ($e->getCode() == 334) {
|
212 |
+
$message = "From Email should be of same account used to create the Client Id.";
|
213 |
+
}
|
214 |
+
$exception = new Exception($message, $e->getCode());
|
215 |
+
// Throws the new exception
|
216 |
+
throw $exception;
|
217 |
+
}
|
218 |
}
|
|
|
219 |
// This function is used to get the sender from mail_bank_manage_email and add it to the mail_bank_Zend_Mail object
|
220 |
public function get_sender_from_email_mail_bank($message, $mail) {
|
221 |
+
$sender = $message->get_email_address_mail_bank();
|
222 |
+
$sender_email = $sender->mb_get_email();
|
223 |
+
$sender_name = $sender->mb_get_name();
|
224 |
+
if (($this->mail_bank_options["sender_name_configuration"] == "override") && ($this->mail_bank_options["from_email_configuration"] == "override")) {
|
225 |
+
$mail->setFrom($this->mail_bank_options["sender_email"], html_entity_decode($this->mail_bank_options["sender_name"], ENT_QUOTES));
|
226 |
+
} elseif (($this->mail_bank_options["sender_name_configuration"] == "dont_override") && ($this->mail_bank_options["from_email_configuration"] == "dont_override")) {
|
227 |
+
$mail->setFrom($sender_email, $sender_name);
|
228 |
+
} elseif (($this->mail_bank_options["sender_name_configuration"] == "override") && ($this->mail_bank_options["from_email_configuration"] == "dont_override")) {
|
229 |
+
$mail->setFrom($sender_email, html_entity_decode($this->mail_bank_options["sender_name"], ENT_QUOTES));
|
230 |
+
} else {
|
231 |
+
$mail->setFrom($this->mail_bank_options["sender_email"], $sender_name);
|
232 |
+
}
|
233 |
+
return $sender;
|
234 |
}
|
|
|
235 |
// This funtion is used to return SMTP session Transcript.
|
236 |
public function get_output_mail_bank() {
|
237 |
+
return $this->transcript;
|
238 |
}
|
|
|
239 |
}
|
|
|
240 |
}
|
includes/mail-bank-zend-mail-helper.php
CHANGED
@@ -1,66 +1,57 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
6 |
if (!class_exists("mail_bank_zend_mail_helper")) {
|
7 |
|
8 |
class mail_bank_zend_mail_helper {
|
9 |
-
|
10 |
public static $validate_email;
|
11 |
-
|
12 |
public static function email_domains_mail_bank($hostname, $needle) {
|
13 |
-
|
14 |
-
|
15 |
}
|
16 |
-
|
17 |
// This function is used to make the outgoing Http requests.
|
18 |
public static function retrieve_body_from_response_mail_bank($url, $parameters, array $headers = array()) {
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
}
|
26 |
-
|
27 |
// This function is used to make outgoing Http requests.
|
28 |
public static function post_request_mail_bank($url, $parameters = array(), array $headers = array()) {
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
}
|
42 |
-
|
43 |
// This function is used for basic field validation.
|
44 |
public static function check_field_mail_bank($text) {
|
45 |
-
|
46 |
}
|
47 |
-
|
48 |
// This function is used to validate an email-address.
|
49 |
public static function email_validation_mail_bank($email) {
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
}
|
63 |
-
|
64 |
}
|
65 |
-
|
66 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
5 |
if (!class_exists("mail_bank_zend_mail_helper")) {
|
6 |
|
7 |
class mail_bank_zend_mail_helper {
|
|
|
8 |
public static $validate_email;
|
|
|
9 |
public static function email_domains_mail_bank($hostname, $needle) {
|
10 |
+
$length = strlen($needle);
|
11 |
+
return(substr($hostname, - $length) === $needle);
|
12 |
}
|
|
|
13 |
// This function is used to make the outgoing Http requests.
|
14 |
public static function retrieve_body_from_response_mail_bank($url, $parameters, array $headers = array()) {
|
15 |
+
$response = mail_bank_zend_mail_helper::post_request_mail_bank($url, $parameters, $headers);
|
16 |
+
if (isset($response["error"])) {
|
17 |
+
return json_encode($response);
|
18 |
+
}
|
19 |
+
$body = wp_remote_retrieve_body($response);
|
20 |
+
return $body;
|
21 |
}
|
|
|
22 |
// This function is used to make outgoing Http requests.
|
23 |
public static function post_request_mail_bank($url, $parameters = array(), array $headers = array()) {
|
24 |
+
$args = array(
|
25 |
+
"timeout" => "10000",
|
26 |
+
"headers" => $headers,
|
27 |
+
"body" => $parameters
|
28 |
+
);
|
29 |
+
$response = wp_remote_post($url, $args);
|
30 |
+
|
31 |
+
if (is_wp_error($response)) {
|
32 |
+
return array("error" => "An error occured", "error_description" => $response->get_error_message());
|
33 |
+
} else {
|
34 |
+
return $response;
|
35 |
+
}
|
36 |
}
|
|
|
37 |
// This function is used for basic field validation.
|
38 |
public static function check_field_mail_bank($text) {
|
39 |
+
return(!isset($text) || trim($text) === "");
|
40 |
}
|
|
|
41 |
// This function is used to validate an email-address.
|
42 |
public static function email_validation_mail_bank($email) {
|
43 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/exception.php";
|
44 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/registry.php";
|
45 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/exception.php";
|
46 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/interface.php";
|
47 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/abstract.php";
|
48 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/ip.php";
|
49 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/hostname.php";
|
50 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/emailaddress.php";
|
51 |
+
if (!isset(mail_bank_zend_mail_helper::$validate_email)) {
|
52 |
+
mail_bank_zend_mail_helper::$validate_email = new mail_bank_Zend_Validate_EmailAddress();
|
53 |
+
}
|
54 |
+
return mail_bank_zend_mail_helper::$validate_email->isValid($email);
|
55 |
}
|
|
|
56 |
}
|
|
|
57 |
}
|
includes/mailer.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* This file is used for authenticating and sending Emails.
|
5 |
*
|
@@ -13,7 +12,6 @@ if (!defined("ABSPATH")) {
|
|
13 |
if (!class_exists("mail_bank_auth_host")) {
|
14 |
|
15 |
class mail_bank_auth_host {
|
16 |
-
|
17 |
public $from_name;
|
18 |
public $smtp_host;
|
19 |
public $smtp_port;
|
@@ -23,77 +21,75 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
23 |
public $api_key;
|
24 |
public $authorization_token;
|
25 |
public $oauth_domains = array(
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
);
|
55 |
public $yahoo_domains = array(
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
);
|
81 |
-
|
82 |
public function __construct($settings_array) {
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
}
|
96 |
-
|
97 |
/*
|
98 |
Function Name: send_test_mail_bank
|
99 |
Parameters: Yes($to,$subject,$message,$headers,$attachments,$email_configuration_settings)
|
@@ -101,29 +97,27 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
101 |
Created On: 15-06-2016 10:43
|
102 |
Created By: Tech Banker Team
|
103 |
*/
|
104 |
-
|
105 |
public function send_test_mail_bank($to, $subject, $message, $headers = "", $attachments = "", $email_configuration_settings) {
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
}
|
126 |
-
|
127 |
/*
|
128 |
Function Name: microsoft_authentication
|
129 |
Parameters: No
|
@@ -131,19 +125,17 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
131 |
Created On: 15-06-2016 10:43
|
132 |
Created By: Tech Banker Team
|
133 |
*/
|
134 |
-
|
135 |
public function microsoft_authentication() {
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
|
144 |
-
|
145 |
}
|
146 |
-
|
147 |
/*
|
148 |
Function Name: google_authentication
|
149 |
Parameters: No
|
@@ -151,19 +143,17 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
151 |
Created On: 15-06-2016 10:43
|
152 |
Created By: Tech Banker Team
|
153 |
*/
|
154 |
-
|
155 |
public function google_authentication() {
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
|
164 |
-
|
165 |
}
|
166 |
-
|
167 |
/*
|
168 |
Function Name: microsoft_authentication_token
|
169 |
Parameters: Yes($code)
|
@@ -171,26 +161,24 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
171 |
Created On: 15-06-2016 10:43
|
172 |
Created By: Tech Banker Team
|
173 |
*/
|
174 |
-
|
175 |
public function microsoft_authentication_token($code) {
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
}
|
193 |
-
|
194 |
/*
|
195 |
Function Name: google_authentication_token
|
196 |
Parameters: Yes($code)
|
@@ -198,27 +186,25 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
198 |
Created On: 15-06-2016 10:43
|
199 |
Created By: Tech Banker Team
|
200 |
*/
|
201 |
-
|
202 |
public function google_authentication_token($code) {
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
|
219 |
-
|
220 |
}
|
221 |
-
|
222 |
/*
|
223 |
Function Name: yahoo_authentication
|
224 |
Parameters: No
|
@@ -226,22 +212,20 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
226 |
Created On: 15-06-2016 10:43
|
227 |
Created By: Tech Banker Team
|
228 |
*/
|
229 |
-
|
230 |
public function yahoo_authentication() {
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
|
241 |
-
|
242 |
-
|
243 |
}
|
244 |
-
|
245 |
/*
|
246 |
Function Name: yahoo_authentication_token
|
247 |
Parameters: Yes($code)
|
@@ -249,26 +233,24 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
249 |
Created On: 15-06-2016 10:43
|
250 |
Created By: Tech Banker Team
|
251 |
*/
|
252 |
-
|
253 |
public function yahoo_authentication_token($code) {
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
}
|
271 |
-
|
272 |
/*
|
273 |
Function Name: override_wp_mail_function
|
274 |
Parameters: No
|
@@ -276,44 +258,40 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
276 |
Created On: 15-06-2016 10:43
|
277 |
Created By: Tech Banker Team
|
278 |
*/
|
279 |
-
|
280 |
public static function override_wp_mail_function() {
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
WHERE meta_key = %s", "email_configuration"
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
function wp_mail($to, $subject, $message, $headers = "", $attachments = "") {
|
297 |
-
global $wpdb;
|
298 |
-
$email_configuration_data_array = $wpdb->get_var
|
299 |
-
(
|
300 |
-
$wpdb->prepare
|
301 |
-
(
|
302 |
-
"SELECT meta_value FROM " . mail_bank_meta() .
|
303 |
-
" WHERE meta_key=%s", "email_configuration"
|
304 |
-
)
|
305 |
-
);
|
306 |
-
$email_configuration_settings = maybe_unserialize($email_configuration_data_array);
|
307 |
-
$obj_send_test_mail = new mail_bank_auth_host($email_configuration_settings);
|
308 |
-
$result = $obj_send_test_mail->send_test_mail_bank($to, $subject, $message, $headers, $attachments, $email_configuration_settings);
|
309 |
-
return $result;
|
310 |
-
}
|
311 |
|
312 |
-
|
313 |
-
|
314 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
}
|
316 |
-
|
317 |
}
|
318 |
-
|
319 |
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* This file is used for authenticating and sending Emails.
|
4 |
*
|
12 |
if (!class_exists("mail_bank_auth_host")) {
|
13 |
|
14 |
class mail_bank_auth_host {
|
|
|
15 |
public $from_name;
|
16 |
public $smtp_host;
|
17 |
public $smtp_port;
|
21 |
public $api_key;
|
22 |
public $authorization_token;
|
23 |
public $oauth_domains = array(
|
24 |
+
"hotmail.com" => "smtp.live.com",
|
25 |
+
"outlook.com" => "smtp.live.com",
|
26 |
+
"yahoo.ca" => "smtp.mail.yahoo.ca",
|
27 |
+
"yahoo.co.id" => "smtp.mail.yahoo.co.id",
|
28 |
+
"yahoo.co.in" => "smtp.mail.yahoo.co.in",
|
29 |
+
"yahoo.co.kr" => "smtp.mail.yahoo.com",
|
30 |
+
"yahoo.com" => "smtp.mail.yahoo.com",
|
31 |
+
"ymail.com" => "smtp.mail.yahoo.com",
|
32 |
+
"yahoo.com.ar" => "smtp.mail.yahoo.com.ar",
|
33 |
+
"yahoo.com.au" => "smtp.mail.yahoo.com.au",
|
34 |
+
"yahoo.com.br" => "smtp.mail.yahoo.com.br",
|
35 |
+
"yahoo.com.cn" => "smtp.mail.yahoo.com.cn",
|
36 |
+
"yahoo.com.hk" => "smtp.mail.yahoo.com.hk",
|
37 |
+
"yahoo.com.mx" => "smtp.mail.yahoo.com",
|
38 |
+
"yahoo.com.my" => "smtp.mail.yahoo.com.my",
|
39 |
+
"yahoo.com.ph" => "smtp.mail.yahoo.com.ph",
|
40 |
+
"yahoo.com.sg" => "smtp.mail.yahoo.com.sg",
|
41 |
+
"yahoo.com.tw" => "smtp.mail.yahoo.com.tw",
|
42 |
+
"yahoo.com.vn" => "smtp.mail.yahoo.com.vn",
|
43 |
+
"yahoo.co.nz" => "smtp.mail.yahoo.com.au",
|
44 |
+
"yahoo.co.th" => "smtp.mail.yahoo.co.th",
|
45 |
+
"yahoo.co.uk" => "smtp.mail.yahoo.co.uk",
|
46 |
+
"yahoo.de" => "smtp.mail.yahoo.de",
|
47 |
+
"yahoo.es" => "smtp.correo.yahoo.es",
|
48 |
+
"yahoo.fr" => "smtp.mail.yahoo.fr",
|
49 |
+
"yahoo.ie" => "smtp.mail.yahoo.co.uk",
|
50 |
+
"yahoo.it" => "smtp.mail.yahoo.it",
|
51 |
+
"gmail.com" => "smtp.gmail.com",
|
52 |
);
|
53 |
public $yahoo_domains = array(
|
54 |
+
"smtp.mail.yahoo.ca",
|
55 |
+
"smtp.mail.yahoo.co.id",
|
56 |
+
"smtp.mail.yahoo.co.in",
|
57 |
+
"smtp.mail.yahoo.com",
|
58 |
+
"smtp.mail.yahoo.com",
|
59 |
+
"smtp.mail.yahoo.com.ar",
|
60 |
+
"smtp.mail.yahoo.com.au",
|
61 |
+
"smtp.mail.yahoo.com.br",
|
62 |
+
"smtp.mail.yahoo.com.cn",
|
63 |
+
"smtp.mail.yahoo.com.hk",
|
64 |
+
"smtp.mail.yahoo.com",
|
65 |
+
"smtp.mail.yahoo.com.my",
|
66 |
+
"smtp.mail.yahoo.com.ph",
|
67 |
+
"smtp.mail.yahoo.com.sg",
|
68 |
+
"smtp.mail.yahoo.com.tw",
|
69 |
+
"smtp.mail.yahoo.com.vn",
|
70 |
+
"smtp.mail.yahoo.com.au",
|
71 |
+
"smtp.mail.yahoo.co.th",
|
72 |
+
"smtp.mail.yahoo.co.uk",
|
73 |
+
"smtp.mail.yahoo.de",
|
74 |
+
"smtp.correo.yahoo.es",
|
75 |
+
"smtp.mail.yahoo.fr",
|
76 |
+
"smtp.mail.yahoo.co.uk",
|
77 |
+
"smtp.mail.yahoo.it"
|
78 |
);
|
|
|
79 |
public function __construct($settings_array) {
|
80 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-token.php")) {
|
81 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-token.php";
|
82 |
+
}
|
83 |
+
$this->authorization_token = mail_bank_manage_token::get_instance();
|
84 |
+
$this->from_name = $settings_array["sender_name"];
|
85 |
+
$this->from_email = $settings_array["sender_email"];
|
86 |
+
$this->smtp_host = $settings_array["hostname"];
|
87 |
+
$this->smtp_port = $settings_array["port"];
|
88 |
+
$this->client_id = $settings_array["client_id"];
|
89 |
+
$this->client_secret = $settings_array["client_secret"];
|
90 |
+
$this->redirect_uri = $settings_array["redirect_uri"];
|
91 |
+
$this->sender_email = $settings_array["email_address"];
|
92 |
}
|
|
|
93 |
/*
|
94 |
Function Name: send_test_mail_bank
|
95 |
Parameters: Yes($to,$subject,$message,$headers,$attachments,$email_configuration_settings)
|
97 |
Created On: 15-06-2016 10:43
|
98 |
Created By: Tech Banker Team
|
99 |
*/
|
|
|
100 |
public function send_test_mail_bank($to, $subject, $message, $headers = "", $attachments = "", $email_configuration_settings) {
|
101 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-send-mail.php")) {
|
102 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-send-mail.php";
|
103 |
+
}
|
104 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-token.php")) {
|
105 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-token.php";
|
106 |
+
}
|
107 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php")) {
|
108 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php";
|
109 |
+
}
|
110 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-smtp-transport.php")) {
|
111 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-smtp-transport.php";
|
112 |
+
}
|
113 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-register-transport.php")) {
|
114 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-register-transport.php";
|
115 |
+
}
|
116 |
+
$obj_transport_registry = new mail_bank_register_transport();
|
117 |
+
$obj_transport_registry->listing_transport_mail_bank(new mail_bank_smtp_transport($email_configuration_settings));
|
118 |
+
$obj_wp_mail = new mail_bank_send_mail();
|
119 |
+
return $obj_wp_mail->send_email_message_mail_bank($to, $subject, $message, $headers, $attachments, $email_configuration_settings);
|
120 |
}
|
|
|
121 |
/*
|
122 |
Function Name: microsoft_authentication
|
123 |
Parameters: No
|
125 |
Created On: 15-06-2016 10:43
|
126 |
Created By: Tech Banker Team
|
127 |
*/
|
|
|
128 |
public function microsoft_authentication() {
|
129 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/microsoft-authentication-mail-bank.php")) {
|
130 |
+
include_once MAIL_BANK_DIR_PATH . "includes/microsoft-authentication-mail-bank.php";
|
131 |
+
}
|
132 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
133 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
134 |
+
}
|
135 |
+
$obj_microsoft_authentication_mail_bank = new microsoft_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri);
|
136 |
|
137 |
+
$obj_microsoft_authentication_mail_bank->get_token_code(md5(rand()));
|
138 |
}
|
|
|
139 |
/*
|
140 |
Function Name: google_authentication
|
141 |
Parameters: No
|
143 |
Created On: 15-06-2016 10:43
|
144 |
Created By: Tech Banker Team
|
145 |
*/
|
|
|
146 |
public function google_authentication() {
|
147 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/google-authentication-mail-bank.php")) {
|
148 |
+
include_once MAIL_BANK_DIR_PATH . "includes/google-authentication-mail-bank.php";
|
149 |
+
}
|
150 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
151 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
152 |
+
}
|
153 |
+
$obj_google_authentication_mail_bank = new google_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri, $this->sender_email);
|
154 |
|
155 |
+
$obj_google_authentication_mail_bank->get_token_code(md5(rand()));
|
156 |
}
|
|
|
157 |
/*
|
158 |
Function Name: microsoft_authentication_token
|
159 |
Parameters: Yes($code)
|
161 |
Created On: 15-06-2016 10:43
|
162 |
Created By: Tech Banker Team
|
163 |
*/
|
|
|
164 |
public function microsoft_authentication_token($code) {
|
165 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php")) {
|
166 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php";
|
167 |
+
}
|
168 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/microsoft-authentication-mail-bank.php")) {
|
169 |
+
include_once MAIL_BANK_DIR_PATH . "includes/microsoft-authentication-mail-bank.php";
|
170 |
+
}
|
171 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
172 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
173 |
+
}
|
174 |
+
$obj_microsoft_authentication_mail_bank = new microsoft_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri);
|
175 |
|
176 |
+
$test_error = $obj_microsoft_authentication_mail_bank->process_token_Code(md5(rand()));
|
177 |
+
if (isset($test_error->error)) {
|
178 |
+
return $test_error;
|
179 |
+
}
|
180 |
+
$this->authorization_token->save_token_mail_bank();
|
181 |
}
|
|
|
182 |
/*
|
183 |
Function Name: google_authentication_token
|
184 |
Parameters: Yes($code)
|
186 |
Created On: 15-06-2016 10:43
|
187 |
Created By: Tech Banker Team
|
188 |
*/
|
|
|
189 |
public function google_authentication_token($code) {
|
190 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php")) {
|
191 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php";
|
192 |
+
}
|
193 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/google-authentication-mail-bank.php")) {
|
194 |
+
include_once MAIL_BANK_DIR_PATH . "includes/google-authentication-mail-bank.php";
|
195 |
+
}
|
196 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
197 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
198 |
+
}
|
199 |
+
$obj_google_authentication_mail_bank = new google_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri, $this->sender_email);
|
200 |
|
201 |
+
$test_error1 = $obj_google_authentication_mail_bank->process_token_Code(md5(rand()));
|
202 |
+
if (isset($test_error1->error)) {
|
203 |
+
return $test_error1;
|
204 |
+
}
|
205 |
|
206 |
+
$this->authorization_token->save_token_mail_bank();
|
207 |
}
|
|
|
208 |
/*
|
209 |
Function Name: yahoo_authentication
|
210 |
Parameters: No
|
212 |
Created On: 15-06-2016 10:43
|
213 |
Created By: Tech Banker Team
|
214 |
*/
|
|
|
215 |
public function yahoo_authentication() {
|
216 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php")) {
|
217 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php";
|
218 |
+
}
|
219 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/yahoo-authentication-mail-bank.php")) {
|
220 |
+
include_once MAIL_BANK_DIR_PATH . "includes/yahoo-authentication-mail-bank.php";
|
221 |
+
}
|
222 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
223 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
224 |
+
}
|
225 |
|
226 |
+
$obj_yahoo_authentication_mail_bank = new yahoo_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri);
|
227 |
+
$obj_yahoo_authentication_mail_bank->get_token_code(md5(rand()));
|
228 |
}
|
|
|
229 |
/*
|
230 |
Function Name: yahoo_authentication_token
|
231 |
Parameters: Yes($code)
|
233 |
Created On: 15-06-2016 10:43
|
234 |
Created By: Tech Banker Team
|
235 |
*/
|
|
|
236 |
public function yahoo_authentication_token($code) {
|
237 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php")) {
|
238 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php";
|
239 |
+
}
|
240 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/yahoo-authentication-mail-bank.php")) {
|
241 |
+
include_once MAIL_BANK_DIR_PATH . "includes/yahoo-authentication-mail-bank.php";
|
242 |
+
}
|
243 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
244 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
245 |
+
}
|
246 |
+
$obj_yahoo_authentication_mail_bank = new yahoo_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri, $this->sender_email);
|
247 |
|
248 |
+
$test_error1 = $obj_yahoo_authentication_mail_bank->process_token_Code(md5(rand()));
|
249 |
+
if (isset($test_error1->error)) {
|
250 |
+
return $test_error1;
|
251 |
+
}
|
252 |
+
$this->authorization_token->save_token_mail_bank();
|
253 |
}
|
|
|
254 |
/*
|
255 |
Function Name: override_wp_mail_function
|
256 |
Parameters: No
|
258 |
Created On: 15-06-2016 10:43
|
259 |
Created By: Tech Banker Team
|
260 |
*/
|
|
|
261 |
public static function override_wp_mail_function() {
|
262 |
+
global $wpdb;
|
263 |
+
$mail_bank_version_number = get_option("mail-bank-version-number");
|
264 |
+
if ($mail_bank_version_number != "") {
|
265 |
+
$email_configuration_data = $wpdb->get_var
|
266 |
+
(
|
267 |
+
$wpdb->prepare
|
268 |
+
(
|
269 |
+
"SELECT meta_value FROM " . mail_bank_meta() . "
|
270 |
WHERE meta_key = %s", "email_configuration"
|
271 |
+
)
|
272 |
+
);
|
273 |
+
$email_configuration_data_array = maybe_unserialize($email_configuration_data);
|
274 |
+
if ($email_configuration_data_array["mailer_type"] == "smtp") {
|
275 |
+
if (!function_exists("wp_mail")) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
276 |
|
277 |
+
function wp_mail($to, $subject, $message, $headers = "", $attachments = "") {
|
278 |
+
global $wpdb;
|
279 |
+
$email_configuration_data_array = $wpdb->get_var
|
280 |
+
(
|
281 |
+
$wpdb->prepare
|
282 |
+
(
|
283 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
284 |
+
" WHERE meta_key=%s", "email_configuration"
|
285 |
+
)
|
286 |
+
);
|
287 |
+
$email_configuration_settings = maybe_unserialize($email_configuration_data_array);
|
288 |
+
$obj_send_test_mail = new mail_bank_auth_host($email_configuration_settings);
|
289 |
+
$result = $obj_send_test_mail->send_test_mail_bank($to, $subject, $message, $headers, $attachments, $email_configuration_settings);
|
290 |
+
return $result;
|
291 |
+
}
|
292 |
+
}
|
293 |
+
}
|
294 |
+
}
|
295 |
}
|
|
|
296 |
}
|
|
|
297 |
}
|
includes/microsoft-authentication-mail-bank.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
@@ -10,61 +9,55 @@ if (file_exists(MAIL_BANK_DIR_PATH . "includes/token-manager-mail-bank.php")) {
|
|
10 |
if (!class_exists("microsoft_authentication_mail_bank")) {
|
11 |
|
12 |
class microsoft_authentication_mail_bank extends token_manager_mail_bank {
|
13 |
-
|
14 |
public
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
//Constructor
|
21 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
}
|
28 |
-
|
29 |
// This function return the verification code after successfull authentication
|
30 |
public function get_token_code($transactionId) {
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
}
|
43 |
-
|
44 |
// This function proccess the grant code
|
45 |
public function process_token_Code($transactionId) {
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
}
|
67 |
-
|
68 |
}
|
69 |
-
|
70 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
9 |
if (!class_exists("microsoft_authentication_mail_bank")) {
|
10 |
|
11 |
class microsoft_authentication_mail_bank extends token_manager_mail_bank {
|
|
|
12 |
public
|
13 |
+
$client_id,
|
14 |
+
$client_secret,
|
15 |
+
$callback_uri,
|
16 |
+
$token_url;
|
|
|
17 |
//Constructor
|
18 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
19 |
+
$this->client_id = $client_id;
|
20 |
+
$this->client_secret = $client_secret;
|
21 |
+
$this->callback_uri = $callback_uri;
|
22 |
+
$this->token_url = "https://login.live.com/oauth20_token.srf";
|
23 |
+
parent::__construct($client_id, $client_secret, $authorization_token, $callback_uri);
|
24 |
}
|
|
|
25 |
// This function return the verification code after successfull authentication
|
26 |
public function get_token_code($transactionId) {
|
27 |
+
$configurations = array(
|
28 |
+
"response_type" => "code",
|
29 |
+
"redirect_uri" => urlencode($this->callback_uri),
|
30 |
+
"client_id" => $this->client_id,
|
31 |
+
"client_secret" => $this->client_secret,
|
32 |
+
"scope" => urlencode("wl.imap,wl.offline_access"),
|
33 |
+
"access_type" => "offline",
|
34 |
+
"approval_prompt" => "force"
|
35 |
+
);
|
36 |
+
$oauth_url = "https://login.live.com/oauth20_authorize.srf?" . build_query($configurations);
|
37 |
+
echo $oauth_url;
|
38 |
}
|
|
|
39 |
// This function proccess the grant code
|
40 |
public function process_token_Code($transactionId) {
|
41 |
+
if (isset($_REQUEST["access_token"])) {
|
42 |
+
$code = esc_attr($_REQUEST["access_token"]);
|
43 |
+
$configurations = array(
|
44 |
+
"client_id" => $this->client_id,
|
45 |
+
"client_secret" => $this->client_secret,
|
46 |
+
"grant_type" => "authorization_code",
|
47 |
+
"redirect_uri" => $this->callback_uri,
|
48 |
+
"code" => $code
|
49 |
+
);
|
50 |
+
$response = mail_bank_zend_mail_helper::retrieve_body_from_response_mail_bank($this->token_url, $configurations);
|
51 |
+
$microsoft_secret_key = $this->process_response($response);
|
52 |
+
if (isset($microsoft_secret_key->error)) {
|
53 |
+
return $microsoft_secret_key;
|
54 |
+
} else {
|
55 |
+
$this->get_authorization_token()->set_vendorname_mail_bank("microsoft");
|
56 |
+
return "1";
|
57 |
+
}
|
58 |
+
} else {
|
59 |
+
return false;
|
60 |
+
}
|
61 |
}
|
|
|
62 |
}
|
|
|
63 |
}
|
includes/queries.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* This file is used for fetching data from database.
|
5 |
*
|
@@ -16,116 +15,113 @@ if (!is_user_logged_in()) {
|
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
-
|
20 |
-
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
24 |
return;
|
25 |
} else {
|
26 |
-
|
27 |
function get_mail_bank_log_data_maybe_unserialize($data, $start_date, $end_date) {
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
}
|
38 |
-
|
39 |
function get_mail_bank_meta_value($meta_key) {
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
}
|
51 |
-
|
52 |
if (isset($_GET["page"])) {
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
WHERE meta_key = %s ORDER BY id DESC", "email_logs"
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
|
85 |
-
|
86 |
|
87 |
|
88 |
-
|
89 |
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
}
|
130 |
}
|
131 |
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* This file is used for fetching data from database.
|
4 |
*
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
23 |
return;
|
24 |
} else {
|
|
|
25 |
function get_mail_bank_log_data_maybe_unserialize($data, $start_date, $end_date) {
|
26 |
+
$array_details = array();
|
27 |
+
foreach ($data as $raw_row) {
|
28 |
+
$unserialize_data = maybe_unserialize($raw_row->meta_value);
|
29 |
+
$unserialize_data["id"] = $raw_row->id;
|
30 |
+
$unserialize_data["meta_id"] = $raw_row->meta_id;
|
31 |
+
if ($unserialize_data["timestamp"] >= $start_date && $unserialize_data["timestamp"] <= $end_date)
|
32 |
+
array_push($array_details, $unserialize_data);
|
33 |
+
}
|
34 |
+
return $array_details;
|
35 |
}
|
|
|
36 |
function get_mail_bank_meta_value($meta_key) {
|
37 |
+
global $wpdb;
|
38 |
+
$meta_value = $wpdb->get_var
|
39 |
+
(
|
40 |
+
$wpdb->prepare
|
41 |
+
(
|
42 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
43 |
+
" WHERE meta_key=%s", $meta_key
|
44 |
+
)
|
45 |
+
);
|
46 |
+
return maybe_unserialize($meta_value);
|
47 |
}
|
|
|
48 |
if (isset($_GET["page"])) {
|
49 |
+
switch (esc_attr($_GET["page"])) {
|
50 |
+
case "mb_roles_and_capabilities":
|
51 |
+
$details_roles_capabilities = get_mail_bank_meta_value("roles_and_capabilities");
|
52 |
+
$other_roles_access_array = array(
|
53 |
+
"manage_options",
|
54 |
+
"edit_plugins",
|
55 |
+
"edit_posts",
|
56 |
+
"publish_posts",
|
57 |
+
"publish_pages",
|
58 |
+
"edit_pages",
|
59 |
+
"read"
|
60 |
+
);
|
61 |
+
$other_roles_array = isset($details_roles_capabilities["capabilities"]) && $details_roles_capabilities["capabilities"] != "" ? $details_roles_capabilities["capabilities"] : $other_roles_access_array;
|
62 |
+
break;
|
63 |
|
64 |
+
case "mb_settings":
|
65 |
+
$settings_data_array = get_mail_bank_meta_value("settings");
|
66 |
+
break;
|
67 |
|
68 |
+
case "mb_email_logs":
|
69 |
+
$end_date = MAIL_BANK_LOCAL_TIME + 86400;
|
70 |
+
$start_date = $end_date - 2678400;
|
71 |
+
$email_logs_data = $wpdb->get_results
|
72 |
+
(
|
73 |
+
$wpdb->prepare
|
74 |
+
(
|
75 |
+
"SELECT * FROM " . mail_bank_meta() . "
|
76 |
WHERE meta_key = %s ORDER BY id DESC", "email_logs"
|
77 |
+
)
|
78 |
+
);
|
79 |
+
$unserialized_email_logs_data = get_mail_bank_log_data_maybe_unserialize($email_logs_data, $start_date, $end_date);
|
80 |
|
81 |
+
break;
|
82 |
|
83 |
|
84 |
+
case "mb_email_configuration":
|
85 |
|
86 |
+
$email_configuration_array = get_mail_bank_meta_value("email_configuration");
|
87 |
+
if (!empty($_REQUEST["access_token"])) {
|
88 |
+
$code = esc_attr($_REQUEST["access_token"]);
|
89 |
+
$update_email_configuration_data = get_option("update_email_configuration");
|
90 |
+
$mail_bank_auth_host = new mail_bank_auth_host($update_email_configuration_data);
|
91 |
+
if ($update_email_configuration_data["hostname"] == "smtp.gmail.com") {
|
92 |
+
$test_secret_key_error = $mail_bank_auth_host->google_authentication_token($code);
|
93 |
+
if (isset($test_secret_key_error->error)) {
|
94 |
+
$test_secret_key_error = $test_secret_key_error->error_description;
|
95 |
+
break;
|
96 |
+
}
|
97 |
+
} elseif (in_array($update_email_configuration_data["hostname"], $mail_bank_auth_host->yahoo_domains)) {
|
98 |
+
$test_secret_key_error = $mail_bank_auth_host->yahoo_authentication_token($code);
|
99 |
+
if (isset($test_secret_key_error->error)) {
|
100 |
+
$test_secret_key_error = $test_secret_key_error->error_description;
|
101 |
+
break;
|
102 |
+
}
|
103 |
+
} else {
|
104 |
+
$test_secret_key_error = $mail_bank_auth_host->microsoft_authentication_token($code);
|
105 |
+
if (isset($test_secret_key_error->error)) {
|
106 |
+
$test_secret_key_error = $test_secret_key_error->error_description;
|
107 |
+
break;
|
108 |
+
}
|
109 |
+
}
|
110 |
+
$obj_dbHelper_mail_bank = new dbHelper_mail_bank();
|
111 |
|
112 |
+
$update_email_configuration_array = array();
|
113 |
+
$where = array();
|
114 |
+
$where["meta_key"] = "email_configuration";
|
115 |
+
$update_email_configuration_array["meta_value"] = serialize($update_email_configuration_data);
|
116 |
+
$obj_dbHelper_mail_bank->updateCommand(mail_bank_meta(), $update_email_configuration_array, $where);
|
117 |
+
if ($update_email_configuration_data["automatic_mail"] == 1) {
|
118 |
+
$automatically_send_mail = "true";
|
119 |
+
} else {
|
120 |
+
$automatically_not_send_mail = "true";
|
121 |
+
}
|
122 |
+
}
|
123 |
+
break;
|
124 |
+
}
|
125 |
}
|
126 |
}
|
127 |
}
|
includes/sidebar.php
CHANGED
@@ -15,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
-
|
19 |
-
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
@@ -26,133 +26,132 @@ if (!is_user_logged_in()) {
|
|
26 |
<div class="page-sidebar-wrapper-tech-banker">
|
27 |
<div class="page-sidebar-tech-banker navbar-collapse collapse">
|
28 |
<div class="sidebar-menu-tech-banker">
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
</div>
|
113 |
</div>
|
114 |
</div>
|
115 |
<div class="page-content-wrapper">
|
116 |
<div class="page-content">
|
117 |
<div style="margin-bottom:10px">
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
</div>
|
122 |
<div class="container-fluid page-header-container">
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
</div>
|
155 |
-
|
156 |
-
|
157 |
-
}
|
158 |
-
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
26 |
<div class="page-sidebar-wrapper-tech-banker">
|
27 |
<div class="page-sidebar-tech-banker navbar-collapse collapse">
|
28 |
<div class="sidebar-menu-tech-banker">
|
29 |
+
<ul class="page-sidebar-menu-tech-banker" data-slide-speed="200">
|
30 |
+
<div class="sidebar-search-wrapper" style="padding:20px;text-align:center">
|
31 |
+
<a class="plugin-logo" href="<?php echo tech_banker_beta_url; ?>" target="_blank">
|
32 |
+
<img src="<?php echo plugins_url("assets/global/img/mail-bank-logo.png", dirname(__FILE__)); ?>" alt="Mail Bank">
|
33 |
+
</a>
|
34 |
+
</div>
|
35 |
+
<li id="ux_mb_li_email_configuration">
|
36 |
+
<a href="admin.php?page=mb_email_configuration">
|
37 |
+
<i class="icon-custom-envelope-open"></i>
|
38 |
+
<span class="title">
|
39 |
+
<?php echo $mb_email_configuration; ?>
|
40 |
+
</span>
|
41 |
+
</a>
|
42 |
+
</li>
|
43 |
+
<li id="ux_mb_li_test_email">
|
44 |
+
<a href="admin.php?page=mb_test_email">
|
45 |
+
<i class="icon-custom-envelope "></i>
|
46 |
+
<span class="title">
|
47 |
+
<?php echo $mb_test_email; ?>
|
48 |
+
</span>
|
49 |
+
</a>
|
50 |
+
</li>
|
51 |
+
<li id="ux_mb_li_connectivity_test">
|
52 |
+
<a href="admin.php?page=mb_connectivity_test">
|
53 |
+
<i class="icon-custom-globe"></i>
|
54 |
+
<span class="title">
|
55 |
+
<?php echo $mb_connectivity_test; ?>
|
56 |
+
</span>
|
57 |
+
</a>
|
58 |
+
</li>
|
59 |
+
<li id="ux_mb_li_email_logs">
|
60 |
+
<a href="admin.php?page=mb_email_logs">
|
61 |
+
<i class="icon-custom-note"></i>
|
62 |
+
<span class="title">
|
63 |
+
<?php echo $mb_email_logs; ?>
|
64 |
+
</span>
|
65 |
+
<span class="badge">
|
66 |
+
Pro
|
67 |
+
</span>
|
68 |
+
</a>
|
69 |
+
</li>
|
70 |
+
<li id="ux_mb_li_settings">
|
71 |
+
<a href="admin.php?page=mb_settings">
|
72 |
+
<i class="icon-custom-paper-clip"></i>
|
73 |
+
<span class="title">
|
74 |
+
<?php echo $mb_settings; ?>
|
75 |
+
</span>
|
76 |
+
</a>
|
77 |
+
</li>
|
78 |
+
<li id="ux_mb_li_roles_and_capabilities">
|
79 |
+
<a href="admin.php?page=mb_roles_and_capabilities">
|
80 |
+
<i class="icon-custom-user"></i>
|
81 |
+
<span class="title">
|
82 |
+
<?php echo $mb_roles_and_capabilities; ?>
|
83 |
+
</span>
|
84 |
+
<span class="badge">Pro</span>
|
85 |
+
</a>
|
86 |
+
</li>
|
87 |
+
<li id="ux_mb_li_feedbacks">
|
88 |
+
<a href="admin.php?page=mb_feedbacks">
|
89 |
+
<i class="icon-custom-star"></i>
|
90 |
+
<span class="title">
|
91 |
+
<?php echo $mb_feedbacks; ?>
|
92 |
+
</span>
|
93 |
+
</a>
|
94 |
+
</li>
|
95 |
+
<li id="ux_mb_li_system_information">
|
96 |
+
<a href="admin.php?page=mb_system_information">
|
97 |
+
<i class="icon-custom-screen-desktop"></i>
|
98 |
+
<span class="title">
|
99 |
+
<?php echo $mb_system_information; ?>
|
100 |
+
</span>
|
101 |
+
</a>
|
102 |
+
</li>
|
103 |
+
<li class="" id="ux_li_upgrade">
|
104 |
+
<a href="admin.php?page=mb_upgrade">
|
105 |
+
<i class="icon-custom-briefcase"></i>
|
106 |
+
<span class="title">
|
107 |
+
<?php echo $mb_upgrade; ?>
|
108 |
+
</span>
|
109 |
+
</a>
|
110 |
+
</li>
|
111 |
+
</ul>
|
112 |
</div>
|
113 |
</div>
|
114 |
</div>
|
115 |
<div class="page-content-wrapper">
|
116 |
<div class="page-content">
|
117 |
<div style="margin-bottom:10px">
|
118 |
+
<a href="http://beta.tech-banker.com/products/mail-bank/" target="_blank">
|
119 |
+
<img src="<?php echo plugins_url("assets/global/img/mail-bank-banner.png", dirname(__FILE__)); ?>" title="Mail Bank" style="width: 100%;">
|
120 |
+
</a>
|
121 |
</div>
|
122 |
<div class="container-fluid page-header-container">
|
123 |
+
<div class="row">
|
124 |
+
<div class="col-md-3 page-header-column">
|
125 |
+
<h4>Get Started</h4>
|
126 |
+
<a class="btn" href="#" target="_blank">Watch Video!</a>
|
127 |
+
<p>or <a href="http://beta.tech-banker.com/products/mail-bank/user-guide/" target="_blank">read documentation here</a></p>
|
128 |
+
</div>
|
129 |
+
<div class="col-md-3 page-header-column">
|
130 |
+
<h4>Go Premium</h4>
|
131 |
+
<ul>
|
132 |
+
<li><a href="http://beta.tech-banker.com/products/mail-bank/" target="_blank">Features</a></li>
|
133 |
+
<li><a href="http://beta.tech-banker.com/products/mail-bank/demos/" target="_blank">Online Demos</a></li>
|
134 |
+
<li><a href="http://beta.tech-banker.com/products/mail-bank/pricing/" target="_blank">Pricing Plans</a></li>
|
135 |
+
</ul>
|
136 |
+
</div>
|
137 |
+
<div class="col-md-3 page-header-column">
|
138 |
+
<h4>User Guide</h4>
|
139 |
+
<ul>
|
140 |
+
<li><a href="http://beta.tech-banker.com/products/mail-bank/user-guide/" target="_blank">Documentation</a></li>
|
141 |
+
<li><a href="https://wordpress.org/support/plugin/wp-mail-bank" target="_blank">Support Question!</a></li>
|
142 |
+
<li><a href="http://beta.tech-banker.com/contact-us/" target="_blank">Contact Us</a></li>
|
143 |
+
</ul>
|
144 |
+
</div>
|
145 |
+
<div class="col-md-3 page-header-column">
|
146 |
+
<h4>More Actions</h4>
|
147 |
+
<ul>
|
148 |
+
<li><a href="https://wordpress.org/support/plugin/wp-mail-bank/reviews/?filter=5" target="_blank">Rate Us!</a></li>
|
149 |
+
<li><a href="http://beta.tech-banker.com/products/" target="_blank">Our Other Products</a></li>
|
150 |
+
<li><a href="http://beta.tech-banker.com/services/" target="_blank">Our Other Services</a></li>
|
151 |
+
</ul>
|
152 |
+
</div>
|
153 |
+
</div>
|
154 |
</div>
|
155 |
+
<?php
|
156 |
+
}
|
157 |
+
}
|
|
includes/token-manager-mail-bank.php
CHANGED
@@ -1,90 +1,80 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
6 |
if (!class_exists("token_manager_mail_bank")) {
|
7 |
|
8 |
class token_manager_mail_bank {
|
9 |
-
|
10 |
public
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
// Constructor
|
17 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
}
|
23 |
-
|
24 |
public function get_authorization_token() {
|
25 |
-
|
26 |
}
|
27 |
-
|
28 |
public function check_access_token() {
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
}
|
33 |
-
|
34 |
// Decoded the received token
|
35 |
public function process_response($response) {
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
}
|
49 |
-
|
50 |
//This function is used to extracts values(expiry time, accesstoken, refresh token)
|
51 |
public function receive_decode_authorization_token($new_token) {
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
}
|
72 |
-
|
73 |
// get_refresh_token function is used to give specific URL and redirectUri to refresh the access token.
|
74 |
public function get_refresh_token() {
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
}
|
87 |
-
|
88 |
}
|
89 |
-
|
90 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
5 |
if (!class_exists("token_manager_mail_bank")) {
|
6 |
|
7 |
class token_manager_mail_bank {
|
|
|
8 |
public
|
9 |
+
$client_id,
|
10 |
+
$client_secret,
|
11 |
+
$authorization_token,
|
12 |
+
$callback_uri;
|
|
|
13 |
// Constructor
|
14 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
15 |
+
$this->client_id = $client_id;
|
16 |
+
$this->client_secret = $client_secret;
|
17 |
+
$this->authorization_token = $authorization_token;
|
18 |
+
$this->callback_uri = $callback_uri;
|
19 |
}
|
|
|
20 |
public function get_authorization_token() {
|
21 |
+
return $this->authorization_token;
|
22 |
}
|
|
|
23 |
public function check_access_token() {
|
24 |
+
$expiry_time = ($this->authorization_token->retrieve_token_expiry_time_mail_bank() - 60);
|
25 |
+
$token_expired = time() > $expiry_time;
|
26 |
+
return $token_expired;
|
27 |
}
|
|
|
28 |
// Decoded the received token
|
29 |
public function process_response($response) {
|
30 |
+
$oauth_token = json_decode(stripslashes($response));
|
31 |
+
if ($oauth_token === NULL) {
|
32 |
+
throw new Exception($response);
|
33 |
+
} elseif (isset($oauth_token->{"error"})) {
|
34 |
+
if (isset($oauth_token->{"error_description"})) {
|
35 |
+
return $oauth_token;
|
36 |
+
} else {
|
37 |
+
throw new Exception($oauth_token->{"error"});
|
38 |
+
}
|
39 |
+
} else {
|
40 |
+
$this->receive_decode_authorization_token($oauth_token);
|
41 |
+
}
|
42 |
}
|
|
|
43 |
//This function is used to extracts values(expiry time, accesstoken, refresh token)
|
44 |
public function receive_decode_authorization_token($new_token) {
|
45 |
+
// Update expiry time
|
46 |
+
if (empty($new_token->{"expires_in"})) {
|
47 |
+
throw new Exception("[expires_in] value is missing from token");
|
48 |
+
}
|
49 |
+
$changed_expiry_time = time() + $new_token->{"expires_in"};
|
50 |
+
$this->get_authorization_token()->set_token_expirytime_mail_bank($changed_expiry_time);
|
51 |
|
52 |
+
// Update access token
|
53 |
+
if (empty($new_token->{"access_token"})) {
|
54 |
+
throw new Exception("[access_token] value is missing from token");
|
55 |
+
}
|
56 |
+
$new_access_token = $new_token->{"access_token"};
|
57 |
+
$this->get_authorization_token()->set_access_token_mail_bank($new_access_token);
|
58 |
|
59 |
+
// Update refresh token
|
60 |
+
if (isset($new_token->{"refresh_token"})) {
|
61 |
+
$new_refresh_token = $new_token->{"refresh_token"};
|
62 |
+
$this->get_authorization_token()->set_refresh_token_mail_bank($new_refresh_token);
|
63 |
+
}
|
64 |
}
|
|
|
65 |
// get_refresh_token function is used to give specific URL and redirectUri to refresh the access token.
|
66 |
public function get_refresh_token() {
|
67 |
+
$refresh_uri = $this->token_url;
|
68 |
+
$callback_uri = $this->callback_uri;
|
69 |
+
$configurations = array(
|
70 |
+
"client_id" => $this->client_id,
|
71 |
+
"client_secret" => $this->client_secret,
|
72 |
+
"redirect_uri" => $callback_uri,
|
73 |
+
"grant_type" => "refresh_token",
|
74 |
+
"refresh_token" => $this->get_authorization_token()->retrieve_refresh_token_mail_bank()
|
75 |
+
);
|
76 |
+
$response = mail_bank_zend_mail_helper::retrieve_body_from_response_mail_bank($refresh_uri, $configurations);
|
77 |
+
$this->process_response($response);
|
78 |
}
|
|
|
79 |
}
|
|
|
80 |
}
|
includes/translations.php
CHANGED
@@ -1,411 +1,411 @@
|
|
1 |
-
|
2 |
-
/**
|
3 |
-
* This file is used for translation strings.
|
4 |
-
*
|
5 |
-
* @author Tech Banker
|
6 |
-
* @package wp-mail-bank/includes
|
7 |
-
* @version 2.0.0
|
8 |
-
*/
|
9 |
-
if (!defined("ABSPATH")) {
|
10 |
-
exit;
|
11 |
-
}// Exit if accessed directly
|
12 |
-
if (!is_user_logged_in()) {
|
13 |
-
return;
|
14 |
-
} else {
|
15 |
-
$access_granted = false;
|
16 |
-
foreach ($user_role_permission as $permission) {
|
17 |
-
if (current_user_can($permission)) {
|
18 |
-
|
19 |
-
|
20 |
-
}
|
21 |
-
}
|
22 |
-
if (!$access_granted) {
|
23 |
-
return;
|
24 |
-
} else {
|
25 |
-
$wp_langs = array();
|
26 |
-
$wp_langs["af"] = "Afrikaans";
|
27 |
-
$wp_langs["ak"] = "Akan";
|
28 |
-
$wp_langs["sq"] = "Shqip";
|
29 |
-
$wp_langs["arq"] = "الدارجة الجزايرية";
|
30 |
-
$wp_langs["am"] = "አማርኛ";
|
31 |
-
$wp_langs["hy"] = "Հայերեն";
|
32 |
-
$wp_langs["rup_mk"] = "Armãneashce";
|
33 |
-
$wp_langs["frp"] = "Arpitan";
|
34 |
-
$wp_langs["as"] = "অসমীয়া";
|
35 |
-
$wp_langs["ast"] = "Asturianu";
|
36 |
-
$wp_langs["az"] = "Azərbaycan dili";
|
37 |
-
$wp_langs["az_tr"] = "Azərbaycan Türkcəsi";
|
38 |
-
$wp_langs["bcc"] = "بلوچی مکرانی";
|
39 |
-
$wp_langs["ba"] = "башҡорт теле";
|
40 |
-
$wp_langs["eu"] = "Euskara";
|
41 |
-
$wp_langs["bel"] = "Беларуская мова";
|
42 |
-
$wp_langs["bn_bd"] = "বাংলা";
|
43 |
-
$wp_langs["bs_ba"] = "Bosanski";
|
44 |
-
$wp_langs["bre"] = "Brezhoneg";
|
45 |
-
$wp_langs["bg_bg"] = "Български";
|
46 |
-
$wp_langs["ca"] = "Català";
|
47 |
-
$wp_langs["bal"] = "Català (Balear)";
|
48 |
-
$wp_langs["ceb"] = "Cebuano";
|
49 |
-
$wp_langs["zh_hk"] = "香港中文版 ";
|
50 |
-
$wp_langs["zh_tw"] = "繁體中文";
|
51 |
-
$wp_langs["co"] = "Corsu";
|
52 |
-
$wp_langs["hr"] = "Hrvatski";
|
53 |
-
$wp_langs["dv"] = "ދިވެހި";
|
54 |
-
$wp_langs["nl_be"] = "Nederlands (België)";
|
55 |
-
$wp_langs["dzo"] = "རྫོང་ཁ";
|
56 |
-
$wp_langs["eo"] = "Esperanto";
|
57 |
-
$wp_langs["et"] = "Eesti";
|
58 |
-
$wp_langs["fo"] = "Føroyskt";
|
59 |
-
$wp_langs["fi"] = "Suomi";
|
60 |
-
$wp_langs["fr_be"] = "Français de Belgique";
|
61 |
-
$wp_langs["fr_ca"] = "Français du Canada";
|
62 |
-
$wp_langs["fy"] = "Frysk";
|
63 |
-
$wp_langs["fur"] = "Friulian";
|
64 |
-
$wp_langs["fuc"] = "Pulaar";
|
65 |
-
$wp_langs["gl_es"] = "Galego";
|
66 |
-
$wp_langs["ka_ge"] = "ქართული";
|
67 |
-
$wp_langs["de_ch"] = "Deutsch (Schweiz)";
|
68 |
-
$wp_langs["kal"] = "Kalaallisut";
|
69 |
-
$wp_langs["gn"] = "Avañe'ẽ";
|
70 |
-
$wp_langs["gu"] = "ગુજરાતી";
|
71 |
-
$wp_langs["hat"] = "Kreyol ayisyen";
|
72 |
-
$wp_langs["haw_us"] = "Ōlelo Hawaiʻi";
|
73 |
-
$wp_langs["haz"] = "هزاره گی";
|
74 |
-
$wp_langs["hi_in"] = "हिन्दी";
|
75 |
-
$wp_langs["is_is"] = "Íslenska";
|
76 |
-
$wp_langs["ido"] = "Ido";
|
77 |
-
$wp_langs["id_id"] = "Bahasa Indonesia";
|
78 |
-
$wp_langs["ga"] = "Gaelige";
|
79 |
-
$wp_langs["it_it"] = "Italiano";
|
80 |
-
$wp_langs["ja"] = "日本語";
|
81 |
-
$wp_langs["jv_id"] = "Basa Jawa";
|
82 |
-
$wp_langs["kab"] = "Taqbaylit";
|
83 |
-
$wp_langs["kn"] = "ಕನ್ನಡ";
|
84 |
-
$wp_langs["kk"] = "Қазақ тілі";
|
85 |
-
$wp_langs["km"] = "ភាសាខ្មែរ";
|
86 |
-
$wp_langs["kin"] = "Ikinyarwanda";
|
87 |
-
$wp_langs["ky_ky"] = "кыргыз тили";
|
88 |
-
$wp_langs["ko_kr"] = "한국어";
|
89 |
-
$wp_langs["ckb"] = "كوردی";
|
90 |
-
$wp_langs["lo"] = "ພາສາລາວ";
|
91 |
-
$wp_langs["lv"] = "Latviešu valoda";
|
92 |
-
$wp_langs["li"] = "Limburgs";
|
93 |
-
$wp_langs["lin"] = "Ngala";
|
94 |
-
$wp_langs["lt_lt"] = "Lietuvių kalba";
|
95 |
-
$wp_langs["lb_lu"] = "Lëtzebuergesch";
|
96 |
-
$wp_langs["mk_mk"] = "Македонски јазик";
|
97 |
-
$wp_langs["mg_mg"] = "Malagasy";
|
98 |
-
$wp_langs["ms_my"] = "Bahasa Melayu";
|
99 |
-
$wp_langs["ml_in"] = "മലയാളം";
|
100 |
-
$wp_langs["mri"] = "Te Reo Māori";
|
101 |
-
$wp_langs["mr"] = "मराठी";
|
102 |
-
$wp_langs["xmf"] = "მარგალური ნინა";
|
103 |
-
$wp_langs["mn"] = "Монгол";
|
104 |
-
$wp_langs["me_me"] = "Crnogorski jezik";
|
105 |
-
$wp_langs["ary"] = "العربية المغربية";
|
106 |
-
$wp_langs["my_mm"] = "ဗမာစာ";
|
107 |
-
$wp_langs["ne_np"] = "नेपाली";
|
108 |
-
$wp_langs["nn_no"] = "Norsk nynorsk";
|
109 |
-
$wp_langs["oci"] = "Occitan";
|
110 |
-
$wp_langs["ory"] = "ଓଡ଼ିଆ";
|
111 |
-
$wp_langs["os"] = "Ирон";
|
112 |
-
$wp_langs["ps"] = "پښتو";
|
113 |
-
$wp_langs["fa_ir"] = "فارسی";
|
114 |
-
$wp_langs["fa_af"] = "(فارسی (افغانستان";
|
115 |
-
$wp_langs["pl_pl"] = "Polski";
|
116 |
-
$wp_langs["pa_in"] = "ਪੰਜਾਬੀ";
|
117 |
-
$wp_langs["rhg"] = "Ruáinga";
|
118 |
-
$wp_langs["roh"] = "Rumantsch Vallader";
|
119 |
-
$wp_langs["rue"] = "Русиньскый";
|
120 |
-
$wp_langs["sah"] = "Сахалыы";
|
121 |
-
$wp_langs["sa_in"] = "भारतम्";
|
122 |
-
$wp_langs["srd"] = "Sardu";
|
123 |
-
$wp_langs["gd"] = "Gàidhlig";
|
124 |
-
$wp_langs["sr_rs"] = "Српски језик";
|
125 |
-
$wp_langs["szl"] = "Ślōnskŏ gŏdka";
|
126 |
-
$wp_langs["snd"] = "سنڌي";
|
127 |
-
$wp_langs["si_lk"] = "සිංහල";
|
128 |
-
$wp_langs["sk_sk"] = "Slovenčina";
|
129 |
-
$wp_langs["sl_si"] = "Slovenščina";
|
130 |
-
$wp_langs["so_so"] = "Afsoomaali";
|
131 |
-
$wp_langs["azb"] = "گؤنئی آذربایجان";
|
132 |
-
$wp_langs["es_ar"] = "Español de Argentina";
|
133 |
-
$wp_langs["es_cl"] = "Español de Chile";
|
134 |
-
$wp_langs["es_co"] = "Español de Colombia";
|
135 |
-
$wp_langs["es_gt"] = "Español de Guatemala";
|
136 |
-
$wp_langs["es_pe"] = "Español de Perú";
|
137 |
-
$wp_langs["es_pr"] = "Español de Puerto Rico";
|
138 |
-
$wp_langs["es_es"] = "Español";
|
139 |
-
$wp_langs["es_ve"] = "Español de Venezuela";
|
140 |
-
$wp_langs["su_id"] = "Basa Sunda";
|
141 |
-
$wp_langs["sw"] = "Kiswahili";
|
142 |
-
$wp_langs["gsw"] = "Schwyzerdütsch";
|
143 |
-
$wp_langs["tl"] = "Tagalog";
|
144 |
-
$wp_langs["tah"] = "Reo Tahiti";
|
145 |
-
$wp_langs["tg"] = "Тоҷикӣ";
|
146 |
-
$wp_langs["tzm"] = "ⵜⴰⵎⴰⵣⵉⵖⵜ";
|
147 |
-
$wp_langs["ta_in"] = "தமிழ்";
|
148 |
-
$wp_langs["ta_lk"] = "தமிழ்";
|
149 |
-
$wp_langs["tt_ru"] = "Татар теле";
|
150 |
-
$wp_langs["te"] = "తెలుగు";
|
151 |
-
$wp_langs["bo"] = "བོད་སྐད";
|
152 |
-
$wp_langs["tir"] = "ትግርኛ";
|
153 |
-
$wp_langs["tuk"] = "Türkmençe";
|
154 |
-
$wp_langs["twd"] = "Twents";
|
155 |
-
$wp_langs["ug_cn"] = "Uyƣurqə";
|
156 |
-
$wp_langs["ur"] = "اردو";
|
157 |
-
$wp_langs["uz_uz"] = "O‘zbekcha";
|
158 |
-
$wp_langs["wa"] = "Walon";
|
159 |
-
$wp_langs["cy"] = "Cymraeg";
|
160 |
-
$wp_langs["yor"] = "Yorùbá";
|
161 |
-
$locale = strtolower(get_locale());
|
162 |
-
if (array_key_exists("$locale", $wp_langs)) {
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
} else {
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
}
|
171 |
-
|
172 |
-
//Disclaimer
|
173 |
-
$mb_upgrade = __("Upgrade", "wp-mail-bank");
|
174 |
-
$mb_premium_edition_label = __("Premium Edition", "wp-mail-bank");
|
175 |
-
$mb_message_premium_edition = __("This feature is available only in Premium Editions! <br> Kindly Purchase to unlock it!", "wp-mail-bank");
|
176 |
-
|
177 |
-
|
178 |
-
//wizard
|
179 |
-
$mb_wizard_basic_info = __("Basic Info", "wp-mail-bank");
|
180 |
-
$mb_wizard_account_setup = __("Account Setup", "wp-mail-bank");
|
181 |
-
$mb_wizard_confirm = __("Confirm", "wp-mail-bank");
|
182 |
-
|
183 |
-
// Menus
|
184 |
-
$wp_mail_bank = __("Mail Bank", "wp-mail-bank");
|
185 |
-
$mb_email_configuration = __("Email Setup", "wp-mail-bank");
|
186 |
-
$mb_email_logs = __("Email Logs", "wp-mail-bank");
|
187 |
-
$mb_test_email = __("Test Email", "wp-mail-bank");
|
188 |
-
$mb_settings = __("Plugin Settings", "wp-mail-bank");
|
189 |
-
$mb_feedbacks = __("Feedbacks", "wp-mail-bank");
|
190 |
-
$mb_roles_and_capabilities = __("Roles & Capabilities", "wp-mail-bank");
|
191 |
-
$mb_system_information = __("System Information", "wp-mail-bank");
|
192 |
-
|
193 |
-
// Footer
|
194 |
-
$mb_success = __("Success!", "wp-mail-bank");
|
195 |
-
$mb_update_email_configuration = __("Email Setup has been updated Successfully", "wp-mail-bank");
|
196 |
-
$mb_update_feedbacks = __("Your Feedback has been sent Successfully", "wp-mail-bank");
|
197 |
-
$mb_test_email_sent = __("Test Email was sent Successfully!", "wp-mail-bank");
|
198 |
-
$mb_test_email_not_send = __("Test Email was not sent!", "wp-mail-bank");
|
199 |
-
$mb_update_settings = __("Plugin Settings have been updated Successfully", "wp-mail-bank");
|
200 |
-
$oauth_not_supported = __("The OAuth is not supported by providing SMTP Host, kindly provide username and password", "wp-mail-bank");
|
201 |
-
$mb_popup_query = __("Query", "wp-mail-bank");
|
202 |
-
$mb_language_interested_to_translate = __("Language Interested to Translate", "wp-mail-bank");
|
203 |
-
$mb_language_interested_to_translate_tooltip = __("Please enter the language you want to translate.", "wp-mail-bank");
|
204 |
-
$mb_language_interested_to_translate_placeholder = __("Please enter the language", "wp-mail-bank");
|
205 |
-
$mb_popup_your_name_tooltip = __("In this field, You would need to provide your name which will be sent along with your request", "wp-mail-bank");
|
206 |
-
$mb_important_disclaimer = __("Important Disclaimer!", "wp-mail-bank");
|
207 |
-
$mb_popup_your_email_tooltip = __("In this field, You would need to provide your valid email which wiil be sent along with your request", "wp-mail-bank");
|
208 |
-
$mb_popup_query_tooltip = __("Please enter your query.", "wp-mail-bank");
|
209 |
-
$mb_popup_query_placeholder = __("Please enter the query.", "wp-mail-bank");
|
210 |
-
$mb_manage_backups_close = __("Close", "wp-mail-bank");
|
211 |
-
$mb_feature_requests_send_request = __("Send Request", "wp-mail-bank");
|
212 |
-
$mb_translation_request = __("Translation Request", "wp-mail-bank");
|
213 |
-
$mb_confirm_close = __("Are you sure you want to close without sending Translation Request?", "wp-mail-bank");
|
214 |
-
$mb_feature_requests_your_email = __("Your Email", "wp-mail-bank");
|
215 |
-
$mb_feature_requests_your_name = __("Your Name", "wp-mail-bank");
|
216 |
-
$mb_feature_requests_your_name_placeholder = __("Please provide your Name", "wp-mail-bank");
|
217 |
-
|
218 |
-
|
219 |
-
// Common Variables
|
220 |
-
$mb_status_sent = __("Sent", "wp-mail-bank");
|
221 |
-
$mb_status_not_sent = __("Not Sent", "wp-mail-bank");
|
222 |
-
$mb_user_access_message = __("You don't have Sufficient Access to this Page. Kindly contact the Administrator for more Privileges", "wp-mail-bank");
|
223 |
-
$mb_enable = __("Enable", "wp-mail-bank");
|
224 |
-
$mb_disable = __("Disable", "wp-mail-bank");
|
225 |
-
$mb_override = __("Override", "wp-mail-bank");
|
226 |
-
$mb_dont_override = __("Don't Override", "wp-mail-bank");
|
227 |
-
$mb_save_changes = __("Save Settings", "wp-mail-bank");
|
228 |
-
$mb_subject = __("Subject", "wp-mail-bank");
|
229 |
-
$mb_next_step = __("Next Step", "wp-mail-bank");
|
230 |
-
$mb_previous_step = __("Previous Step", "wp-mail-bank");
|
231 |
-
$mb_upgrade_to = __("Upgrade to Premium Editions", "wp-mail-bank");
|
232 |
-
|
233 |
-
// Email Setup
|
234 |
-
$mb_email_configuration_cc_label = __("Cc", "wp-mail-bank");
|
235 |
-
$mb_email_configuration_bcc_label = __("Bcc", "wp-mail-bank");
|
236 |
-
$mb_email_configuration_cc_email_address_tooltip = __("Please provide valid Cc Email Address", "wp-mail-bank");
|
237 |
-
$mb_email_configuration_bcc_email_address_tooltip = __("Please provide valid Bcc Email Address", "wp-mail-bank");
|
238 |
-
$mb_email_configuration_cc_email_placeholder = __("Please provide Cc Email", "wp-mail-bank");
|
239 |
-
$mb_email_configuration_bcc_email_placeholder = __("Please provide Bcc Email", "wp-mail-bank");
|
240 |
-
$mb_email_configuration_mailer_settings_tab = __("Mailer Settings", "wp-mail-bank");
|
241 |
-
$mb_email_configuration_test_email_tab = __("Test Email", "wp-mail-bank");
|
242 |
-
$mb_email_configuration_from_name = __("From Name", "wp-mail-bank");
|
243 |
-
$mb_email_configuration_from_name_tooltip = __("From Name is the inbox field that tells your recipient who sent the messages. If you would like to override the pre-configured From Name, then you would need to insert the name in the inbox field", "wp-mail-bank");
|
244 |
-
$mb_email_configuration_from_name_placeholder = __("Please provide From Name", "wp-mail-bank");
|
245 |
-
$mb_email_configuration_from_email = __("From Email", "wp-mail-bank");
|
246 |
-
$mb_email_address_tooltip = __("From Email is the inbox field that tells your recipient from which Email Address the messages are coming. If you would like to override the pre-configured From Email, then you would need to insert an Email Address in the inbox field", "wp-mail-bank");
|
247 |
-
$mb_email_configuration_from_email_placeholder = __("Please provide From Email Address", "wp-mail-bank");
|
248 |
-
$mb_email_configuration_mailer_type = __("Mailer Type", "wp-mail-bank");
|
249 |
-
$mb_email_configuration_mailer_type_tooltip = __("This field provides you an ability to choose a specific option for Mailer Type. If you would like to send an Email via SMTP mailer, you would need to select Send Email via SMTP from the drop down or you could use PHP mail () Function", "wp-mail-bank");
|
250 |
-
$mb_email_configuration_send_email_via_smtp = __("Send Email via SMTP", "wp-mail-bank");
|
251 |
-
$mb_email_configuration_use_php_mail_function = __("Use The PHP mail() Function", "wp-mail-bank");
|
252 |
-
$mb_email_configuration_smtp_host = __("SMTP Host", "wp-mail-bank");
|
253 |
-
$mb_email_configuration_smtp_host_tooltip = __("If you would like to send an Email via different host, you would need to insert that specific host name like smtp.gmail.com in the inbox field", "wp-mail-bank");
|
254 |
-
$mb_feature_requests_your_email_placeholder = __("Please provide your Email Address", "wp-mail-bank");
|
255 |
-
$mb_email_configuration_smtp_host_placeholder = __("Please provide SMTP Host", "wp-mail-bank");
|
256 |
-
$mb_email_configuration_smtp_port = __("SMTP Port", "wp-mail-bank");
|
257 |
-
$mb_email_configuration_smtp_port_tooltip = __("This inbox field is specified to provide a valid SMTP Port for authentication", "wp-mail-bank");
|
258 |
-
$mb_email_configuration_smtp_port_placeholder = __("Please provide SMTP Port", "wp-mail-bank");
|
259 |
-
$mb_email_configuration_encryption = __("Encryption", "wp-mail-bank");
|
260 |
-
$mb_email_configuration_encryption_tooltip = __("It provides you an ability to choose a specific option for Encryption. If you would like to send an Email with TLS encryption, you would need to select Use TLS Encryption from the drop down or you could use SSL Encryption. For that you would need to select Use SSL Encryption from the drop down. If you would like to send an Email without encryption, you would need to select No Encryption from the drop down", "wp-mail-bank");
|
261 |
-
$mb_email_configuration_no_encryption = __("No Encryption", "wp-mail-bank");
|
262 |
-
$mb_email_configuration_use_ssl_encryption = __("Use SSL Encryption", "wp-mail-bank");
|
263 |
-
$mb_email_configuration_use_tls_encryption = __("Use TLS Encryption", "wp-mail-bank");
|
264 |
-
$mb_email_configuration_authentication = __("Authentication", "wp-mail-bank");
|
265 |
-
$mb_email_configuration_authentication_tooltip = __("This inbox field allows you to choose an appropriate option for authentication. It provides you the Two-way authentication factor; If you would like to authenticate yourself via Username and Password, you would need to select Use Username and Password from the drop down. You can also authenticate by an OAuth 2.0 protocol, which requires Client Id and Secret Key, for that you would need to select Use OAuth (Client ID and Secret Key) from the drop down. You can easily get Client Id and Secret Key from respective SMTP Server Developers section", "wp-mail-bank");
|
266 |
-
$mb_email_configuration_use_smtp_authentication = __("Use SMTP Authentication", "wp-mail-bank");
|
267 |
-
$mb_email_configuration_donot_use_authentication = __("Don't Use SMTP Authentication", "wp-mail-bank");
|
268 |
-
$mb_email_configuration_test_email_address = __("Test Email Address", "wp-mail-bank");
|
269 |
-
$mb_email_configuration_test_email_address_tooltip = __("In this field, you would need to provide a valid Email Address in the inbox field on which you would like to receive Test email", "wp-mail-bank");
|
270 |
-
$mb_email_configuration_test_email_address_placeholder = __("Please provide Test Email Address", "wp-mail-bank");
|
271 |
-
$mb_email_configuration_subject_test_tooltip = __("In this field, you would need to provide a subject for Test Email", "wp-mail-bank");
|
272 |
-
$mb_email_configuration_subject_test_placeholder = __("Please provide Subject", "wp-mail-bank");
|
273 |
-
$mb_email_configuration_content = __("Email Content", "wp-mail-bank");
|
274 |
-
$mb_email_configuration_content_tooltip = __("In this field, you would need to provide the content for Test Email", "wp-mail-bank");
|
275 |
-
$mb_email_configuration_send_test_email = __("Send Test Email", "wp-mail-bank");
|
276 |
-
$mb_email_configuration_smtp_debugging_output = __("SMTP Debugging Output", "wp-mail-bank");
|
277 |
-
$mb_email_configuration_send_test_email_textarea = __("Checking your settings", "wp-mail-bank");
|
278 |
-
$mb_email_configuration_result = __("Result", "wp-mail-bank");
|
279 |
-
$mb_email_configuration_send_another_test_email = __("Send Another Test Email", "wp-mail-bank");
|
280 |
-
$mb_email_configuration_enable_from_name = __("From Name Configuration", "wp-mail-bank");
|
281 |
-
$mb_email_configuration_enable_from_name_tooltip = __("If you would like to override the pre-configured name which will be used while sending Emails, then you would need to choose Override from the drop down and vice-versa", "wp-mail-bank");
|
282 |
-
$mb_email_configuration_enable_from_email = __("From Email Configuration", "wp-mail-bank");
|
283 |
-
$mb_email_configuration_enable_from_email_tooltip = __("If you would like to override your pre-configured Email Address which will be used while sending Emails, then you would need to choose Override from the drop down and vice-versa", "wp-mail-bank");
|
284 |
-
$mb_email_configuration_username = __("Username", "wp-mail-bank");
|
285 |
-
$mb_email_configuration_username_tooltip = __("In this field, you would need to provide a username to authenticate your SMTP details", "wp-mail-bank");
|
286 |
-
$mb_email_configuration_username_placeholder = __("Please provide username", "wp-mail-bank");
|
287 |
-
$mb_email_configuration_password = __("Password", "wp-mail-bank");
|
288 |
-
$mb_email_configuration_password_tooltip = __("In this field, you would need to provide a password to authenticate your SMTP details", "wp-mail-bank");
|
289 |
-
$mb_email_configuration_password_placeholder = __("Please provide password", "wp-mail-bank");
|
290 |
-
$mb_email_configuration_redirect_uri = __("Redirect URI", "wp-mail-bank");
|
291 |
-
$mb_email_configuration_redirect_uri_tooltip = __("Please copy this Redirect URI and Paste into Redirect URI field when creating your app", "wp-mail-bank");
|
292 |
-
$mb_email_configuration_use_oauth = __("Use OAuth (Client Id and Secret Key required)", "wp-mail-bank");
|
293 |
-
$mb_email_configuration_none = __("None", "wp-mail-bank");
|
294 |
-
$mb_email_configuration_use_plain_authentication = __("Plain Authentication", "wp-mail-bank");
|
295 |
-
$mb_email_configuration_cram_md5 = __("Cram-MD5", "wp-mail-bank");
|
296 |
-
$mb_email_configuration_login = __("Login", "wp-mail-bank");
|
297 |
-
$mb_email_configuration_client_id = __("Client Id", "wp-mail-bank");
|
298 |
-
$mb_email_configuration_client_secret = __("Secret Key", "wp-mail-bank");
|
299 |
-
$mb_email_configuration_client_id_tooltip = __("Please provide valid Client Id issued by your SMTP Host", "wp-mail-bank");
|
300 |
-
$mb_email_configuration_client_secret_tooltip = __("Please provide valid Secret Key issued by your SMTP Host", "wp-mail-bank");
|
301 |
-
$mb_email_configuration_client_id_placeholder = __("Please provide Client Id", "wp-mail-bank");
|
302 |
-
$mb_email_configuration_client_secret_placeholder = __("Please provide Secret Key", "wp-mail-bank");
|
303 |
-
$mb_email_configuration_tick_for_sent_mail = __("Yes, automatically send a Test Email upon clicking on the Next Step Button to verify settings", "wp-mail-bank");
|
304 |
-
$mb_email_configuration_email_address = __("Email Address", "wp-mail-bank");
|
305 |
-
$mb_email_configuration_email_address_tooltip = __("In this field, you would need to add a valid Email Address in the inbox field from which you would like to send Emails", "wp-mail-bank");
|
306 |
-
$mb_email_configuration_email_address_placeholder = __("Please provide valid Email Address", "wp-mail-bank");
|
307 |
-
$mb_email_configuration_reply_to = __("Reply To", "wp-mail-bank");
|
308 |
-
$mb_email_configuration_reply_to_tooltip = __("In this field, you would need to add a valid Email Address that is automatically inserted into the Reply To field when a user replies to an email message", "wp-mail-bank");
|
309 |
-
$mb_email_configuration_reply_to_placeholder = __("Please provide Reply To Email Address", "wp-mail-bank");
|
310 |
-
$mb_email_configuration_get_google_credentials = __("Get Google Client Id and Secret Key", "wp-mail-bank");
|
311 |
-
$mb_email_configuration_get_microsoft_credentials = __("Get Microsoft Client Id and Secret Key", "wp-mail-bank");
|
312 |
-
$mb_email_configuration_get_yahoo_credentials = __("Get Yahoo Client Id and Secret Key", "wp-mail-bank");
|
313 |
-
|
314 |
-
// Email Logs
|
315 |
-
$mb_start_date_title = __("Start Date", "wp-mail-bank");
|
316 |
-
$mb_resend = __("Resend", "wp-mail-bank");
|
317 |
-
$mb_start_date_placeholder = __("Please provide Start Date", "wp-mail-bank");
|
318 |
-
$mb_start_date_tooltip = __("This field shows starting date of Email Logs", "wp-mail-bank");
|
319 |
-
$mb_end_date_title = __("End Date", "wp-mail-bank");
|
320 |
-
$mb_end_date_placeholder = __("Please provide End Date", "wp-mail-bank");
|
321 |
-
$mb_end_date_tooltip = __("This field shows ending date of Email Logs", "wp-mail-bank");
|
322 |
-
$mb_submit = __("Submit", "wp-mail-bank");
|
323 |
-
$mb_email_logs_bulk_action = __("Bulk Action", "wp-mail-bank");
|
324 |
-
$mb_email_logs_delete = __("Delete", "wp-mail-bank");
|
325 |
-
$mb_email_logs_apply = __("Apply", "wp-mail-bank");
|
326 |
-
$mb_email_logs_email_to = __("Email To", "wp-mail-bank");
|
327 |
-
$mb_email_logs_actions = __("Action", "wp-mail-bank");
|
328 |
-
$mb_email_logs_show_details = __("Show Details", "wp-mail-bank");
|
329 |
-
$mb_email_logs_close = __("Close", "wp-mail-bank");
|
330 |
-
$mb_email_logs_debugging_output = __("Debugging Output", "wp-mail-bank");
|
331 |
-
$mb_email_logs_show_outputs = __("Show Debugging Output", "wp-mail-bank");
|
332 |
-
$mb_email_sent_to = __("Email Sent To", "wp-mail-bank");
|
333 |
-
$mb_date_time = __("Date/Time", "wp-mail-bank");
|
334 |
-
$mb_email_logs_status = __("Status", "wp-mail-bank");
|
335 |
-
$mb_from = __("From", "wp-mail-bank");
|
336 |
-
$mb_back_to_email_logs = __("Back to Email Logs", "wp-mail-bank");
|
337 |
-
|
338 |
-
// Settings
|
339 |
-
$mb_settings_debug_mode = __("Debug Mode", "wp-mail-bank");
|
340 |
-
$mb_settings_debug_mode_tooltip = __("Please choose a specific option for Debug Mode", "wp-mail-bank");
|
341 |
-
$mb_remove_tables_title = __("Remove Tables at Uninstall", "wp-mail-bank");
|
342 |
-
$mb_remove_tables_tooltip = __("Please choose a specific option whether to allow Remove Tables at Uninstall", "wp-mail-bank");
|
343 |
-
$mb_monitoring_email_log_title = __("Monitoring Email Logs", "wp-mail-bank");
|
344 |
-
$mb_monitoring_email_log_tooltip = __("This field is used to allow Email Logs to monitor or not", "wp-mail-bank");
|
345 |
-
|
346 |
-
// Roles and Capabilities
|
347 |
-
$mb_roles_capabilities_show_menu = __("Show Mail Bank Menu", "wp-mail-bank");
|
348 |
-
$mb_roles_capabilities_show_menu_tooltip = __("Please choose a specific role who can see Sidebar Menu", "wp-mail-bank");
|
349 |
-
$mb_roles_capabilities_administrator = __("Administrator", "wp-mail-bank");
|
350 |
-
$mb_roles_capabilities_author = __("Author", "wp-mail-bank");
|
351 |
-
$mb_roles_capabilities_editor = __("Editor", "wp-mail-bank");
|
352 |
-
$mb_roles_capabilities_contributor = __("Contributor", "wp-mail-bank");
|
353 |
-
$mb_roles_capabilities_subscriber = __("Subscriber", "wp-mail-bank");
|
354 |
-
$mb_roles_capabilities_others = __("Others", "wp-mail-bank");
|
355 |
-
$mb_roles_capabilities_topbar_menu = __("Show Mail Bank Top Bar Menu", "wp-mail-bank");
|
356 |
-
$mb_roles_capabilities_topbar_menu_tooltip = __("Please choose a specific option from Mail Bank Top Bar Menu", "wp-mail-bank");
|
357 |
-
$mb_roles_capabilities_administrator_role = __("An Administrator Role can do the following ", "wp-mail-bank");
|
358 |
-
$mb_roles_capabilities_administrator_role_tooltip = __("Please choose specific page available for the Administrator Access", "wp-mail-bank");
|
359 |
-
$mb_roles_capabilities_full_control = __("Full Control", "wp-mail-bank");
|
360 |
-
$mb_roles_capabilities_author_role = __("An Author Role can do the following ", "wp-mail-bank");
|
361 |
-
$mb_roles_capabilities_author_role_tooltip = __("Please choose specific page available for Author Access", "wp-mail-bank");
|
362 |
-
$mb_roles_capabilities_editor_role = __("An Editor Role can do the following ", "wp-mail-bank");
|
363 |
-
$mb_roles_capabilities_editor_role_tooltip = __("Please choose specific page available for Editor Access", "wp-mail-bank");
|
364 |
-
$mb_roles_capabilities_contributor_role = __("A Contributor Role can do the following ", "wp-mail-bank");
|
365 |
-
$mb_roles_capabilities_contributor_role_tooltip = __("Please choose specific page available for Contributor Access", "wp-mail-bank");
|
366 |
-
$mb_roles_capabilities_other_role = __("Other Roles can do the following ", "wp-mail-bank");
|
367 |
-
$mb_roles_capabilities_other_role_tooltip = __("Please choose specific page available for Others Role Access", "wp-mail-bank");
|
368 |
-
$mb_roles_capabilities_other_roles_capabilities = __("Please tick the appropriate capabilities for security purposes ", "wp-mail-bank");
|
369 |
-
$mb_roles_capabilities_other_roles_capabilities_tooltip = __("Only users with these capabilities can access Mail Bank", "wp-mail-bank");
|
370 |
-
$mb_roles_capabilities_subscriber_role = __("A Subscriber Role can do the following", "wp-mail-bank");
|
371 |
-
$mb_roles_capabilities_subscriber_role_tooltip = __("Please choose specific page available for Subscriber Access", "wp-mail-bank");
|
372 |
-
|
373 |
-
// Feedbacks
|
374 |
-
$mb_feedbacks_thank_you = __("Thank You!", "wp-mail-bank");
|
375 |
-
$mb_feedbacks_suggest_some_features = __("Kindly fill in the below form, if you would like to suggest some features which are not in the Plugin", "wp-mail-bank");
|
376 |
-
$mb_feedbacks_suggestion_complaint = __("If you also have any suggestion/complaint, you can use the same form below", "wp-mail-bank");
|
377 |
-
$mb_feedbacks_write_us_on = __("You can also write us on", "wp-mail-bank");
|
378 |
-
$mb_feedbacks_your_name = __("Your Name", "wp-mail-bank");
|
379 |
-
$mb_feedbacks_your_name_tooltip = __("Please provide your Name which will be sent along with your Feedback", "wp-mail-bank");
|
380 |
-
$mb_feedbacks_your_name_placeholder = __("Please provide your Name", "wp-mail-bank");
|
381 |
-
$mb_feedbacks_your_email = __("Your Email", "wp-mail-bank");
|
382 |
-
$mb_feedbacks_your_email_tooltip = __("Please provide your Email Address which will be sent along with your Feedback", "wp-mail-bank");
|
383 |
-
$mb_feedbacks_your_email_placeholder = __("Please provide your Email Address", "wp-mail-bank");
|
384 |
-
$mb_feedbacks_tooltip = __("Please provide your Feedback which will be sent along", "wp-mail-bank");
|
385 |
-
$mb_feedbacks_placeholder = __("Please provide your Feedback", "wp-mail-bank");
|
386 |
-
$mb_feedbacks_send_feedback = __("Send Feedback", "wp-mail-bank");
|
387 |
-
$mb_feature_request_message = __("Your request Email has been sent Successfully", "wp-mail-bank");
|
388 |
-
|
389 |
-
// Test Email
|
390 |
-
$mb_test_email_sending_test_email = __("Sending Test Email to", "wp-mail-bank");
|
391 |
-
$mb_test_email_status = __("Email Status", "wp-mail-bank");
|
392 |
-
|
393 |
-
// Connectivity Test
|
394 |
-
$mb_connectivity_test = __("Connectivity Test", "wp-mail-bank");
|
395 |
-
$mb_transport = __("Transport", "wp-mail-bank");
|
396 |
-
$mb_socket = __("Socket", "wp-mail-bank");
|
397 |
-
$mb_status = __("Status", "wp-mail-bank");
|
398 |
-
$mb_service_available = __("Service Available", "wp-mail-bank");
|
399 |
-
$mb_server_id = __("Server ID", "wp-mail-bank");
|
400 |
-
$mb_authentication = __("Authentication", "wp-mail-bank");
|
401 |
-
$mb_plain = __("Plain", "wp-mail-bank");
|
402 |
-
$mb_cram_md5 = __("CRAM-MD5", "wp-mail-bank");
|
403 |
-
$mb_0auth = __("OAuth 2.0", "wp-mail-bank");
|
404 |
-
$mb_smtp = __("SMTP", "wp-mail-bank");
|
405 |
-
$mb_gmail_api = __("Gmail API", "wp-mail-bank");
|
406 |
-
$mb_mail_server_host = __("Outgoing Mail Server Hostname", "wp-mail-bank");
|
407 |
-
$mb_begin_test = __("Begin Test", "wp-mail-bank");
|
408 |
-
$mb_localhost = __("localhost", "wp-mail-bank");
|
409 |
-
$mb_mail_server_tooltip = __("In this field, you would need to provide Outgoing Mail Server Hostname", "wp-mail-bank");
|
410 |
-
}
|
411 |
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This file is used for translation strings.
|
4 |
+
*
|
5 |
+
* @author Tech Banker
|
6 |
+
* @package wp-mail-bank/includes
|
7 |
+
* @version 2.0.0
|
8 |
+
*/
|
9 |
+
if (!defined("ABSPATH")) {
|
10 |
+
exit;
|
11 |
+
}// Exit if accessed directly
|
12 |
+
if (!is_user_logged_in()) {
|
13 |
+
return;
|
14 |
+
} else {
|
15 |
+
$access_granted = false;
|
16 |
+
foreach ($user_role_permission as $permission) {
|
17 |
+
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
if (!$access_granted) {
|
23 |
+
return;
|
24 |
+
} else {
|
25 |
+
$wp_langs = array();
|
26 |
+
$wp_langs["af"] = "Afrikaans";
|
27 |
+
$wp_langs["ak"] = "Akan";
|
28 |
+
$wp_langs["sq"] = "Shqip";
|
29 |
+
$wp_langs["arq"] = "الدارجة الجزايرية";
|
30 |
+
$wp_langs["am"] = "አማርኛ";
|
31 |
+
$wp_langs["hy"] = "Հայերեն";
|
32 |
+
$wp_langs["rup_mk"] = "Armãneashce";
|
33 |
+
$wp_langs["frp"] = "Arpitan";
|
34 |
+
$wp_langs["as"] = "অসমীয়া";
|
35 |
+
$wp_langs["ast"] = "Asturianu";
|
36 |
+
$wp_langs["az"] = "Azərbaycan dili";
|
37 |
+
$wp_langs["az_tr"] = "Azərbaycan Türkcəsi";
|
38 |
+
$wp_langs["bcc"] = "بلوچی مکرانی";
|
39 |
+
$wp_langs["ba"] = "башҡорт теле";
|
40 |
+
$wp_langs["eu"] = "Euskara";
|
41 |
+
$wp_langs["bel"] = "Беларуская мова";
|
42 |
+
$wp_langs["bn_bd"] = "বাংলা";
|
43 |
+
$wp_langs["bs_ba"] = "Bosanski";
|
44 |
+
$wp_langs["bre"] = "Brezhoneg";
|
45 |
+
$wp_langs["bg_bg"] = "Български";
|
46 |
+
$wp_langs["ca"] = "Català";
|
47 |
+
$wp_langs["bal"] = "Català (Balear)";
|
48 |
+
$wp_langs["ceb"] = "Cebuano";
|
49 |
+
$wp_langs["zh_hk"] = "香港中文版 ";
|
50 |
+
$wp_langs["zh_tw"] = "繁體中文";
|
51 |
+
$wp_langs["co"] = "Corsu";
|
52 |
+
$wp_langs["hr"] = "Hrvatski";
|
53 |
+
$wp_langs["dv"] = "ދިވެހި";
|
54 |
+
$wp_langs["nl_be"] = "Nederlands (België)";
|
55 |
+
$wp_langs["dzo"] = "རྫོང་ཁ";
|
56 |
+
$wp_langs["eo"] = "Esperanto";
|
57 |
+
$wp_langs["et"] = "Eesti";
|
58 |
+
$wp_langs["fo"] = "Føroyskt";
|
59 |
+
$wp_langs["fi"] = "Suomi";
|
60 |
+
$wp_langs["fr_be"] = "Français de Belgique";
|
61 |
+
$wp_langs["fr_ca"] = "Français du Canada";
|
62 |
+
$wp_langs["fy"] = "Frysk";
|
63 |
+
$wp_langs["fur"] = "Friulian";
|
64 |
+
$wp_langs["fuc"] = "Pulaar";
|
65 |
+
$wp_langs["gl_es"] = "Galego";
|
66 |
+
$wp_langs["ka_ge"] = "ქართული";
|
67 |
+
$wp_langs["de_ch"] = "Deutsch (Schweiz)";
|
68 |
+
$wp_langs["kal"] = "Kalaallisut";
|
69 |
+
$wp_langs["gn"] = "Avañe'ẽ";
|
70 |
+
$wp_langs["gu"] = "ગુજરાતી";
|
71 |
+
$wp_langs["hat"] = "Kreyol ayisyen";
|
72 |
+
$wp_langs["haw_us"] = "Ōlelo Hawaiʻi";
|
73 |
+
$wp_langs["haz"] = "هزاره گی";
|
74 |
+
$wp_langs["hi_in"] = "हिन्दी";
|
75 |
+
$wp_langs["is_is"] = "Íslenska";
|
76 |
+
$wp_langs["ido"] = "Ido";
|
77 |
+
$wp_langs["id_id"] = "Bahasa Indonesia";
|
78 |
+
$wp_langs["ga"] = "Gaelige";
|
79 |
+
$wp_langs["it_it"] = "Italiano";
|
80 |
+
$wp_langs["ja"] = "日本語";
|
81 |
+
$wp_langs["jv_id"] = "Basa Jawa";
|
82 |
+
$wp_langs["kab"] = "Taqbaylit";
|
83 |
+
$wp_langs["kn"] = "ಕನ್ನಡ";
|
84 |
+
$wp_langs["kk"] = "Қазақ тілі";
|
85 |
+
$wp_langs["km"] = "ភាសាខ្មែរ";
|
86 |
+
$wp_langs["kin"] = "Ikinyarwanda";
|
87 |
+
$wp_langs["ky_ky"] = "кыргыз тили";
|
88 |
+
$wp_langs["ko_kr"] = "한국어";
|
89 |
+
$wp_langs["ckb"] = "كوردی";
|
90 |
+
$wp_langs["lo"] = "ພາສາລາວ";
|
91 |
+
$wp_langs["lv"] = "Latviešu valoda";
|
92 |
+
$wp_langs["li"] = "Limburgs";
|
93 |
+
$wp_langs["lin"] = "Ngala";
|
94 |
+
$wp_langs["lt_lt"] = "Lietuvių kalba";
|
95 |
+
$wp_langs["lb_lu"] = "Lëtzebuergesch";
|
96 |
+
$wp_langs["mk_mk"] = "Македонски јазик";
|
97 |
+
$wp_langs["mg_mg"] = "Malagasy";
|
98 |
+
$wp_langs["ms_my"] = "Bahasa Melayu";
|
99 |
+
$wp_langs["ml_in"] = "മലയാളം";
|
100 |
+
$wp_langs["mri"] = "Te Reo Māori";
|
101 |
+
$wp_langs["mr"] = "मराठी";
|
102 |
+
$wp_langs["xmf"] = "მარგალური ნინა";
|
103 |
+
$wp_langs["mn"] = "Монгол";
|
104 |
+
$wp_langs["me_me"] = "Crnogorski jezik";
|
105 |
+
$wp_langs["ary"] = "العربية المغربية";
|
106 |
+
$wp_langs["my_mm"] = "ဗမာစာ";
|
107 |
+
$wp_langs["ne_np"] = "नेपाली";
|
108 |
+
$wp_langs["nn_no"] = "Norsk nynorsk";
|
109 |
+
$wp_langs["oci"] = "Occitan";
|
110 |
+
$wp_langs["ory"] = "ଓଡ଼ିଆ";
|
111 |
+
$wp_langs["os"] = "Ирон";
|
112 |
+
$wp_langs["ps"] = "پښتو";
|
113 |
+
$wp_langs["fa_ir"] = "فارسی";
|
114 |
+
$wp_langs["fa_af"] = "(فارسی (افغانستان";
|
115 |
+
$wp_langs["pl_pl"] = "Polski";
|
116 |
+
$wp_langs["pa_in"] = "ਪੰਜਾਬੀ";
|
117 |
+
$wp_langs["rhg"] = "Ruáinga";
|
118 |
+
$wp_langs["roh"] = "Rumantsch Vallader";
|
119 |
+
$wp_langs["rue"] = "Русиньскый";
|
120 |
+
$wp_langs["sah"] = "Сахалыы";
|
121 |
+
$wp_langs["sa_in"] = "भारतम्";
|
122 |
+
$wp_langs["srd"] = "Sardu";
|
123 |
+
$wp_langs["gd"] = "Gàidhlig";
|
124 |
+
$wp_langs["sr_rs"] = "Српски језик";
|
125 |
+
$wp_langs["szl"] = "Ślōnskŏ gŏdka";
|
126 |
+
$wp_langs["snd"] = "سنڌي";
|
127 |
+
$wp_langs["si_lk"] = "සිංහල";
|
128 |
+
$wp_langs["sk_sk"] = "Slovenčina";
|
129 |
+
$wp_langs["sl_si"] = "Slovenščina";
|
130 |
+
$wp_langs["so_so"] = "Afsoomaali";
|
131 |
+
$wp_langs["azb"] = "گؤنئی آذربایجان";
|
132 |
+
$wp_langs["es_ar"] = "Español de Argentina";
|
133 |
+
$wp_langs["es_cl"] = "Español de Chile";
|
134 |
+
$wp_langs["es_co"] = "Español de Colombia";
|
135 |
+
$wp_langs["es_gt"] = "Español de Guatemala";
|
136 |
+
$wp_langs["es_pe"] = "Español de Perú";
|
137 |
+
$wp_langs["es_pr"] = "Español de Puerto Rico";
|
138 |
+
$wp_langs["es_es"] = "Español";
|
139 |
+
$wp_langs["es_ve"] = "Español de Venezuela";
|
140 |
+
$wp_langs["su_id"] = "Basa Sunda";
|
141 |
+
$wp_langs["sw"] = "Kiswahili";
|
142 |
+
$wp_langs["gsw"] = "Schwyzerdütsch";
|
143 |
+
$wp_langs["tl"] = "Tagalog";
|
144 |
+
$wp_langs["tah"] = "Reo Tahiti";
|
145 |
+
$wp_langs["tg"] = "Тоҷикӣ";
|
146 |
+
$wp_langs["tzm"] = "ⵜⴰⵎⴰⵣⵉⵖⵜ";
|
147 |
+
$wp_langs["ta_in"] = "தமிழ்";
|
148 |
+
$wp_langs["ta_lk"] = "தமிழ்";
|
149 |
+
$wp_langs["tt_ru"] = "Татар теле";
|
150 |
+
$wp_langs["te"] = "తెలుగు";
|
151 |
+
$wp_langs["bo"] = "བོད་སྐད";
|
152 |
+
$wp_langs["tir"] = "ትግርኛ";
|
153 |
+
$wp_langs["tuk"] = "Türkmençe";
|
154 |
+
$wp_langs["twd"] = "Twents";
|
155 |
+
$wp_langs["ug_cn"] = "Uyƣurqə";
|
156 |
+
$wp_langs["ur"] = "اردو";
|
157 |
+
$wp_langs["uz_uz"] = "O‘zbekcha";
|
158 |
+
$wp_langs["wa"] = "Walon";
|
159 |
+
$wp_langs["cy"] = "Cymraeg";
|
160 |
+
$wp_langs["yor"] = "Yorùbá";
|
161 |
+
$locale = strtolower(get_locale());
|
162 |
+
if (array_key_exists("$locale", $wp_langs)) {
|
163 |
+
$language = $wp_langs["$locale"];
|
164 |
+
$mb_message_translate_help = __("If you would like to translate in $language & help the wordpress community, please fill in the form ", "wp-mail-bank");
|
165 |
+
$mb_message_translate_here = __("here.", "wp-mail-bank");
|
166 |
+
} else {
|
167 |
+
$mb_message_translate_help = "";
|
168 |
+
$mb_kindly_click = "";
|
169 |
+
$mb_message_translate_here = "";
|
170 |
+
}
|
171 |
+
|
172 |
+
//Disclaimer
|
173 |
+
$mb_upgrade = __("Upgrade", "wp-mail-bank");
|
174 |
+
$mb_premium_edition_label = __("Premium Edition", "wp-mail-bank");
|
175 |
+
$mb_message_premium_edition = __("This feature is available only in Premium Editions! <br> Kindly Purchase to unlock it!", "wp-mail-bank");
|
176 |
+
|
177 |
+
|
178 |
+
//wizard
|
179 |
+
$mb_wizard_basic_info = __("Basic Info", "wp-mail-bank");
|
180 |
+
$mb_wizard_account_setup = __("Account Setup", "wp-mail-bank");
|
181 |
+
$mb_wizard_confirm = __("Confirm", "wp-mail-bank");
|
182 |
+
|
183 |
+
// Menus
|
184 |
+
$wp_mail_bank = __("Mail Bank", "wp-mail-bank");
|
185 |
+
$mb_email_configuration = __("Email Setup", "wp-mail-bank");
|
186 |
+
$mb_email_logs = __("Email Logs", "wp-mail-bank");
|
187 |
+
$mb_test_email = __("Test Email", "wp-mail-bank");
|
188 |
+
$mb_settings = __("Plugin Settings", "wp-mail-bank");
|
189 |
+
$mb_feedbacks = __("Feedbacks", "wp-mail-bank");
|
190 |
+
$mb_roles_and_capabilities = __("Roles & Capabilities", "wp-mail-bank");
|
191 |
+
$mb_system_information = __("System Information", "wp-mail-bank");
|
192 |
+
|
193 |
+
// Footer
|
194 |
+
$mb_success = __("Success!", "wp-mail-bank");
|
195 |
+
$mb_update_email_configuration = __("Email Setup has been updated Successfully", "wp-mail-bank");
|
196 |
+
$mb_update_feedbacks = __("Your Feedback has been sent Successfully", "wp-mail-bank");
|
197 |
+
$mb_test_email_sent = __("Test Email was sent Successfully!", "wp-mail-bank");
|
198 |
+
$mb_test_email_not_send = __("Test Email was not sent!", "wp-mail-bank");
|
199 |
+
$mb_update_settings = __("Plugin Settings have been updated Successfully", "wp-mail-bank");
|
200 |
+
$oauth_not_supported = __("The OAuth is not supported by providing SMTP Host, kindly provide username and password", "wp-mail-bank");
|
201 |
+
$mb_popup_query = __("Query", "wp-mail-bank");
|
202 |
+
$mb_language_interested_to_translate = __("Language Interested to Translate", "wp-mail-bank");
|
203 |
+
$mb_language_interested_to_translate_tooltip = __("Please enter the language you want to translate.", "wp-mail-bank");
|
204 |
+
$mb_language_interested_to_translate_placeholder = __("Please enter the language", "wp-mail-bank");
|
205 |
+
$mb_popup_your_name_tooltip = __("In this field, You would need to provide your name which will be sent along with your request", "wp-mail-bank");
|
206 |
+
$mb_important_disclaimer = __("Important Disclaimer!", "wp-mail-bank");
|
207 |
+
$mb_popup_your_email_tooltip = __("In this field, You would need to provide your valid email which wiil be sent along with your request", "wp-mail-bank");
|
208 |
+
$mb_popup_query_tooltip = __("Please enter your query.", "wp-mail-bank");
|
209 |
+
$mb_popup_query_placeholder = __("Please enter the query.", "wp-mail-bank");
|
210 |
+
$mb_manage_backups_close = __("Close", "wp-mail-bank");
|
211 |
+
$mb_feature_requests_send_request = __("Send Request", "wp-mail-bank");
|
212 |
+
$mb_translation_request = __("Translation Request", "wp-mail-bank");
|
213 |
+
$mb_confirm_close = __("Are you sure you want to close without sending Translation Request?", "wp-mail-bank");
|
214 |
+
$mb_feature_requests_your_email = __("Your Email", "wp-mail-bank");
|
215 |
+
$mb_feature_requests_your_name = __("Your Name", "wp-mail-bank");
|
216 |
+
$mb_feature_requests_your_name_placeholder = __("Please provide your Name", "wp-mail-bank");
|
217 |
+
|
218 |
+
|
219 |
+
// Common Variables
|
220 |
+
$mb_status_sent = __("Sent", "wp-mail-bank");
|
221 |
+
$mb_status_not_sent = __("Not Sent", "wp-mail-bank");
|
222 |
+
$mb_user_access_message = __("You don't have Sufficient Access to this Page. Kindly contact the Administrator for more Privileges", "wp-mail-bank");
|
223 |
+
$mb_enable = __("Enable", "wp-mail-bank");
|
224 |
+
$mb_disable = __("Disable", "wp-mail-bank");
|
225 |
+
$mb_override = __("Override", "wp-mail-bank");
|
226 |
+
$mb_dont_override = __("Don't Override", "wp-mail-bank");
|
227 |
+
$mb_save_changes = __("Save Settings", "wp-mail-bank");
|
228 |
+
$mb_subject = __("Subject", "wp-mail-bank");
|
229 |
+
$mb_next_step = __("Next Step", "wp-mail-bank");
|
230 |
+
$mb_previous_step = __("Previous Step", "wp-mail-bank");
|
231 |
+
$mb_upgrade_to = __("Upgrade to Premium Editions", "wp-mail-bank");
|
232 |
+
|
233 |
+
// Email Setup
|
234 |
+
$mb_email_configuration_cc_label = __("Cc", "wp-mail-bank");
|
235 |
+
$mb_email_configuration_bcc_label = __("Bcc", "wp-mail-bank");
|
236 |
+
$mb_email_configuration_cc_email_address_tooltip = __("Please provide valid Cc Email Address", "wp-mail-bank");
|
237 |
+
$mb_email_configuration_bcc_email_address_tooltip = __("Please provide valid Bcc Email Address", "wp-mail-bank");
|
238 |
+
$mb_email_configuration_cc_email_placeholder = __("Please provide Cc Email", "wp-mail-bank");
|
239 |
+
$mb_email_configuration_bcc_email_placeholder = __("Please provide Bcc Email", "wp-mail-bank");
|
240 |
+
$mb_email_configuration_mailer_settings_tab = __("Mailer Settings", "wp-mail-bank");
|
241 |
+
$mb_email_configuration_test_email_tab = __("Test Email", "wp-mail-bank");
|
242 |
+
$mb_email_configuration_from_name = __("From Name", "wp-mail-bank");
|
243 |
+
$mb_email_configuration_from_name_tooltip = __("From Name is the inbox field that tells your recipient who sent the messages. If you would like to override the pre-configured From Name, then you would need to insert the name in the inbox field", "wp-mail-bank");
|
244 |
+
$mb_email_configuration_from_name_placeholder = __("Please provide From Name", "wp-mail-bank");
|
245 |
+
$mb_email_configuration_from_email = __("From Email", "wp-mail-bank");
|
246 |
+
$mb_email_address_tooltip = __("From Email is the inbox field that tells your recipient from which Email Address the messages are coming. If you would like to override the pre-configured From Email, then you would need to insert an Email Address in the inbox field", "wp-mail-bank");
|
247 |
+
$mb_email_configuration_from_email_placeholder = __("Please provide From Email Address", "wp-mail-bank");
|
248 |
+
$mb_email_configuration_mailer_type = __("Mailer Type", "wp-mail-bank");
|
249 |
+
$mb_email_configuration_mailer_type_tooltip = __("This field provides you an ability to choose a specific option for Mailer Type. If you would like to send an Email via SMTP mailer, you would need to select Send Email via SMTP from the drop down or you could use PHP mail () Function", "wp-mail-bank");
|
250 |
+
$mb_email_configuration_send_email_via_smtp = __("Send Email via SMTP", "wp-mail-bank");
|
251 |
+
$mb_email_configuration_use_php_mail_function = __("Use The PHP mail() Function", "wp-mail-bank");
|
252 |
+
$mb_email_configuration_smtp_host = __("SMTP Host", "wp-mail-bank");
|
253 |
+
$mb_email_configuration_smtp_host_tooltip = __("If you would like to send an Email via different host, you would need to insert that specific host name like smtp.gmail.com in the inbox field", "wp-mail-bank");
|
254 |
+
$mb_feature_requests_your_email_placeholder = __("Please provide your Email Address", "wp-mail-bank");
|
255 |
+
$mb_email_configuration_smtp_host_placeholder = __("Please provide SMTP Host", "wp-mail-bank");
|
256 |
+
$mb_email_configuration_smtp_port = __("SMTP Port", "wp-mail-bank");
|
257 |
+
$mb_email_configuration_smtp_port_tooltip = __("This inbox field is specified to provide a valid SMTP Port for authentication", "wp-mail-bank");
|
258 |
+
$mb_email_configuration_smtp_port_placeholder = __("Please provide SMTP Port", "wp-mail-bank");
|
259 |
+
$mb_email_configuration_encryption = __("Encryption", "wp-mail-bank");
|
260 |
+
$mb_email_configuration_encryption_tooltip = __("It provides you an ability to choose a specific option for Encryption. If you would like to send an Email with TLS encryption, you would need to select Use TLS Encryption from the drop down or you could use SSL Encryption. For that you would need to select Use SSL Encryption from the drop down. If you would like to send an Email without encryption, you would need to select No Encryption from the drop down", "wp-mail-bank");
|
261 |
+
$mb_email_configuration_no_encryption = __("No Encryption", "wp-mail-bank");
|
262 |
+
$mb_email_configuration_use_ssl_encryption = __("Use SSL Encryption", "wp-mail-bank");
|
263 |
+
$mb_email_configuration_use_tls_encryption = __("Use TLS Encryption", "wp-mail-bank");
|
264 |
+
$mb_email_configuration_authentication = __("Authentication", "wp-mail-bank");
|
265 |
+
$mb_email_configuration_authentication_tooltip = __("This inbox field allows you to choose an appropriate option for authentication. It provides you the Two-way authentication factor; If you would like to authenticate yourself via Username and Password, you would need to select Use Username and Password from the drop down. You can also authenticate by an OAuth 2.0 protocol, which requires Client Id and Secret Key, for that you would need to select Use OAuth (Client ID and Secret Key) from the drop down. You can easily get Client Id and Secret Key from respective SMTP Server Developers section", "wp-mail-bank");
|
266 |
+
$mb_email_configuration_use_smtp_authentication = __("Use SMTP Authentication", "wp-mail-bank");
|
267 |
+
$mb_email_configuration_donot_use_authentication = __("Don't Use SMTP Authentication", "wp-mail-bank");
|
268 |
+
$mb_email_configuration_test_email_address = __("Test Email Address", "wp-mail-bank");
|
269 |
+
$mb_email_configuration_test_email_address_tooltip = __("In this field, you would need to provide a valid Email Address in the inbox field on which you would like to receive Test email", "wp-mail-bank");
|
270 |
+
$mb_email_configuration_test_email_address_placeholder = __("Please provide Test Email Address", "wp-mail-bank");
|
271 |
+
$mb_email_configuration_subject_test_tooltip = __("In this field, you would need to provide a subject for Test Email", "wp-mail-bank");
|
272 |
+
$mb_email_configuration_subject_test_placeholder = __("Please provide Subject", "wp-mail-bank");
|
273 |
+
$mb_email_configuration_content = __("Email Content", "wp-mail-bank");
|
274 |
+
$mb_email_configuration_content_tooltip = __("In this field, you would need to provide the content for Test Email", "wp-mail-bank");
|
275 |
+
$mb_email_configuration_send_test_email = __("Send Test Email", "wp-mail-bank");
|
276 |
+
$mb_email_configuration_smtp_debugging_output = __("SMTP Debugging Output", "wp-mail-bank");
|
277 |
+
$mb_email_configuration_send_test_email_textarea = __("Checking your settings", "wp-mail-bank");
|
278 |
+
$mb_email_configuration_result = __("Result", "wp-mail-bank");
|
279 |
+
$mb_email_configuration_send_another_test_email = __("Send Another Test Email", "wp-mail-bank");
|
280 |
+
$mb_email_configuration_enable_from_name = __("From Name Configuration", "wp-mail-bank");
|
281 |
+
$mb_email_configuration_enable_from_name_tooltip = __("If you would like to override the pre-configured name which will be used while sending Emails, then you would need to choose Override from the drop down and vice-versa", "wp-mail-bank");
|
282 |
+
$mb_email_configuration_enable_from_email = __("From Email Configuration", "wp-mail-bank");
|
283 |
+
$mb_email_configuration_enable_from_email_tooltip = __("If you would like to override your pre-configured Email Address which will be used while sending Emails, then you would need to choose Override from the drop down and vice-versa", "wp-mail-bank");
|
284 |
+
$mb_email_configuration_username = __("Username", "wp-mail-bank");
|
285 |
+
$mb_email_configuration_username_tooltip = __("In this field, you would need to provide a username to authenticate your SMTP details", "wp-mail-bank");
|
286 |
+
$mb_email_configuration_username_placeholder = __("Please provide username", "wp-mail-bank");
|
287 |
+
$mb_email_configuration_password = __("Password", "wp-mail-bank");
|
288 |
+
$mb_email_configuration_password_tooltip = __("In this field, you would need to provide a password to authenticate your SMTP details", "wp-mail-bank");
|
289 |
+
$mb_email_configuration_password_placeholder = __("Please provide password", "wp-mail-bank");
|
290 |
+
$mb_email_configuration_redirect_uri = __("Redirect URI", "wp-mail-bank");
|
291 |
+
$mb_email_configuration_redirect_uri_tooltip = __("Please copy this Redirect URI and Paste into Redirect URI field when creating your app", "wp-mail-bank");
|
292 |
+
$mb_email_configuration_use_oauth = __("Use OAuth (Client Id and Secret Key required)", "wp-mail-bank");
|
293 |
+
$mb_email_configuration_none = __("None", "wp-mail-bank");
|
294 |
+
$mb_email_configuration_use_plain_authentication = __("Plain Authentication", "wp-mail-bank");
|
295 |
+
$mb_email_configuration_cram_md5 = __("Cram-MD5", "wp-mail-bank");
|
296 |
+
$mb_email_configuration_login = __("Login", "wp-mail-bank");
|
297 |
+
$mb_email_configuration_client_id = __("Client Id", "wp-mail-bank");
|
298 |
+
$mb_email_configuration_client_secret = __("Secret Key", "wp-mail-bank");
|
299 |
+
$mb_email_configuration_client_id_tooltip = __("Please provide valid Client Id issued by your SMTP Host", "wp-mail-bank");
|
300 |
+
$mb_email_configuration_client_secret_tooltip = __("Please provide valid Secret Key issued by your SMTP Host", "wp-mail-bank");
|
301 |
+
$mb_email_configuration_client_id_placeholder = __("Please provide Client Id", "wp-mail-bank");
|
302 |
+
$mb_email_configuration_client_secret_placeholder = __("Please provide Secret Key", "wp-mail-bank");
|
303 |
+
$mb_email_configuration_tick_for_sent_mail = __("Yes, automatically send a Test Email upon clicking on the Next Step Button to verify settings", "wp-mail-bank");
|
304 |
+
$mb_email_configuration_email_address = __("Email Address", "wp-mail-bank");
|
305 |
+
$mb_email_configuration_email_address_tooltip = __("In this field, you would need to add a valid Email Address in the inbox field from which you would like to send Emails", "wp-mail-bank");
|
306 |
+
$mb_email_configuration_email_address_placeholder = __("Please provide valid Email Address", "wp-mail-bank");
|
307 |
+
$mb_email_configuration_reply_to = __("Reply To", "wp-mail-bank");
|
308 |
+
$mb_email_configuration_reply_to_tooltip = __("In this field, you would need to add a valid Email Address that is automatically inserted into the Reply To field when a user replies to an email message", "wp-mail-bank");
|
309 |
+
$mb_email_configuration_reply_to_placeholder = __("Please provide Reply To Email Address", "wp-mail-bank");
|
310 |
+
$mb_email_configuration_get_google_credentials = __("Get Google Client Id and Secret Key", "wp-mail-bank");
|
311 |
+
$mb_email_configuration_get_microsoft_credentials = __("Get Microsoft Client Id and Secret Key", "wp-mail-bank");
|
312 |
+
$mb_email_configuration_get_yahoo_credentials = __("Get Yahoo Client Id and Secret Key", "wp-mail-bank");
|
313 |
+
|
314 |
+
// Email Logs
|
315 |
+
$mb_start_date_title = __("Start Date", "wp-mail-bank");
|
316 |
+
$mb_resend = __("Resend", "wp-mail-bank");
|
317 |
+
$mb_start_date_placeholder = __("Please provide Start Date", "wp-mail-bank");
|
318 |
+
$mb_start_date_tooltip = __("This field shows starting date of Email Logs", "wp-mail-bank");
|
319 |
+
$mb_end_date_title = __("End Date", "wp-mail-bank");
|
320 |
+
$mb_end_date_placeholder = __("Please provide End Date", "wp-mail-bank");
|
321 |
+
$mb_end_date_tooltip = __("This field shows ending date of Email Logs", "wp-mail-bank");
|
322 |
+
$mb_submit = __("Submit", "wp-mail-bank");
|
323 |
+
$mb_email_logs_bulk_action = __("Bulk Action", "wp-mail-bank");
|
324 |
+
$mb_email_logs_delete = __("Delete", "wp-mail-bank");
|
325 |
+
$mb_email_logs_apply = __("Apply", "wp-mail-bank");
|
326 |
+
$mb_email_logs_email_to = __("Email To", "wp-mail-bank");
|
327 |
+
$mb_email_logs_actions = __("Action", "wp-mail-bank");
|
328 |
+
$mb_email_logs_show_details = __("Show Details", "wp-mail-bank");
|
329 |
+
$mb_email_logs_close = __("Close", "wp-mail-bank");
|
330 |
+
$mb_email_logs_debugging_output = __("Debugging Output", "wp-mail-bank");
|
331 |
+
$mb_email_logs_show_outputs = __("Show Debugging Output", "wp-mail-bank");
|
332 |
+
$mb_email_sent_to = __("Email Sent To", "wp-mail-bank");
|
333 |
+
$mb_date_time = __("Date/Time", "wp-mail-bank");
|
334 |
+
$mb_email_logs_status = __("Status", "wp-mail-bank");
|
335 |
+
$mb_from = __("From", "wp-mail-bank");
|
336 |
+
$mb_back_to_email_logs = __("Back to Email Logs", "wp-mail-bank");
|
337 |
+
|
338 |
+
// Settings
|
339 |
+
$mb_settings_debug_mode = __("Debug Mode", "wp-mail-bank");
|
340 |
+
$mb_settings_debug_mode_tooltip = __("Please choose a specific option for Debug Mode", "wp-mail-bank");
|
341 |
+
$mb_remove_tables_title = __("Remove Tables at Uninstall", "wp-mail-bank");
|
342 |
+
$mb_remove_tables_tooltip = __("Please choose a specific option whether to allow Remove Tables at Uninstall", "wp-mail-bank");
|
343 |
+
$mb_monitoring_email_log_title = __("Monitoring Email Logs", "wp-mail-bank");
|
344 |
+
$mb_monitoring_email_log_tooltip = __("This field is used to allow Email Logs to monitor or not", "wp-mail-bank");
|
345 |
+
|
346 |
+
// Roles and Capabilities
|
347 |
+
$mb_roles_capabilities_show_menu = __("Show Mail Bank Menu", "wp-mail-bank");
|
348 |
+
$mb_roles_capabilities_show_menu_tooltip = __("Please choose a specific role who can see Sidebar Menu", "wp-mail-bank");
|
349 |
+
$mb_roles_capabilities_administrator = __("Administrator", "wp-mail-bank");
|
350 |
+
$mb_roles_capabilities_author = __("Author", "wp-mail-bank");
|
351 |
+
$mb_roles_capabilities_editor = __("Editor", "wp-mail-bank");
|
352 |
+
$mb_roles_capabilities_contributor = __("Contributor", "wp-mail-bank");
|
353 |
+
$mb_roles_capabilities_subscriber = __("Subscriber", "wp-mail-bank");
|
354 |
+
$mb_roles_capabilities_others = __("Others", "wp-mail-bank");
|
355 |
+
$mb_roles_capabilities_topbar_menu = __("Show Mail Bank Top Bar Menu", "wp-mail-bank");
|
356 |
+
$mb_roles_capabilities_topbar_menu_tooltip = __("Please choose a specific option from Mail Bank Top Bar Menu", "wp-mail-bank");
|
357 |
+
$mb_roles_capabilities_administrator_role = __("An Administrator Role can do the following ", "wp-mail-bank");
|
358 |
+
$mb_roles_capabilities_administrator_role_tooltip = __("Please choose specific page available for the Administrator Access", "wp-mail-bank");
|
359 |
+
$mb_roles_capabilities_full_control = __("Full Control", "wp-mail-bank");
|
360 |
+
$mb_roles_capabilities_author_role = __("An Author Role can do the following ", "wp-mail-bank");
|
361 |
+
$mb_roles_capabilities_author_role_tooltip = __("Please choose specific page available for Author Access", "wp-mail-bank");
|
362 |
+
$mb_roles_capabilities_editor_role = __("An Editor Role can do the following ", "wp-mail-bank");
|
363 |
+
$mb_roles_capabilities_editor_role_tooltip = __("Please choose specific page available for Editor Access", "wp-mail-bank");
|
364 |
+
$mb_roles_capabilities_contributor_role = __("A Contributor Role can do the following ", "wp-mail-bank");
|
365 |
+
$mb_roles_capabilities_contributor_role_tooltip = __("Please choose specific page available for Contributor Access", "wp-mail-bank");
|
366 |
+
$mb_roles_capabilities_other_role = __("Other Roles can do the following ", "wp-mail-bank");
|
367 |
+
$mb_roles_capabilities_other_role_tooltip = __("Please choose specific page available for Others Role Access", "wp-mail-bank");
|
368 |
+
$mb_roles_capabilities_other_roles_capabilities = __("Please tick the appropriate capabilities for security purposes ", "wp-mail-bank");
|
369 |
+
$mb_roles_capabilities_other_roles_capabilities_tooltip = __("Only users with these capabilities can access Mail Bank", "wp-mail-bank");
|
370 |
+
$mb_roles_capabilities_subscriber_role = __("A Subscriber Role can do the following", "wp-mail-bank");
|
371 |
+
$mb_roles_capabilities_subscriber_role_tooltip = __("Please choose specific page available for Subscriber Access", "wp-mail-bank");
|
372 |
+
|
373 |
+
// Feedbacks
|
374 |
+
$mb_feedbacks_thank_you = __("Thank You!", "wp-mail-bank");
|
375 |
+
$mb_feedbacks_suggest_some_features = __("Kindly fill in the below form, if you would like to suggest some features which are not in the Plugin", "wp-mail-bank");
|
376 |
+
$mb_feedbacks_suggestion_complaint = __("If you also have any suggestion/complaint, you can use the same form below", "wp-mail-bank");
|
377 |
+
$mb_feedbacks_write_us_on = __("You can also write us on", "wp-mail-bank");
|
378 |
+
$mb_feedbacks_your_name = __("Your Name", "wp-mail-bank");
|
379 |
+
$mb_feedbacks_your_name_tooltip = __("Please provide your Name which will be sent along with your Feedback", "wp-mail-bank");
|
380 |
+
$mb_feedbacks_your_name_placeholder = __("Please provide your Name", "wp-mail-bank");
|
381 |
+
$mb_feedbacks_your_email = __("Your Email", "wp-mail-bank");
|
382 |
+
$mb_feedbacks_your_email_tooltip = __("Please provide your Email Address which will be sent along with your Feedback", "wp-mail-bank");
|
383 |
+
$mb_feedbacks_your_email_placeholder = __("Please provide your Email Address", "wp-mail-bank");
|
384 |
+
$mb_feedbacks_tooltip = __("Please provide your Feedback which will be sent along", "wp-mail-bank");
|
385 |
+
$mb_feedbacks_placeholder = __("Please provide your Feedback", "wp-mail-bank");
|
386 |
+
$mb_feedbacks_send_feedback = __("Send Feedback", "wp-mail-bank");
|
387 |
+
$mb_feature_request_message = __("Your request Email has been sent Successfully", "wp-mail-bank");
|
388 |
+
|
389 |
+
// Test Email
|
390 |
+
$mb_test_email_sending_test_email = __("Sending Test Email to", "wp-mail-bank");
|
391 |
+
$mb_test_email_status = __("Email Status", "wp-mail-bank");
|
392 |
+
|
393 |
+
// Connectivity Test
|
394 |
+
$mb_connectivity_test = __("Connectivity Test", "wp-mail-bank");
|
395 |
+
$mb_transport = __("Transport", "wp-mail-bank");
|
396 |
+
$mb_socket = __("Socket", "wp-mail-bank");
|
397 |
+
$mb_status = __("Status", "wp-mail-bank");
|
398 |
+
$mb_service_available = __("Service Available", "wp-mail-bank");
|
399 |
+
$mb_server_id = __("Server ID", "wp-mail-bank");
|
400 |
+
$mb_authentication = __("Authentication", "wp-mail-bank");
|
401 |
+
$mb_plain = __("Plain", "wp-mail-bank");
|
402 |
+
$mb_cram_md5 = __("CRAM-MD5", "wp-mail-bank");
|
403 |
+
$mb_0auth = __("OAuth 2.0", "wp-mail-bank");
|
404 |
+
$mb_smtp = __("SMTP", "wp-mail-bank");
|
405 |
+
$mb_gmail_api = __("Gmail API", "wp-mail-bank");
|
406 |
+
$mb_mail_server_host = __("Outgoing Mail Server Hostname", "wp-mail-bank");
|
407 |
+
$mb_begin_test = __("Begin Test", "wp-mail-bank");
|
408 |
+
$mb_localhost = __("localhost", "wp-mail-bank");
|
409 |
+
$mb_mail_server_tooltip = __("In this field, you would need to provide Outgoing Mail Server Hostname", "wp-mail-bank");
|
410 |
+
}
|
411 |
}
|
includes/yahoo-authentication-mail-bank.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
if (!defined("ABSPATH")) {
|
4 |
exit;
|
5 |
} // Exit if accessed directly
|
@@ -10,77 +9,70 @@ if (file_exists(MAIL_BANK_DIR_PATH . "includes/token-manager-mail-bank.php")) {
|
|
10 |
if (!class_exists("yahoo_authentication_mail_bank")) {
|
11 |
|
12 |
class yahoo_authentication_mail_bank extends token_manager_mail_bank {
|
13 |
-
|
14 |
public
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
// Constructor
|
21 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
}
|
28 |
-
|
29 |
// This function is used to get token code.
|
30 |
public function get_token_code($transactionId) {
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
}
|
40 |
-
|
41 |
// This function is used to process token code
|
42 |
public function process_token_Code($transactionId) {
|
43 |
-
|
44 |
-
|
45 |
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
}
|
66 |
-
|
67 |
//This function is used to get refresh token for new access token
|
68 |
public function get_refresh_token() {
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
}
|
83 |
-
|
84 |
}
|
85 |
-
|
86 |
}
|
1 |
<?php
|
|
|
2 |
if (!defined("ABSPATH")) {
|
3 |
exit;
|
4 |
} // Exit if accessed directly
|
9 |
if (!class_exists("yahoo_authentication_mail_bank")) {
|
10 |
|
11 |
class yahoo_authentication_mail_bank extends token_manager_mail_bank {
|
|
|
12 |
public
|
13 |
+
$client_id,
|
14 |
+
$client_secret,
|
15 |
+
$callback_uri,
|
16 |
+
$token_url;
|
|
|
17 |
// Constructor
|
18 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
19 |
+
$this->client_id = $client_id;
|
20 |
+
$this->client_secret = $client_secret;
|
21 |
+
$this->callback_uri = $callback_uri;
|
22 |
+
$this->token_url = "https://api.login.yahoo.com/oauth2/get_token";
|
23 |
+
parent::__construct($client_id, $client_secret, $authorization_token, $callback_uri);
|
24 |
}
|
|
|
25 |
// This function is used to get token code.
|
26 |
public function get_token_code($transactionId) {
|
27 |
+
$configurations = array(
|
28 |
+
"response_type" => "code",
|
29 |
+
"redirect_uri" => urlencode($this->callback_uri),
|
30 |
+
"client_id" => $this->client_id,
|
31 |
+
"state" => $transactionId,
|
32 |
+
"language" => get_locale()
|
33 |
+
);
|
34 |
+
echo $authUrl = "https://api.login.yahoo.com/oauth2/request_auth?" . build_query($configurations);
|
35 |
}
|
|
|
36 |
// This function is used to process token code
|
37 |
public function process_token_Code($transactionId) {
|
38 |
+
if (isset($_REQUEST["access_token"])) {
|
39 |
+
$code = esc_attr($_REQUEST["access_token"]);
|
40 |
|
41 |
+
$headers = array(
|
42 |
+
"Authorization" => sprintf("Basic %s", base64_encode($this->client_id . ':' . $this->client_secret))
|
43 |
+
);
|
44 |
+
$configurations = array(
|
45 |
+
"code" => $code,
|
46 |
+
"grant_type" => "authorization_code",
|
47 |
+
"redirect_uri" => $this->callback_uri
|
48 |
+
);
|
49 |
+
$response = mail_bank_zend_mail_helper::retrieve_body_from_response_mail_bank($this->token_url, $configurations, $headers);
|
50 |
+
$yahoo_secret_key = $this->process_response($response);
|
51 |
+
if (isset($yahoo_secret_key->error)) {
|
52 |
+
return $yahoo_secret_key;
|
53 |
+
} else {
|
54 |
+
$this->get_authorization_token()->set_vendorname_mail_bank("yahoo");
|
55 |
+
return "1";
|
56 |
+
}
|
57 |
+
} else {
|
58 |
+
return false;
|
59 |
+
}
|
60 |
}
|
|
|
61 |
//This function is used to get refresh token for new access token
|
62 |
public function get_refresh_token() {
|
63 |
+
$refresh_url = $this->token_url;
|
64 |
+
$callback_uri = $this->callback_uri;
|
65 |
+
$headers = array(
|
66 |
+
"Authorization" => sprintf("Basic %s", base64_encode($this->client_id . ':' . $this->client_secret))
|
67 |
+
);
|
68 |
|
69 |
+
$configurations = array(
|
70 |
+
"redirect_uri" => $callback_uri,
|
71 |
+
"grant_type" => "refresh_token",
|
72 |
+
"refresh_token" => $this->get_authorization_token()->retrieve_refresh_token_mail_bank()
|
73 |
+
);
|
74 |
+
$response = mail_bank_zend_mail_helper::retrieve_body_from_response_mail_bank($this->token_url, $configurations, $headers);
|
75 |
+
$this->process_response($response);
|
76 |
}
|
|
|
77 |
}
|
|
|
78 |
}
|
languages/{wp-mail-bank-vi.mo → wp-mail-bank-vi_VN.mo}
RENAMED
Binary file
|
languages/{wp-mail-bank-vi.po → wp-mail-bank-vi_VN.po}
RENAMED
@@ -3,7 +3,7 @@ msgstr ""
|
|
3 |
"Project-Id-Version: Mail Bank\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: 2017-05-22 17:39+0530\n"
|
6 |
-
"PO-Revision-Date: 2017-06-
|
7 |
"Last-Translator: Tech Banker\n"
|
8 |
"Language-Team: Vietnamese (Vietnam)\n"
|
9 |
"Language: vi_VN\n"
|
@@ -11,7 +11,7 @@ msgstr ""
|
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
"Plural-Forms: nplurals=1; plural=0;\n"
|
14 |
-
"X-Generator: Poedit
|
15 |
"X-Loco-Source-Locale: en-IN\n"
|
16 |
"X-Loco-Project-Id: 22543\n"
|
17 |
"X-Loco-Api-Version: 1.0.17 20170516-2\n"
|
3 |
"Project-Id-Version: Mail Bank\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: 2017-05-22 17:39+0530\n"
|
6 |
+
"PO-Revision-Date: 2017-06-06 11:39+0530\n"
|
7 |
"Last-Translator: Tech Banker\n"
|
8 |
"Language-Team: Vietnamese (Vietnam)\n"
|
9 |
"Language: vi_VN\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
"Plural-Forms: nplurals=1; plural=0;\n"
|
14 |
+
"X-Generator: Poedit 1.8.12\n"
|
15 |
"X-Loco-Source-Locale: en-IN\n"
|
16 |
"X-Loco-Project-Id: 22543\n"
|
17 |
"X-Loco-Api-Version: 1.0.17 20170516-2\n"
|
lib/action-library.php
CHANGED
@@ -15,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
-
|
19 |
-
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
@@ -24,293 +24,292 @@ if (!is_user_logged_in()) {
|
|
24 |
} else {
|
25 |
|
26 |
function get_mail_bank_details_maybe_unserialize($email_data_manage, $mb_date1, $mb_date2) {
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
}
|
37 |
-
|
38 |
if (isset($_REQUEST["param"])) {
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
|
112 |
-
|
113 |
-
|
114 |
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
|
253 |
-
|
254 |
|
255 |
-
|
256 |
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
}
|
315 |
}
|
316 |
}
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
24 |
} else {
|
25 |
|
26 |
function get_mail_bank_details_maybe_unserialize($email_data_manage, $mb_date1, $mb_date2) {
|
27 |
+
$email_details = array();
|
28 |
+
foreach ($email_data_manage as $raw_row) {
|
29 |
+
$unserialize_data = maybe_unserialize($raw_row->meta_value);
|
30 |
+
$unserialize_data["id"] = $raw_row->id;
|
31 |
+
$unserialize_data["meta_id"] = $raw_row->meta_id;
|
32 |
+
if ($unserialize_data["timestamp"] >= $mb_date1 && $unserialize_data["timestamp"] <= $mb_date2)
|
33 |
+
array_push($email_details, $unserialize_data);
|
34 |
+
}
|
35 |
+
return $email_details;
|
36 |
}
|
|
|
37 |
if (isset($_REQUEST["param"])) {
|
38 |
+
$obj_dbHelper_mail_bank = new dbHelper_mail_bank();
|
39 |
+
switch (esc_attr($_REQUEST["param"])) {
|
40 |
+
case "wizard_wp_mail_bank":
|
41 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "wp_mail_bank_check_status")) {
|
42 |
+
$type = isset($_REQUEST["type"]) ? esc_attr($_REQUEST["type"]) : "";
|
43 |
+
update_option("wp-mail-bank-wizard-set-up", $type);
|
44 |
+
if ($type == "opt_in") {
|
45 |
+
$plugin_info_wp_mail_bank = new plugin_info_wp_mail_bank();
|
46 |
+
global $wp_version;
|
47 |
+
$url = tech_banker_stats_url . "/wp-admin/admin-ajax.php";
|
48 |
+
$theme_details = array();
|
49 |
+
if ($wp_version >= 3.4) {
|
50 |
+
$active_theme = wp_get_theme();
|
51 |
+
$theme_details["theme_name"] = strip_tags($active_theme->Name);
|
52 |
+
$theme_details["theme_version"] = strip_tags($active_theme->Version);
|
53 |
+
$theme_details["author_url"] = strip_tags($active_theme->{"Author URI"});
|
54 |
+
}
|
55 |
|
56 |
+
$plugin_stat_data = array();
|
57 |
+
$plugin_stat_data["plugin_slug"] = "wp-mail-bank";
|
58 |
+
$plugin_stat_data["type"] = "standard_edition";
|
59 |
+
$plugin_stat_data["version_number"] = mail_bank_version_number;
|
60 |
+
$plugin_stat_data["status"] = $type;
|
61 |
+
$plugin_stat_data["event"] = "activate";
|
62 |
+
$plugin_stat_data["domain_url"] = site_url();
|
63 |
+
$plugin_stat_data["wp_language"] = defined("WPLANG") && WPLANG ? WPLANG : get_locale();
|
64 |
+
$plugin_stat_data["email"] = get_option("admin_email");
|
65 |
+
$plugin_stat_data["wp_version"] = $wp_version;
|
66 |
+
$plugin_stat_data["php_version"] = esc_html(phpversion());
|
67 |
+
$plugin_stat_data["mysql_version"] = $wpdb->db_version();
|
68 |
+
$plugin_stat_data["max_input_vars"] = ini_get("max_input_vars");
|
69 |
+
$plugin_stat_data["operating_system"] = PHP_OS . " (" . PHP_INT_SIZE * 8 . ") BIT";
|
70 |
+
$plugin_stat_data["php_memory_limit"] = ini_get("memory_limit") ? ini_get("memory_limit") : "N/A";
|
71 |
+
$plugin_stat_data["extensions"] = get_loaded_extensions();
|
72 |
+
$plugin_stat_data["plugins"] = $plugin_info_wp_mail_bank->get_plugin_info_wp_mail_bank();
|
73 |
+
$plugin_stat_data["themes"] = $theme_details;
|
74 |
|
75 |
+
$response = wp_safe_remote_post($url, array
|
76 |
+
(
|
77 |
+
"method" => "POST",
|
78 |
+
"timeout" => 45,
|
79 |
+
"redirection" => 5,
|
80 |
+
"httpversion" => "1.0",
|
81 |
+
"blocking" => true,
|
82 |
+
"headers" => array(),
|
83 |
+
"body" => array("data" => serialize($plugin_stat_data), "site_id" => get_option("mb_tech_banker_site_id") != "" ? get_option("mb_tech_banker_site_id") : "", "action" => "plugin_analysis_data")
|
84 |
+
));
|
85 |
+
if (!is_wp_error($response)) {
|
86 |
+
$response["body"] != "" ? update_option("mb_tech_banker_site_id", $response["body"]) : "";
|
87 |
+
}
|
88 |
+
}
|
89 |
+
}
|
90 |
+
break;
|
91 |
|
92 |
+
case "mail_bank_set_hostname_port_module":
|
93 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "mail_bank_set_hostname_port")) {
|
94 |
+
$smtp_user = isset($_REQUEST["smtp_user"]) ? esc_attr($_REQUEST["smtp_user"]) : "";
|
95 |
+
$hostname = substr(strrchr($smtp_user, "@"), 1);
|
96 |
+
$obj_mail_bank_discover_host = new mail_bank_discover_host();
|
97 |
+
$hostname_to_set = $obj_mail_bank_discover_host->get_smtp_from_email($hostname);
|
98 |
+
echo $hostname_to_set;
|
99 |
+
}
|
100 |
+
break;
|
101 |
|
102 |
+
case "mail_bank_test_email_configuration_module":
|
103 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "mail_bank_test_email_configuration")) {
|
104 |
+
parse_str(isset($_REQUEST["data"]) ? base64_decode($_REQUEST["data"]) : "", $form_data);
|
105 |
+
global $phpmailer;
|
106 |
+
$logs = array();
|
107 |
+
if (!is_object($phpmailer) || !is_a($phpmailer, "PHPMailer")) {
|
108 |
+
if (file_exists(ABSPATH . WPINC . "/class-phpmailer.php"))
|
109 |
+
require_once ABSPATH . WPINC . "/class-phpmailer.php";
|
110 |
|
111 |
+
if (file_exists(ABSPATH . WPINC . "/class-smtp.php"))
|
112 |
+
require_once ABSPATH . WPINC . "/class-smtp.php";
|
113 |
|
114 |
+
$phpmailer = new PHPMailer(true);
|
115 |
+
}
|
116 |
+
$phpmailer->SMTPDebug = true;
|
117 |
|
118 |
+
$to = isset($form_data["ux_txt_email"]) ? esc_attr($form_data["ux_txt_email"]) : "";
|
119 |
+
$subject = stripcslashes(htmlspecialchars_decode($form_data["ux_txt_subject"], ENT_QUOTES));
|
120 |
+
$message = htmlspecialchars_decode(!empty($form_data["ux_email_configuration_text_area"]) ? esc_attr($form_data["ux_email_configuration_text_area"]) : "This is a demo Test Email for Email Setup - Mail Bank");
|
121 |
+
$headers = "Content-Type: text/html; charset= utf-8" . "\r\n";
|
122 |
+
$result = wp_mail($to, $subject, $message, $headers);
|
123 |
+
$mb_email_configuration_data = $wpdb->get_row
|
124 |
+
(
|
125 |
+
$wpdb->prepare
|
126 |
+
(
|
127 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
128 |
+
" WHERE meta_key = %s", "email_configuration"
|
129 |
+
)
|
130 |
+
);
|
131 |
+
$unserialized_email_configuration_data = maybe_unserialize($mb_email_configuration_data->meta_value);
|
132 |
|
133 |
+
$settings_data = $wpdb->get_var
|
134 |
+
(
|
135 |
+
$wpdb->prepare
|
136 |
+
(
|
137 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
138 |
+
" WHERE meta_key=%s", "settings"
|
139 |
+
)
|
140 |
+
);
|
141 |
+
$settings_data_array = maybe_unserialize($settings_data);
|
142 |
+
$debugging_output = "";
|
143 |
+
$mailer_type_mail_bank = isset($unserialized_email_configuration_data["mailer_type"]) ? esc_attr($unserialized_email_configuration_data["mailer_type"]) : "";
|
144 |
|
145 |
+
if ($mailer_type_mail_bank == "smtp") {
|
146 |
+
$mail_bank_mail_status = get_option("mail_bank_mail_status");
|
147 |
+
$debug_mode_mail_bank = isset($settings_data_array["debug_mode"]) ? esc_attr($settings_data_array["debug_mode"]) : "";
|
148 |
+
if ($debug_mode_mail_bank == "enable") {
|
149 |
+
$debugging_output .= $mb_email_configuration_send_test_email_textarea . "\n";
|
150 |
+
$debugging_output .= $mb_test_email_sending_test_email . " " . $to . "\n";
|
151 |
+
$debugging_output .= $mb_test_email_status . " : ";
|
152 |
+
$debugging_output .= get_option("mail_bank_is_mail_sent") == "Sent" ? $mb_status_sent : $mb_status_not_sent;
|
153 |
+
$debugging_output .= "\n----------------------------------------------------------------------------------------\n";
|
154 |
+
$debugging_output .= $mb_email_logs_debugging_output . " :\n";
|
155 |
+
$debugging_output .= "----------------------------------------------------------------------------------------\n";
|
156 |
+
}
|
157 |
+
$debugging_output .= $mail_bank_mail_status;
|
158 |
+
echo $debugging_output;
|
159 |
+
} else {
|
160 |
+
$to_address = $phpmailer->getToAddresses();
|
161 |
|
162 |
+
$email_logs_data_array = array();
|
163 |
+
$email_logs_data_array["email_to"] = $to_address[0][0];
|
164 |
+
$monitor_email_logs = isset($settings_data_array["monitor_email_logs"]) ? esc_attr($settings_data_array["monitor_email_logs"]) : "";
|
165 |
+
if ($monitor_email_logs == "enable") {
|
166 |
+
$email_logs_data_array["sender_name"] = isset($unserialized_email_configuration_data["sender_name"]) ? esc_attr($unserialized_email_configuration_data["sender_name"]) : "";
|
167 |
+
$email_logs_data_array["sender_email"] = isset($unserialized_email_configuration_data["sender_email"]) ? esc_attr($unserialized_email_configuration_data["sender_email"]) : "";
|
168 |
+
$email_logs_data_array["cc"] = "";
|
169 |
+
$email_logs_data_array["bcc"] = "";
|
170 |
+
$email_logs_data_array["subject"] = $phpmailer->Subject;
|
171 |
+
$email_logs_data_array["content"] = $phpmailer->Body;
|
172 |
+
$email_logs_data_array["timestamp"] = MAIL_BANK_LOCAL_TIME;
|
173 |
|
174 |
+
if ($result == "true" || $result == "1") {
|
175 |
+
$email_logs_data_array["status"] = "Sent";
|
176 |
+
} else {
|
177 |
+
$email_logs_data_array["status"] = "Not Sent";
|
178 |
+
}
|
179 |
+
$email_logs_id = $wpdb->get_var
|
180 |
+
(
|
181 |
+
$wpdb->prepare
|
182 |
+
(
|
183 |
+
"SELECT id FROM " . mail_bank() .
|
184 |
+
" WHERE type = %s", "email_logs"
|
185 |
+
)
|
186 |
+
);
|
187 |
|
188 |
+
$email_logs_data = array();
|
189 |
+
$email_logs_data["meta_id"] = $email_logs_id;
|
190 |
+
$email_logs_data["meta_key"] = "email_logs";
|
191 |
+
$email_logs_data["meta_value"] = serialize($email_logs_data_array);
|
192 |
+
$obj_dbHelper_mail_bank->insertCommand(mail_bank_meta(), $email_logs_data);
|
193 |
+
}
|
194 |
+
echo $result;
|
195 |
+
}
|
196 |
+
}
|
197 |
+
break;
|
198 |
|
199 |
+
case "mail_bank_settings_module":
|
200 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "mail_bank_settings")) {
|
201 |
+
parse_str(isset($_REQUEST["data"]) ? base64_decode($_REQUEST["data"]) : "", $settings_array);
|
202 |
|
203 |
+
$settings_data = array();
|
204 |
+
$settings_data["debug_mode"] = esc_attr($settings_array["ux_ddl_debug_mode"]);
|
205 |
+
$settings_data["remove_tables_at_uninstall"] = esc_attr($settings_array["ux_ddl_remove_tables"]);
|
206 |
+
$settings_data["monitor_email_logs"] = esc_attr($settings_array["ux_ddl_monitor_email_logs"]);
|
207 |
+
$where = array();
|
208 |
+
$settings_data_array = array();
|
209 |
+
$where["meta_key"] = "settings";
|
210 |
+
$settings_data_array["meta_value"] = serialize($settings_data);
|
211 |
+
$obj_dbHelper_mail_bank->updateCommand(mail_bank_meta(), $settings_data_array, $where);
|
212 |
+
}
|
213 |
+
break;
|
214 |
|
215 |
+
case "mail_bank_email_configuration_settings_module":
|
216 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "mail_bank_email_configuration_settings")) {
|
217 |
+
parse_str(isset($_REQUEST["data"]) ? base64_decode($_REQUEST["data"]) : "", $form_data);
|
218 |
+
$update_email_configuration_array = array();
|
219 |
+
$update_email_configuration_array["email_address"] = esc_attr($form_data["ux_txt_email_address"]);
|
220 |
+
$update_email_configuration_array["reply_to"] = "";
|
221 |
+
$update_email_configuration_array["cc"] = "";
|
222 |
+
$update_email_configuration_array["bcc"] = "";
|
223 |
+
$update_email_configuration_array["mailer_type"] = esc_attr($form_data["ux_ddl_type"]);
|
224 |
+
$update_email_configuration_array["sender_name_configuration"] = esc_attr($form_data["ux_ddl_from_name"]);
|
225 |
+
$update_email_configuration_array["sender_name"] = isset($form_data["ux_txt_mb_from_name"]) ? esc_html($form_data["ux_txt_mb_from_name"]) : "";
|
226 |
+
$update_email_configuration_array["from_email_configuration"] = esc_attr($form_data["ux_ddl_from_email"]);
|
227 |
+
$update_email_configuration_array["sender_email"] = isset($form_data["ux_txt_mb_from_email_configuration"]) ? esc_html($form_data["ux_txt_mb_from_email_configuration"]) : "";
|
228 |
+
$update_email_configuration_array["hostname"] = esc_html($form_data["ux_txt_host"]);
|
229 |
+
$update_email_configuration_array["port"] = intval($form_data["ux_txt_port"]);
|
230 |
+
$update_email_configuration_array["enc_type"] = esc_attr($form_data["ux_ddl_encryption"]);
|
231 |
+
$update_email_configuration_array["auth_type"] = esc_attr($form_data["ux_ddl_mb_authentication"]);
|
232 |
+
$update_email_configuration_array["client_id"] = esc_html(trim($form_data["ux_txt_client_id"]));
|
233 |
+
$update_email_configuration_array["client_secret"] = esc_html(trim($form_data["ux_txt_client_secret"]));
|
234 |
+
$update_email_configuration_array["username"] = esc_html($form_data["ux_txt_username"]);
|
235 |
+
$update_email_configuration_array["automatic_mail"] = isset($form_data["ux_chk_automatic_sent_mail"]) ? esc_html($form_data["ux_chk_automatic_sent_mail"]) : "";
|
236 |
|
237 |
+
if (preg_match('/^\**$/', $form_data["ux_txt_password"])) {
|
238 |
+
$email_configuration_data = $wpdb->get_var
|
239 |
+
(
|
240 |
+
$wpdb->prepare
|
241 |
+
(
|
242 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
243 |
+
" WHERE meta_key=%s", "email_configuration"
|
244 |
+
)
|
245 |
+
);
|
246 |
+
$email_configuration_array = maybe_unserialize($email_configuration_data);
|
247 |
+
$update_email_configuration_array["password"] = isset($email_configuration_array["password"]) ? esc_attr($email_configuration_array["password"]) : "";
|
248 |
+
} else {
|
249 |
+
$update_email_configuration_array["password"] = base64_encode(esc_html($form_data["ux_txt_password"]));
|
250 |
+
}
|
251 |
|
252 |
+
$update_email_configuration_array["redirect_uri"] = esc_html($form_data["ux_txt_redirect_uri"]);
|
253 |
|
254 |
+
update_option("update_email_configuration", $update_email_configuration_array);
|
255 |
|
256 |
+
$mail_bank_auth_host = new mail_bank_auth_host($update_email_configuration_array);
|
257 |
+
if (!in_array($form_data["ux_txt_host"], $mail_bank_auth_host->oauth_domains) && $form_data["ux_ddl_mb_authentication"] == "oauth2") {
|
258 |
+
echo "100";
|
259 |
+
die();
|
260 |
+
}
|
261 |
|
262 |
+
if ($update_email_configuration_array["auth_type"] == "oauth2" && $update_email_configuration_array["mailer_type"] == "smtp") {
|
263 |
+
if ($update_email_configuration_array["hostname"] == "smtp.gmail.com") {
|
264 |
+
$mail_bank_auth_host->google_authentication();
|
265 |
+
} elseif ($update_email_configuration_array["hostname"] == "smtp.live.com" && $update_email_configuration_array["mailer_type"] == "smtp") {
|
266 |
+
$mail_bank_auth_host->microsoft_authentication();
|
267 |
+
} elseif (in_array($update_email_configuration_array["hostname"], $mail_bank_auth_host->yahoo_domains)) {
|
268 |
+
$mail_bank_auth_host->yahoo_authentication();
|
269 |
+
}
|
270 |
+
} else {
|
271 |
+
$update_email_configuration_data_array = array();
|
272 |
+
$where = array();
|
273 |
+
$where["meta_key"] = "email_configuration";
|
274 |
+
$update_email_configuration_data_array["meta_value"] = serialize($update_email_configuration_array);
|
275 |
+
$obj_dbHelper_mail_bank->updateCommand(mail_bank_meta(), $update_email_configuration_data_array, $where);
|
276 |
+
}
|
277 |
+
}
|
278 |
+
break;
|
279 |
|
280 |
+
case "mail_bank_connectivity_test":
|
281 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "connectivity_test_nonce")) {
|
282 |
+
$host = isset($_REQUEST["smtp_host"]) ? esc_attr($_REQUEST["smtp_host"]) : "";
|
283 |
+
$ports = array(25, 587, 465, 2525, 4065, 25025);
|
284 |
+
$ports_result = array();
|
285 |
+
foreach ($ports as $port) {
|
286 |
+
$connection = @fsockopen($host, $port);
|
287 |
+
if (is_resource($connection)) {
|
288 |
+
$ports_result[$port] = "Open";
|
289 |
+
fclose($connection);
|
290 |
+
} else {
|
291 |
+
$ports_result[$port] = "Close";
|
292 |
+
}
|
293 |
+
}
|
294 |
+
foreach ($ports_result as $results => $val) {
|
295 |
+
?>
|
296 |
+
<tr>
|
297 |
+
<td>
|
298 |
+
<?php echo $mb_smtp; ?>
|
299 |
+
</td>
|
300 |
+
<td>
|
301 |
+
<?php echo $host . ":" . intval($results); ?>
|
302 |
+
</td>
|
303 |
+
<td>
|
304 |
+
<span style="<?php echo $val == 'Close' ? 'color:red' : ""; ?>"><?php echo $val; ?>
|
305 |
+
</td>
|
306 |
+
</tr>
|
307 |
+
<?php
|
308 |
+
}
|
309 |
+
}
|
310 |
+
break;
|
311 |
+
}
|
312 |
+
die();
|
313 |
}
|
314 |
}
|
315 |
}
|
lib/admin-bar-menu.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* This file is used for creating admin bar menu.
|
5 |
*
|
@@ -16,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
-
|
20 |
-
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
@@ -26,121 +25,121 @@ if (!is_user_logged_in()) {
|
|
26 |
$flag = 0;
|
27 |
|
28 |
$role_capabilities = $wpdb->get_var
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
WHERE meta_key = %s", "roles_and_capabilities"
|
34 |
-
|
35 |
);
|
36 |
|
37 |
$roles_and_capabilities_unserialized_data = maybe_unserialize($role_capabilities);
|
38 |
$capabilities = explode(",", isset($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) ? esc_attr($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) : "");
|
39 |
|
40 |
if (is_super_admin()) {
|
41 |
-
|
42 |
} else {
|
43 |
-
|
44 |
}
|
45 |
switch ($mb_role) {
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
}
|
70 |
|
71 |
if ($flag == "1") {
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
}
|
145 |
}
|
146 |
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* This file is used for creating admin bar menu.
|
4 |
*
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
25 |
$flag = 0;
|
26 |
|
27 |
$role_capabilities = $wpdb->get_var
|
28 |
+
(
|
29 |
+
$wpdb->prepare
|
30 |
+
(
|
31 |
+
"SELECT meta_value FROM " . mail_bank_meta() . "
|
32 |
WHERE meta_key = %s", "roles_and_capabilities"
|
33 |
+
)
|
34 |
);
|
35 |
|
36 |
$roles_and_capabilities_unserialized_data = maybe_unserialize($role_capabilities);
|
37 |
$capabilities = explode(",", isset($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) ? esc_attr($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) : "");
|
38 |
|
39 |
if (is_super_admin()) {
|
40 |
+
$mb_role = "administrator";
|
41 |
} else {
|
42 |
+
$mb_role = check_user_roles_mail_bank();
|
43 |
}
|
44 |
switch ($mb_role) {
|
45 |
+
case "administrator":
|
46 |
+
$flag = $capabilities[0];
|
47 |
+
break;
|
48 |
|
49 |
+
case "author":
|
50 |
+
$flag = $capabilities[1];
|
51 |
+
break;
|
52 |
|
53 |
+
case "editor":
|
54 |
+
$flag = $capabilities[2];
|
55 |
+
break;
|
56 |
|
57 |
+
case "contributor":
|
58 |
+
$flag = $capabilities[3];
|
59 |
+
break;
|
60 |
|
61 |
+
case "subscriber":
|
62 |
+
$flag = $capabilities[4];
|
63 |
+
break;
|
64 |
|
65 |
+
default:
|
66 |
+
$flag = $capabilities[5];
|
67 |
+
break;
|
68 |
}
|
69 |
|
70 |
if ($flag == "1") {
|
71 |
+
global $wp_version;
|
72 |
+
$icon = "<img style=\"vertical-align:middle; margin-right:3px;\" src=" . plugins_url("assets/global/img/icon.png", dirname(__FILE__)) . ">";
|
73 |
+
$wp_admin_bar->add_menu(array
|
74 |
+
(
|
75 |
+
"id" => "wp_mail_bank",
|
76 |
+
"title" => $icon . "<span class=\"ab-label\">" . $wp_mail_bank . "</span>",
|
77 |
+
"href" => admin_url("admin.php?page=mb_email_configuration")
|
78 |
+
));
|
79 |
+
$wp_admin_bar->add_menu(array
|
80 |
+
(
|
81 |
+
"parent" => "wp_mail_bank",
|
82 |
+
"id" => "email_configuration_mail_bank",
|
83 |
+
"title" => $mb_email_configuration,
|
84 |
+
"href" => admin_url("admin.php?page=mb_email_configuration")
|
85 |
+
));
|
86 |
+
$wp_admin_bar->add_menu(array
|
87 |
+
(
|
88 |
+
"parent" => "wp_mail_bank",
|
89 |
+
"id" => "test_email_mail_bank",
|
90 |
+
"title" => $mb_test_email,
|
91 |
+
"href" => admin_url("admin.php?page=mb_test_email")
|
92 |
+
));
|
93 |
+
$wp_admin_bar->add_menu(array
|
94 |
+
(
|
95 |
+
"parent" => "wp_mail_bank",
|
96 |
+
"id" => "connectivity_test_mail_bank",
|
97 |
+
"title" => $mb_connectivity_test,
|
98 |
+
"href" => admin_url("admin.php?page=mb_connectivity_test")
|
99 |
+
));
|
100 |
+
$wp_admin_bar->add_menu(array
|
101 |
+
(
|
102 |
+
"parent" => "wp_mail_bank",
|
103 |
+
"id" => "email_logs_mail_bank",
|
104 |
+
"title" => $mb_email_logs,
|
105 |
+
"href" => admin_url("admin.php?page=mb_email_logs")
|
106 |
+
));
|
107 |
|
108 |
+
$wp_admin_bar->add_menu(array
|
109 |
+
(
|
110 |
+
"parent" => "wp_mail_bank",
|
111 |
+
"id" => "general_settings_mail_bank",
|
112 |
+
"title" => $mb_settings,
|
113 |
+
"href" => admin_url("admin.php?page=mb_settings")
|
114 |
+
));
|
115 |
+
$wp_admin_bar->add_menu(array
|
116 |
+
(
|
117 |
+
"parent" => "wp_mail_bank",
|
118 |
+
"id" => "roles_and_capabilities_mail_bank",
|
119 |
+
"title" => $mb_roles_and_capabilities,
|
120 |
+
"href" => admin_url("admin.php?page=mb_roles_and_capabilities")
|
121 |
+
));
|
122 |
+
$wp_admin_bar->add_menu(array
|
123 |
+
(
|
124 |
+
"parent" => "wp_mail_bank",
|
125 |
+
"id" => "feedbacks_mail_bank",
|
126 |
+
"title" => $mb_feedbacks,
|
127 |
+
"href" => admin_url("admin.php?page=mb_feedbacks")
|
128 |
+
));
|
129 |
+
$wp_admin_bar->add_menu(array
|
130 |
+
(
|
131 |
+
"parent" => "wp_mail_bank",
|
132 |
+
"id" => "system_information_mail_bank",
|
133 |
+
"title" => $mb_system_information,
|
134 |
+
"href" => admin_url("admin.php?page=mb_system_information")
|
135 |
+
));
|
136 |
+
$wp_admin_bar->add_menu(array
|
137 |
+
(
|
138 |
+
"parent" => "wp_mail_bank",
|
139 |
+
"id" => "mb_upgrade",
|
140 |
+
"title" => $mb_upgrade,
|
141 |
+
"href" => admin_url("admin.php?page=mb_upgrade")
|
142 |
+
));
|
143 |
}
|
144 |
}
|
145 |
}
|
lib/callback.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* This file is used for handling redirection.
|
5 |
*
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* This file is used for handling redirection.
|
4 |
*
|
lib/helper.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* This file is used for creating dbHelper class.
|
5 |
*
|
@@ -16,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
-
|
20 |
-
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
@@ -30,82 +29,70 @@ if (!is_user_logged_in()) {
|
|
30 |
Created On: 15-06-2016 10:44
|
31 |
Created By: Tech Banker Team
|
32 |
*/
|
33 |
-
|
34 |
class dbHelper_mail_bank {
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
*/
|
98 |
-
|
99 |
-
function bulk_deleteCommand($table_name, $where, $data) {
|
100 |
-
global $wpdb;
|
101 |
-
$wpdb->query
|
102 |
-
(
|
103 |
-
"DELETE FROM $table_name WHERE $where IN ($data)"
|
104 |
-
);
|
105 |
-
}
|
106 |
-
|
107 |
}
|
108 |
-
|
109 |
/*
|
110 |
Class Name: mail_bank_discover_host
|
111 |
Parameters: No
|
@@ -113,116 +100,107 @@ if (!is_user_logged_in()) {
|
|
113 |
Created On: 21-06-2016 11:44
|
114 |
Created By: Tech Banker Team
|
115 |
*/
|
116 |
-
|
117 |
class mail_bank_discover_host {
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
}
|
192 |
-
return false;
|
193 |
-
}
|
194 |
-
|
195 |
}
|
196 |
-
|
197 |
class plugin_info_wp_mail_bank {
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
}
|
224 |
-
|
225 |
}
|
226 |
-
|
227 |
}
|
228 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* This file is used for creating dbHelper class.
|
4 |
*
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
29 |
Created On: 15-06-2016 10:44
|
30 |
Created By: Tech Banker Team
|
31 |
*/
|
|
|
32 |
class dbHelper_mail_bank {
|
33 |
+
/*
|
34 |
+
Function Name: insertCommand
|
35 |
+
Parameters: Yes($table_name,$data)
|
36 |
+
Description: This Function is used for Insert data in database.
|
37 |
+
Created On: 15-06-2016 10:43
|
38 |
+
Created By: Tech Banker Team
|
39 |
+
*/
|
40 |
+
function insertCommand($table_name, $data) {
|
41 |
+
global $wpdb;
|
42 |
+
$wpdb->insert($table_name, $data);
|
43 |
+
return $wpdb->insert_id;
|
44 |
+
}
|
45 |
+
/*
|
46 |
+
Function Name: updateCommand
|
47 |
+
Parameters: Yes($table_name,$data,$where)
|
48 |
+
Description: This function is used for Update data in database.
|
49 |
+
Created On: 15-06-2016 10:43
|
50 |
+
Created By: Tech Banker Team
|
51 |
+
*/
|
52 |
+
function updateCommand($table_name, $data, $where) {
|
53 |
+
global $wpdb;
|
54 |
+
$wpdb->update($table_name, $data, $where);
|
55 |
+
}
|
56 |
+
/*
|
57 |
+
Function Name: deleteCommand
|
58 |
+
Parameters: Yes($table_name,$where)
|
59 |
+
Description: This function is used for delete data from database.
|
60 |
+
Created On: 15-06-2016 10:43
|
61 |
+
Created By: Tech Banker Team
|
62 |
+
*/
|
63 |
+
function deleteCommand($table_name, $where) {
|
64 |
+
global $wpdb;
|
65 |
+
$wpdb->delete($table_name, $where);
|
66 |
+
}
|
67 |
+
/*
|
68 |
+
Function Name: file_reader
|
69 |
+
Parameters: Yes($filepath)
|
70 |
+
Description: This function is used to read file contents
|
71 |
+
Created On: 18-01-2017 11:24
|
72 |
+
Created By: Tech Banker Team
|
73 |
+
*/
|
74 |
+
public static function file_reader($filepath) {
|
75 |
+
$reader = "";
|
76 |
+
if (file_exists($filepath)) {
|
77 |
+
$reader = file_get_contents($filepath);
|
78 |
+
}
|
79 |
+
return $reader;
|
80 |
+
}
|
81 |
+
/*
|
82 |
+
Function Name: bulk_deleteCommand
|
83 |
+
Parameters: Yes($table_name,$data,$where)
|
84 |
+
Decription: This function is being used to delete multiple data from database.
|
85 |
+
Created On: 15-06-2016 10:43
|
86 |
+
Created By: Tech Banker Team
|
87 |
+
*/
|
88 |
+
function bulk_deleteCommand($table_name, $where, $data) {
|
89 |
+
global $wpdb;
|
90 |
+
$wpdb->query
|
91 |
+
(
|
92 |
+
"DELETE FROM $table_name WHERE $where IN ($data)"
|
93 |
+
);
|
94 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
}
|
|
|
96 |
/*
|
97 |
Class Name: mail_bank_discover_host
|
98 |
Parameters: No
|
100 |
Created On: 21-06-2016 11:44
|
101 |
Created By: Tech Banker Team
|
102 |
*/
|
|
|
103 |
class mail_bank_discover_host {
|
104 |
+
public $domain;
|
105 |
+
public $email_domains = array(
|
106 |
+
"1and1.com" => "smtp.1and1.com",
|
107 |
+
"airmail.net" => "smtp.airmail.net",
|
108 |
+
"aol.com" => "smtp.aol.com",
|
109 |
+
"Bluewin.ch" => "Smtpauths.bluewin.ch",
|
110 |
+
"Comcast.net" => "Smtp.comcast.net",
|
111 |
+
"Earthlink.net" => "Smtpauth.earthlink.net",
|
112 |
+
"gmail.com" => "smtp.gmail.com",
|
113 |
+
"Gmx.com" => "mail.gmx.com",
|
114 |
+
"Gmx.net" => "mail.gmx.com",
|
115 |
+
"Gmx.us" => "mail.gmx.com",
|
116 |
+
"hotmail.com" => "smtp.live.com",
|
117 |
+
"outlook.com" => "smtp.live.com",
|
118 |
+
"icloud.com" => "smtp.mail.me.com",
|
119 |
+
"mail.com" => "smtp.mail.com",
|
120 |
+
"ntlworld.com" => "smtp.ntlworld.com",
|
121 |
+
"rocketmail.com" => "smtp.mail.yahoo.com",
|
122 |
+
"rogers.com" => "smtp.broadband.rogers.com",
|
123 |
+
"yahoo.ca" => "smtp.mail.yahoo.ca",
|
124 |
+
"yahoo.co.id" => "smtp.mail.yahoo.co.id",
|
125 |
+
"yahoo.co.in" => "smtp.mail.yahoo.co.in",
|
126 |
+
"yahoo.co.kr" => "smtp.mail.yahoo.com",
|
127 |
+
"yahoo.com" => "smtp.mail.yahoo.com",
|
128 |
+
"yahoo.com.ar" => "smtp.mail.yahoo.com.ar",
|
129 |
+
"yahoo.com.au" => "smtp.mail.yahoo.com.au",
|
130 |
+
"yahoo.com.br" => "smtp.mail.yahoo.com.br",
|
131 |
+
"yahoo.com.cn" => "smtp.mail.yahoo.com.cn",
|
132 |
+
"yahoo.com.hk" => "smtp.mail.yahoo.com.hk",
|
133 |
+
"yahoo.com.mx" => "smtp.mail.yahoo.com",
|
134 |
+
"yahoo.com.my" => "smtp.mail.yahoo.com.my",
|
135 |
+
"yahoo.com.ph" => "smtp.mail.yahoo.com.ph",
|
136 |
+
"yahoo.com.sg" => "smtp.mail.yahoo.com.sg",
|
137 |
+
"yahoo.com.tw" => "smtp.mail.yahoo.com.tw",
|
138 |
+
"yahoo.com.vn" => "smtp.mail.yahoo.com.vn",
|
139 |
+
"yahoo.co.nz" => "smtp.mail.yahoo.com.au",
|
140 |
+
"yahoo.co.th" => "smtp.mail.yahoo.co.th",
|
141 |
+
"yahoo.co.uk" => "smtp.mail.yahoo.co.uk",
|
142 |
+
"ymail.com" => "smtp.mail.yahoo.com",
|
143 |
+
"yahoo.de" => "smtp.mail.yahoo.de",
|
144 |
+
"yahoo.es" => "smtp.correo.yahoo.es",
|
145 |
+
"yahoo.fr" => "smtp.mail.yahoo.fr",
|
146 |
+
"yahoo.ie" => "smtp.mail.yahoo.co.uk",
|
147 |
+
"yahoo.it" => "smtp.mail.yahoo.it",
|
148 |
+
"zoho.com" => "smtp.zoho.com",
|
149 |
+
"ameritech.net" => "outbound.att.net",
|
150 |
+
"att.net" => "outbound.att.net",
|
151 |
+
"bellsouth.net" => "outbound.att.net",
|
152 |
+
"flash.net" => "outbound.att.net",
|
153 |
+
"nvbell.net" => "outbound.att.net",
|
154 |
+
"pacbell.net" => "outbound.att.net",
|
155 |
+
"prodigy.net" => "outbound.att.net",
|
156 |
+
"sbcglobal.net" => "outbound.att.net",
|
157 |
+
"snet.net" => "outbound.att.net",
|
158 |
+
"swbell.net" => "outbound.att.net",
|
159 |
+
"wans.net" => "outbound.att.net"
|
160 |
+
);
|
161 |
+
/*
|
162 |
+
Function Name: get_smtp_from_email
|
163 |
+
Parameters: Yes($hostname)
|
164 |
+
Description: This Function is used for getting hostname.
|
165 |
+
Created On: 15-06-2016 10:43
|
166 |
+
Created By: Tech Banker Team
|
167 |
+
*/
|
168 |
+
public function get_smtp_from_email($hostname) {
|
169 |
+
reset($this->email_domains);
|
170 |
+
while (list($domain, $smtp) = each($this->email_domains)) {
|
171 |
+
if (strcasecmp($hostname, $domain) == 0) {
|
172 |
+
return $smtp;
|
173 |
+
}
|
174 |
+
}
|
175 |
+
return false;
|
176 |
+
}
|
|
|
|
|
|
|
|
|
177 |
}
|
|
|
178 |
class plugin_info_wp_mail_bank {
|
179 |
+
/*
|
180 |
+
Function Name: get_plugin_info_wp_mail_bank
|
181 |
+
Parameters: No
|
182 |
+
Decription: This function is used to return the information about plugins.
|
183 |
+
Created On: 21-04-2017 09:48
|
184 |
+
Created By: Tech Banker Team
|
185 |
+
*/
|
186 |
+
function get_plugin_info_wp_mail_bank() {
|
187 |
+
$active_plugins = (array) get_option("active_plugins", array());
|
188 |
+
if (is_multisite())
|
189 |
+
$active_plugins = array_merge($active_plugins, get_site_option("active_sitewide_plugins", array()));
|
190 |
+
$plugins = array();
|
191 |
+
if (count($active_plugins) > 0) {
|
192 |
+
$get_plugins = array();
|
193 |
+
foreach ($active_plugins as $plugin) {
|
194 |
+
$plugin_data = @get_plugin_data(WP_PLUGIN_DIR . "/" . $plugin);
|
195 |
+
|
196 |
+
$get_plugins["plugin_name"] = strip_tags($plugin_data["Name"]);
|
197 |
+
$get_plugins["plugin_author"] = strip_tags($plugin_data["Author"]);
|
198 |
+
$get_plugins["plugin_version"] = strip_tags($plugin_data["Version"]);
|
199 |
+
array_push($plugins, $get_plugins);
|
200 |
+
}
|
201 |
+
return $plugins;
|
202 |
+
}
|
203 |
+
}
|
|
|
|
|
204 |
}
|
|
|
205 |
}
|
206 |
+
}
|
lib/install-script.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* This file is used for creating tables in database on the activation hook.
|
5 |
*
|
@@ -23,44 +22,37 @@ if (!is_user_logged_in()) {
|
|
23 |
Created On: 05-02-2016 11:40
|
24 |
Created By: Tech Banker Team
|
25 |
*/
|
26 |
-
|
27 |
class dbHelper_install_script_mail_bank {
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
global $wpdb;
|
52 |
-
$wpdb->update($table_name, $data, $where);
|
53 |
-
}
|
54 |
-
|
55 |
}
|
56 |
-
|
57 |
if (file_exists(ABSPATH . "wp-admin/includes/upgrade.php"))
|
58 |
-
|
59 |
|
60 |
$mail_bank_version_number = get_option("mail-bank-version-number");
|
61 |
-
|
62 |
function mail_bank_table() {
|
63 |
-
|
64 |
(
|
65 |
`id` int(11) NOT NULL AUTO_INCREMENT,
|
66 |
`type` varchar(100) NOT NULL,
|
@@ -68,20 +60,19 @@ if (!is_user_logged_in()) {
|
|
68 |
PRIMARY KEY (`id`)
|
69 |
)
|
70 |
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
|
71 |
-
|
72 |
|
73 |
-
|
74 |
('email_configuration', 0),
|
75 |
('email_logs', 0),
|
76 |
('settings', 0),
|
77 |
('roles_and_capabilities', 0)";
|
78 |
-
|
79 |
}
|
80 |
-
|
81 |
function mail_bank_meta_table() {
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
(
|
86 |
`id` int(11) NOT NULL AUTO_INCREMENT,
|
87 |
`meta_id` int(11) NOT NULL,
|
@@ -90,293 +81,292 @@ if (!is_user_logged_in()) {
|
|
90 |
PRIMARY KEY (`id`)
|
91 |
)
|
92 |
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
}
|
184 |
-
|
185 |
$obj_dbHelper_install_script_mail_bank = new dbHelper_install_script_mail_bank();
|
186 |
switch ($mail_bank_version_number) {
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
WHERE meta_key = %s", "settings"
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
}
|
381 |
update_option("mail-bank-version-number", "3.0.0");
|
382 |
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* This file is used for creating tables in database on the activation hook.
|
4 |
*
|
22 |
Created On: 05-02-2016 11:40
|
23 |
Created By: Tech Banker Team
|
24 |
*/
|
|
|
25 |
class dbHelper_install_script_mail_bank {
|
26 |
+
/*
|
27 |
+
Function Name: insertCommand
|
28 |
+
Parameters: Yes($table_name,$data)
|
29 |
+
Description: This Function is used to Insert data in database.
|
30 |
+
Created On: 05-02-2016 11:40
|
31 |
+
Created By: Tech Banker Team
|
32 |
+
*/
|
33 |
+
function insertCommand($table_name, $data) {
|
34 |
+
global $wpdb;
|
35 |
+
$wpdb->insert($table_name, $data);
|
36 |
+
return $wpdb->insert_id;
|
37 |
+
}
|
38 |
+
/*
|
39 |
+
Function Name: updateCommand
|
40 |
+
Parameters: Yes($table_name,$data,$where)
|
41 |
+
Description: This function is used to Update data.
|
42 |
+
Created On: 05-02-2016 11:40
|
43 |
+
Created By: Tech Banker Team
|
44 |
+
*/
|
45 |
+
function updateCommand($table_name, $data, $where) {
|
46 |
+
global $wpdb;
|
47 |
+
$wpdb->update($table_name, $data, $where);
|
48 |
+
}
|
|
|
|
|
|
|
|
|
49 |
}
|
|
|
50 |
if (file_exists(ABSPATH . "wp-admin/includes/upgrade.php"))
|
51 |
+
require_once ABSPATH . "wp-admin/includes/upgrade.php";
|
52 |
|
53 |
$mail_bank_version_number = get_option("mail-bank-version-number");
|
|
|
54 |
function mail_bank_table() {
|
55 |
+
$sql = "CREATE TABLE IF NOT EXISTS " . mail_bank() . "
|
56 |
(
|
57 |
`id` int(11) NOT NULL AUTO_INCREMENT,
|
58 |
`type` varchar(100) NOT NULL,
|
60 |
PRIMARY KEY (`id`)
|
61 |
)
|
62 |
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
|
63 |
+
dbDelta($sql);
|
64 |
|
65 |
+
$data = "INSERT INTO " . mail_bank() . " (`type`, `parent_id`) VALUES
|
66 |
('email_configuration', 0),
|
67 |
('email_logs', 0),
|
68 |
('settings', 0),
|
69 |
('roles_and_capabilities', 0)";
|
70 |
+
dbDelta($data);
|
71 |
}
|
|
|
72 |
function mail_bank_meta_table() {
|
73 |
+
$obj_dbHelper_install_script_mail_bank = new dbHelper_install_script_mail_bank();
|
74 |
+
global $wpdb;
|
75 |
+
$sql = "CREATE TABLE IF NOT EXISTS " . mail_bank_meta() . "
|
76 |
(
|
77 |
`id` int(11) NOT NULL AUTO_INCREMENT,
|
78 |
`meta_id` int(11) NOT NULL,
|
81 |
PRIMARY KEY (`id`)
|
82 |
)
|
83 |
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
|
84 |
+
dbDelta($sql);
|
85 |
+
|
86 |
+
$admin_email = get_option("admin_email");
|
87 |
+
$admin_name = get_option("blogname");
|
88 |
+
|
89 |
+
$mail_bank_table_data = $wpdb->get_results
|
90 |
+
(
|
91 |
+
"SELECT * FROM " . mail_bank()
|
92 |
+
);
|
93 |
+
|
94 |
+
foreach ($mail_bank_table_data as $row) {
|
95 |
+
switch ($row->type) {
|
96 |
+
case "email_configuration":
|
97 |
+
$email_configuration_array = array();
|
98 |
+
$email_configuration_array["email_address"] = $admin_email;
|
99 |
+
$email_configuration_array["reply_to"] = "";
|
100 |
+
$email_configuration_array["cc"] = "";
|
101 |
+
$email_configuration_array["bcc"] = "";
|
102 |
+
$email_configuration_array["mailer_type"] = "smtp";
|
103 |
+
$email_configuration_array["sender_name"] = $admin_name;
|
104 |
+
$email_configuration_array["sender_name_configuration"] = "override";
|
105 |
+
$email_configuration_array["hostname"] = "";
|
106 |
+
$email_configuration_array["port"] = "587";
|
107 |
+
$email_configuration_array["client_id"] = "";
|
108 |
+
$email_configuration_array["client_secret"] = "";
|
109 |
+
$email_configuration_array["redirect_uri"] = "";
|
110 |
+
$email_configuration_array["sender_email"] = $admin_email;
|
111 |
+
$email_configuration_array["from_email_configuration"] = "override";
|
112 |
+
$email_configuration_array["auth_type"] = "none";
|
113 |
+
$email_configuration_array["username"] = $admin_email;
|
114 |
+
$email_configuration_array["password"] = "";
|
115 |
+
$email_configuration_array["enc_type"] = "tls";
|
116 |
+
|
117 |
+
$email_configuration_array_data = array();
|
118 |
+
$email_configuration_array_data["meta_id"] = $row->id;
|
119 |
+
$email_configuration_array_data["meta_key"] = "email_configuration";
|
120 |
+
$email_configuration_array_data["meta_value"] = serialize($email_configuration_array);
|
121 |
+
$obj_dbHelper_install_script_mail_bank->insertCommand(mail_bank_meta(), $email_configuration_array_data);
|
122 |
+
break;
|
123 |
+
|
124 |
+
case "settings":
|
125 |
+
$settings_data_array = array();
|
126 |
+
$settings_data_array["debug_mode"] = "enable";
|
127 |
+
$settings_data_array["remove_tables_at_uninstall"] = "enable";
|
128 |
+
$settings_data_array["monitor_email_logs"] = "enable";
|
129 |
+
|
130 |
+
$settings_array = array();
|
131 |
+
$settings_array["meta_id"] = $row->id;
|
132 |
+
$settings_array["meta_key"] = "settings";
|
133 |
+
$settings_array["meta_value"] = serialize($settings_data_array);
|
134 |
+
$obj_dbHelper_install_script_mail_bank->insertCommand(mail_bank_meta(), $settings_array);
|
135 |
+
break;
|
136 |
+
|
137 |
+
case "roles_and_capabilities":
|
138 |
+
$roles_capabilities_data_array = array();
|
139 |
+
$roles_capabilities_data_array["roles_and_capabilities"] = "1,1,1,0,0,0";
|
140 |
+
$roles_capabilities_data_array["show_mail_bank_top_bar_menu"] = "enable";
|
141 |
+
$roles_capabilities_data_array["others_full_control_capability"] = "0";
|
142 |
+
$roles_capabilities_data_array["administrator_privileges"] = "1,1,1,1,1,1,1,1,1,1";
|
143 |
+
$roles_capabilities_data_array["author_privileges"] = "0,0,1,0,0,0,0,0,0,0";
|
144 |
+
$roles_capabilities_data_array["editor_privileges"] = "0,0,1,0,0,0,1,0,0,0";
|
145 |
+
$roles_capabilities_data_array["contributor_privileges"] = "0,0,0,0,0,0,1,0,0,0";
|
146 |
+
$roles_capabilities_data_array["subscriber_privileges"] = "0,0,0,0,0,0,0,0,0,0";
|
147 |
+
$roles_capabilities_data_array["other_roles_privileges"] = "0,0,0,0,0,0,0,0,0,0";
|
148 |
+
$user_capabilities = get_others_capabilities_mail_bank();
|
149 |
+
$other_roles_array = array();
|
150 |
+
$other_roles_access_array = array(
|
151 |
+
"manage_options",
|
152 |
+
"edit_plugins",
|
153 |
+
"edit_posts",
|
154 |
+
"publish_posts",
|
155 |
+
"publish_pages",
|
156 |
+
"edit_pages",
|
157 |
+
"read"
|
158 |
+
);
|
159 |
+
foreach ($other_roles_access_array as $role) {
|
160 |
+
if (in_array($role, $user_capabilities)) {
|
161 |
+
array_push($other_roles_array, $role);
|
162 |
+
}
|
163 |
+
}
|
164 |
+
$roles_capabilities_data_array["capabilities"] = $other_roles_array;
|
165 |
+
|
166 |
+
$roles_data_array = array();
|
167 |
+
$roles_data_array["meta_id"] = $row->id;
|
168 |
+
$roles_data_array["meta_key"] = "roles_and_capabilities";
|
169 |
+
$roles_data_array["meta_value"] = serialize($roles_capabilities_data_array);
|
170 |
+
$obj_dbHelper_install_script_mail_bank->insertCommand(mail_bank_meta(), $roles_data_array);
|
171 |
+
break;
|
172 |
+
}
|
173 |
+
}
|
174 |
}
|
|
|
175 |
$obj_dbHelper_install_script_mail_bank = new dbHelper_install_script_mail_bank();
|
176 |
switch ($mail_bank_version_number) {
|
177 |
+
case "":
|
178 |
+
if (count($wpdb->get_var("SHOW TABLES LIKE '" . $wpdb->prefix . "mail_bank'")) != 0) {
|
179 |
+
$mail_bank_data = $wpdb->get_row
|
180 |
+
(
|
181 |
+
"SELECT * FROM " . $wpdb->prefix . "mail_bank"
|
182 |
+
);
|
183 |
+
|
184 |
+
$wpdb->query("DROP TABLE IF EXISTS " . $wpdb->prefix . "mail_bank");
|
185 |
+
mail_bank_table();
|
186 |
+
mail_bank_meta_table();
|
187 |
+
|
188 |
+
$get_from_name = get_option("show_from_name_in_email");
|
189 |
+
$get_from_email = get_option("show_from_email_in_email");
|
190 |
+
|
191 |
+
if (count($mail_bank_data) > 0) {
|
192 |
+
$update_mail_bank_data = array();
|
193 |
+
$update_mail_bank_data["email_address"] = get_option("admin_email");
|
194 |
+
$update_mail_bank_data["reply_to"] = "";
|
195 |
+
$update_mail_bank_data["cc"] = "";
|
196 |
+
$update_mail_bank_data["bcc"] = "";
|
197 |
+
$update_mail_bank_data["mailer_type"] = isset($mail_bank_data->mailer_type) && $mail_bank_data->mailer_type == 1 ? "php_mail_function" : "smtp";
|
198 |
+
$update_mail_bank_data["sender_name_configuration"] = isset($get_from_name) && $get_from_name == 1 ? "override" : "dont_override";
|
199 |
+
$update_mail_bank_data["sender_name"] = isset($mail_bank_data->from_name) ? esc_html($mail_bank_data->from_name) : esc_html(get_option("blogname"));
|
200 |
+
$update_mail_bank_data["from_email_configuration"] = isset($get_from_email) && $get_from_email == 1 ? "override" : "dont_override";
|
201 |
+
$update_mail_bank_data["sender_email"] = isset($mail_bank_data->from_email) ? esc_attr($mail_bank_data->from_email) : get_option("admin_email");
|
202 |
+
$update_mail_bank_data["hostname"] = isset($mail_bank_data->smtp_host) ? esc_attr($mail_bank_data->smtp_host) : "";
|
203 |
+
$update_mail_bank_data["port"] = isset($mail_bank_data->smtp_port) ? intval($mail_bank_data->smtp_port) : 0;
|
204 |
+
$update_mail_bank_data["enc_type"] = isset($mail_bank_data->encryption) && (($mail_bank_data->encryption) == 0) ? "none" : ((($mail_bank_data->encryption) == 1) ? "ssl" : "tls");
|
205 |
+
$update_mail_bank_data["auth_type"] = "login";
|
206 |
+
$update_mail_bank_data["client_id"] = "";
|
207 |
+
$update_mail_bank_data["client_secret"] = "";
|
208 |
+
$update_mail_bank_data["redirect_uri"] = "";
|
209 |
+
$update_mail_bank_data["username"] = isset($mail_bank_data->smtp_username) ? esc_attr($mail_bank_data->smtp_username) : "";
|
210 |
+
$update_mail_bank_data["password"] = isset($mail_bank_data->smtp_password) ? base64_encode($mail_bank_data->smtp_password) : "";
|
211 |
+
$update_mail_bank_data["automatic_mail"] = "1";
|
212 |
+
|
213 |
+
$update_mail_bank_data_serialize = array();
|
214 |
+
$where = array();
|
215 |
+
$where["meta_id"] = $mail_bank_data->id;
|
216 |
+
$where["meta_key"] = "email_configuration";
|
217 |
+
$update_mail_bank_data_serialize["meta_value"] = serialize($update_mail_bank_data);
|
218 |
+
$obj_dbHelper_install_script_mail_bank->updateCommand(mail_bank_meta(), $update_mail_bank_data_serialize, $where);
|
219 |
+
}
|
220 |
+
$plugin_settings_data = $wpdb->get_var
|
221 |
+
(
|
222 |
+
$wpdb->prepare
|
223 |
+
(
|
224 |
+
"SELECT meta_value FROM " . mail_bank_meta() . "
|
225 |
WHERE meta_key = %s", "settings"
|
226 |
+
)
|
227 |
+
);
|
228 |
+
$plugin_settings_data_unserialize = maybe_unserialize($plugin_settings_data);
|
229 |
+
|
230 |
+
$update_plugin_data = array();
|
231 |
+
$update_plugin_data["debug_mode"] = isset($plugin_settings_data_unserialize["debug_mode"]) ? esc_attr($plugin_settings_data_unserialize["debug_mode"]) : "enable";
|
232 |
+
$update_plugin_data["remove_tables_at_uninstall"] = isset($plugin_settings_data_unserialize["remove_tables_at_uninstall"]) ? esc_attr($plugin_settings_data_unserialize["remove_tables_at_uninstall"]) : "disable";
|
233 |
+
$update_plugin_data["monitor_email_logs"] = isset($plugin_settings_data_unserialize["monitor_email_logs"]) ? esc_attr($plugin_settings_data_unserialize["monitor_email_logs"]) : "enable";
|
234 |
+
|
235 |
+
$update_plugin_settings_data_serialize = array();
|
236 |
+
$where = array();
|
237 |
+
$where["meta_key"] = "settings";
|
238 |
+
$update_plugin_settings_data_serialize["meta_value"] = serialize($update_plugin_data);
|
239 |
+
$obj_dbHelper_install_script_mail_bank->updateCommand(mail_bank_meta(), $update_plugin_settings_data_serialize, $where);
|
240 |
+
} else {
|
241 |
+
mail_bank_table();
|
242 |
+
mail_bank_meta_table();
|
243 |
+
}
|
244 |
+
break;
|
245 |
+
|
246 |
+
default:
|
247 |
+
if (count($wpdb->get_var("SHOW TABLES LIKE '" . mail_bank() . "'")) != 0 && count($wpdb->get_var("SHOW TABLES LIKE '" . mail_bank_meta() . "'")) != 0) {
|
248 |
+
$settings_data = $wpdb->get_var
|
249 |
+
(
|
250 |
+
$wpdb->prepare
|
251 |
+
(
|
252 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
253 |
+
" WHERE meta_key=%s", "settings"
|
254 |
+
)
|
255 |
+
);
|
256 |
+
|
257 |
+
$settings_data_array = maybe_unserialize($settings_data);
|
258 |
+
if (!array_key_exists("monitor_email_logs", $settings_data_array)) {
|
259 |
+
$settings_data_array["monitor_email_logs"] = "enable";
|
260 |
+
}
|
261 |
+
$where = array();
|
262 |
+
$settings_array = array();
|
263 |
+
$where["meta_key"] = "settings";
|
264 |
+
$settings_array["meta_value"] = serialize($settings_data_array);
|
265 |
+
$obj_dbHelper_install_script_mail_bank->updateCommand(mail_bank_meta(), $settings_array, $where);
|
266 |
+
|
267 |
+
$get_roles_settings_data = $wpdb->get_var
|
268 |
+
(
|
269 |
+
$wpdb->prepare
|
270 |
+
(
|
271 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
272 |
+
" WHERE meta_key=%s", "roles_and_capabilities"
|
273 |
+
)
|
274 |
+
);
|
275 |
+
|
276 |
+
$get_roles_settings_data_array = maybe_unserialize($get_roles_settings_data);
|
277 |
+
|
278 |
+
if (array_key_exists("roles_and_capabilities", $get_roles_settings_data_array)) {
|
279 |
+
$roles_and_capabilities_data = isset($get_roles_settings_data_array["roles_and_capabilities"]) ? explode(",", $get_roles_settings_data_array["roles_and_capabilities"]) : "1,1,1,0,0,0";
|
280 |
+
$administrator_privileges_data = isset($get_roles_settings_data_array["administrator_privileges"]) ? explode(",", $get_roles_settings_data_array["administrator_privileges"]) : "1,1,1,1,1,1,1,1,1,1";
|
281 |
+
$author_privileges_data = isset($get_roles_settings_data_array["author_privileges"]) ? explode(",", $get_roles_settings_data_array["author_privileges"]) : "0,0,1,0,0,0,0,0,0,0";
|
282 |
+
$editor_privileges_data = isset($get_roles_settings_data_array["editor_privileges"]) ? explode(",", $get_roles_settings_data_array["editor_privileges"]) : "0,0,1,0,0,0,1,0,0,0";
|
283 |
+
$contributor_privileges_data = isset($get_roles_settings_data_array["contributor_privileges"]) ? explode(",", $get_roles_settings_data_array["contributor_privileges"]) : "0,0,0,0,0,0,1,0,0,0";
|
284 |
+
$subscriber_privileges_data = isset($get_roles_settings_data_array["subscriber_privileges"]) ? explode(",", $get_roles_settings_data_array["subscriber_privileges"]) : "0,0,0,0,0,0,0,0,0,0";
|
285 |
+
$other_privileges_data = isset($get_roles_settings_data_array["other_roles_privileges"]) ? explode(",", $get_roles_settings_data_array["other_roles_privileges"]) : "0,0,0,0,0,0,0,0,0,0";
|
286 |
+
|
287 |
+
if (count($roles_and_capabilities_data) == 5) {
|
288 |
+
array_push($roles_and_capabilities_data, 0);
|
289 |
+
}
|
290 |
+
|
291 |
+
if (count($administrator_privileges_data) == 8) {
|
292 |
+
array_splice($administrator_privileges_data, 3, 0, 1);
|
293 |
+
array_splice($administrator_privileges_data, 8, 0, 1);
|
294 |
+
} elseif (count($administrator_privileges_data) == 9) {
|
295 |
+
array_splice($administrator_privileges_data, 3, 0, 1);
|
296 |
+
}
|
297 |
+
|
298 |
+
if (count($author_privileges_data) == 8) {
|
299 |
+
array_splice($author_privileges_data, 3, 0, 0);
|
300 |
+
array_splice($author_privileges_data, 8, 0, 0);
|
301 |
+
} elseif (count($author_privileges_data) == 9) {
|
302 |
+
array_splice($author_privileges_data, 3, 0, 0);
|
303 |
+
}
|
304 |
+
|
305 |
+
if (count($editor_privileges_data) == 8) {
|
306 |
+
array_splice($editor_privileges_data, 3, 0, 0);
|
307 |
+
array_splice($editor_privileges_data, 8, 0, 0);
|
308 |
+
} elseif (count($editor_privileges_data) == 9) {
|
309 |
+
array_splice($editor_privileges_data, 3, 0, 0);
|
310 |
+
}
|
311 |
+
|
312 |
+
if (count($contributor_privileges_data) == 8) {
|
313 |
+
array_splice($contributor_privileges_data, 3, 0, 0);
|
314 |
+
array_splice($contributor_privileges_data, 8, 0, 0);
|
315 |
+
} elseif (count($contributor_privileges_data) == 9) {
|
316 |
+
array_splice($editor_privileges_data, 3, 0, 0);
|
317 |
+
}
|
318 |
+
|
319 |
+
if (count($subscriber_privileges_data) == 8) {
|
320 |
+
array_splice($subscriber_privileges_data, 3, 0, 0);
|
321 |
+
array_splice($subscriber_privileges_data, 8, 0, 0);
|
322 |
+
} elseif (count($subscriber_privileges_data) == 9) {
|
323 |
+
array_splice($subscriber_privileges_data, 3, 0, 0);
|
324 |
+
}
|
325 |
+
|
326 |
+
if (count($other_privileges_data) == 8) {
|
327 |
+
array_splice($other_privileges_data, 3, 0, 0);
|
328 |
+
array_splice($other_privileges_data, 8, 0, 0);
|
329 |
+
} elseif (count($other_privileges_data) == 9) {
|
330 |
+
array_splice($other_privileges_data, 3, 0, 0);
|
331 |
+
}
|
332 |
+
|
333 |
+
if (!array_key_exists("others_full_control_capability", $get_roles_settings_data_array)) {
|
334 |
+
$get_roles_settings_data_array["others_full_control_capability"] = "0";
|
335 |
+
}
|
336 |
+
|
337 |
+
if (!array_key_exists("capabilities", $get_roles_settings_data_array)) {
|
338 |
+
$user_capabilities = get_others_capabilities_mail_bank();
|
339 |
+
$other_roles_array = array();
|
340 |
+
$other_roles_access_array = array(
|
341 |
+
"manage_options",
|
342 |
+
"edit_plugins",
|
343 |
+
"edit_posts",
|
344 |
+
"publish_posts",
|
345 |
+
"publish_pages",
|
346 |
+
"edit_pages",
|
347 |
+
"read"
|
348 |
+
);
|
349 |
+
foreach ($other_roles_access_array as $role) {
|
350 |
+
if (in_array($role, $user_capabilities)) {
|
351 |
+
array_push($other_roles_array, $role);
|
352 |
+
}
|
353 |
+
}
|
354 |
+
$get_roles_settings_data_array["capabilities"] = $other_roles_array;
|
355 |
+
}
|
356 |
+
$get_roles_settings_data_array["roles_and_capabilities"] = implode(",", $roles_and_capabilities_data);
|
357 |
+
$get_roles_settings_data_array["administrator_privileges"] = implode(",", $administrator_privileges_data);
|
358 |
+
$get_roles_settings_data_array["author_privileges"] = implode(",", $author_privileges_data);
|
359 |
+
$get_roles_settings_data_array["editor_privileges"] = implode(",", $editor_privileges_data);
|
360 |
+
$get_roles_settings_data_array["contributor_privileges"] = implode(",", $contributor_privileges_data);
|
361 |
+
$get_roles_settings_data_array["subscriber_privileges"] = implode(",", $subscriber_privileges_data);
|
362 |
+
$get_roles_settings_data_array["other_roles_privileges"] = implode(",", $other_privileges_data);
|
363 |
+
$where = array();
|
364 |
+
$roles_capabilities_array = array();
|
365 |
+
$where["meta_key"] = "roles_and_capabilities";
|
366 |
+
$roles_capabilities_array["meta_value"] = serialize($get_roles_settings_data_array);
|
367 |
+
$obj_dbHelper_install_script_mail_bank->updateCommand(mail_bank_meta(), $roles_capabilities_array, $where);
|
368 |
+
}
|
369 |
+
}
|
370 |
}
|
371 |
update_option("mail-bank-version-number", "3.0.0");
|
372 |
}
|
lib/sidebar-menu.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* This file is used for creating sidebar menu.
|
5 |
*
|
@@ -16,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
-
|
20 |
-
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
@@ -26,99 +25,99 @@ if (!is_user_logged_in()) {
|
|
26 |
$flag = 0;
|
27 |
|
28 |
$role_capabilities = $wpdb->get_var
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
WHERE meta_key = %s", "roles_and_capabilities"
|
34 |
-
|
35 |
);
|
36 |
|
37 |
$roles_and_capabilities_unserialized_data = maybe_unserialize($role_capabilities);
|
38 |
$capabilities = explode(",", isset($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) ? esc_attr($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) : "");
|
39 |
|
40 |
if (is_super_admin()) {
|
41 |
-
|
42 |
} else {
|
43 |
-
|
44 |
}
|
45 |
switch ($mb_role) {
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
}
|
76 |
|
77 |
foreach ($roles_and_capabilities_unserialized_data as $key => $value) {
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
}
|
83 |
|
84 |
$full_control = explode(",", $privileges_value);
|
85 |
if (!defined("full_control"))
|
86 |
-
|
87 |
if (!defined("email_configuration_mail_bank"))
|
88 |
-
|
89 |
if (!defined("test_email_mail_bank"))
|
90 |
-
|
91 |
if (!defined("conectivity_test_email_mail_bank"))
|
92 |
-
|
93 |
if (!defined("email_logs_mail_bank"))
|
94 |
-
|
95 |
if (!defined("settings_mail_bank"))
|
96 |
-
|
97 |
if (!defined("roles_and_capabilities_mail_bank"))
|
98 |
-
|
99 |
if (!defined("system_information_mail_bank"))
|
100 |
-
|
101 |
$check_wp_mail_bank_wizard = get_option("wp-mail-bank-wizard-set-up");
|
102 |
if ($flag == "1") {
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
}
|
123 |
|
124 |
|
@@ -129,21 +128,19 @@ if (!is_user_logged_in()) {
|
|
129 |
Created On: 21-04-2017 10:17
|
130 |
Created By: Tech Banker Team
|
131 |
*/
|
132 |
-
|
133 |
function wp_mail_bank_wizard() {
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
}
|
146 |
-
|
147 |
/*
|
148 |
Function Name: mb_email_configuration
|
149 |
Parameters: No
|
@@ -151,30 +148,28 @@ if (!is_user_logged_in()) {
|
|
151 |
Created On: 15-06-2016 10:44
|
152 |
Created By: Tech Banker Team
|
153 |
*/
|
154 |
-
|
155 |
function mb_email_configuration() {
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
}
|
177 |
-
|
178 |
/*
|
179 |
Function Name: mb_test_email
|
180 |
Parameters: No
|
@@ -182,30 +177,28 @@ if (!is_user_logged_in()) {
|
|
182 |
Created On: 15-06-2016 10:44
|
183 |
Created By: Tech Banker Team
|
184 |
*/
|
185 |
-
|
186 |
function mb_test_email() {
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
}
|
208 |
-
|
209 |
/*
|
210 |
Function Name: mb_connectivity_test
|
211 |
Parameters: No
|
@@ -213,30 +206,28 @@ if (!is_user_logged_in()) {
|
|
213 |
Created On: 15-06-2016 10:44
|
214 |
Created By: Tech Banker Team
|
215 |
*/
|
216 |
-
|
217 |
function mb_connectivity_test() {
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
}
|
239 |
-
|
240 |
/*
|
241 |
Function Name: mb_email_logs
|
242 |
Parameters: No
|
@@ -244,30 +235,28 @@ if (!is_user_logged_in()) {
|
|
244 |
Created On: 15-06-2016 10:44
|
245 |
Created By: Tech Banker Team
|
246 |
*/
|
247 |
-
|
248 |
function mb_email_logs() {
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
}
|
270 |
-
|
271 |
/*
|
272 |
Function Name: mb_settings
|
273 |
Parameters: No
|
@@ -275,30 +264,28 @@ if (!is_user_logged_in()) {
|
|
275 |
Created On: 15-06-2016 10:44
|
276 |
Created By: Tech Banker Team
|
277 |
*/
|
278 |
-
|
279 |
function mb_settings() {
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
}
|
301 |
-
|
302 |
/*
|
303 |
Function Name: mb_roles_and_capabilities
|
304 |
Parameters: No
|
@@ -306,30 +293,28 @@ if (!is_user_logged_in()) {
|
|
306 |
Created On: 15-06-2016 12:59
|
307 |
Created By: Tech Banker Team
|
308 |
*/
|
309 |
-
|
310 |
function mb_roles_and_capabilities() {
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
}
|
332 |
-
|
333 |
/*
|
334 |
Function Name: mb_feedbacks
|
335 |
Parameters: No
|
@@ -337,30 +322,28 @@ if (!is_user_logged_in()) {
|
|
337 |
Created On: 15-06-2016 10:44
|
338 |
Created By: Tech Banker Team
|
339 |
*/
|
340 |
-
|
341 |
function mb_feedbacks() {
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
}
|
363 |
-
|
364 |
/*
|
365 |
Function Name: mb_system_information
|
366 |
Parameters: No
|
@@ -368,30 +351,28 @@ if (!is_user_logged_in()) {
|
|
368 |
Created On: 15-06-2016 02:29
|
369 |
Created By: Tech Banker Team
|
370 |
*/
|
371 |
-
|
372 |
function mb_system_information() {
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
}
|
394 |
-
|
395 |
/*
|
396 |
Function Name: mb_upgrade
|
397 |
Parameter: No
|
@@ -399,29 +380,27 @@ if (!is_user_logged_in()) {
|
|
399 |
Created On: 13-08-2016 09:41
|
400 |
Created By: Tech Banker Team
|
401 |
*/
|
402 |
-
|
403 |
function mb_upgrade() {
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
}
|
425 |
-
|
426 |
}
|
427 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* This file is used for creating sidebar menu.
|
4 |
*
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
25 |
$flag = 0;
|
26 |
|
27 |
$role_capabilities = $wpdb->get_var
|
28 |
+
(
|
29 |
+
$wpdb->prepare
|
30 |
+
(
|
31 |
+
"SELECT meta_value from " . mail_bank_meta() . "
|
32 |
WHERE meta_key = %s", "roles_and_capabilities"
|
33 |
+
)
|
34 |
);
|
35 |
|
36 |
$roles_and_capabilities_unserialized_data = maybe_unserialize($role_capabilities);
|
37 |
$capabilities = explode(",", isset($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) ? esc_attr($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) : "");
|
38 |
|
39 |
if (is_super_admin()) {
|
40 |
+
$mb_role = "administrator";
|
41 |
} else {
|
42 |
+
$mb_role = check_user_roles_mail_bank();
|
43 |
}
|
44 |
switch ($mb_role) {
|
45 |
+
case "administrator":
|
46 |
+
$privileges = "administrator_privileges";
|
47 |
+
$flag = $capabilities[0];
|
48 |
+
break;
|
49 |
+
|
50 |
+
case "author":
|
51 |
+
$privileges = "author_privileges";
|
52 |
+
$flag = $capabilities[1];
|
53 |
+
break;
|
54 |
+
|
55 |
+
case "editor":
|
56 |
+
$privileges = "editor_privileges";
|
57 |
+
$flag = $capabilities[2];
|
58 |
+
break;
|
59 |
+
|
60 |
+
case "contributor":
|
61 |
+
$privileges = "contributor_privileges";
|
62 |
+
$flag = $capabilities[3];
|
63 |
+
break;
|
64 |
+
|
65 |
+
case "subscriber":
|
66 |
+
$privileges = "subscriber_privileges";
|
67 |
+
$flag = $capabilities[4];
|
68 |
+
break;
|
69 |
+
|
70 |
+
default:
|
71 |
+
$privileges = "other_roles_privileges";
|
72 |
+
$flag = $capabilities[5];
|
73 |
+
break;
|
74 |
}
|
75 |
|
76 |
foreach ($roles_and_capabilities_unserialized_data as $key => $value) {
|
77 |
+
if ($privileges == $key) {
|
78 |
+
$privileges_value = $value;
|
79 |
+
break;
|
80 |
+
}
|
81 |
}
|
82 |
|
83 |
$full_control = explode(",", $privileges_value);
|
84 |
if (!defined("full_control"))
|
85 |
+
define("full_control", "$full_control[0]");
|
86 |
if (!defined("email_configuration_mail_bank"))
|
87 |
+
define("email_configuration_mail_bank", "$full_control[1]");
|
88 |
if (!defined("test_email_mail_bank"))
|
89 |
+
define("test_email_mail_bank", "$full_control[2]");
|
90 |
if (!defined("conectivity_test_email_mail_bank"))
|
91 |
+
define("conectivity_test_email_mail_bank", "$full_control[3]");
|
92 |
if (!defined("email_logs_mail_bank"))
|
93 |
+
define("email_logs_mail_bank", "$full_control[4]");
|
94 |
if (!defined("settings_mail_bank"))
|
95 |
+
define("settings_mail_bank", "$full_control[5]");
|
96 |
if (!defined("roles_and_capabilities_mail_bank"))
|
97 |
+
define("roles_and_capabilities_mail_bank", "$full_control[6]");
|
98 |
if (!defined("system_information_mail_bank"))
|
99 |
+
define("system_information_mail_bank", "$full_control[7]");
|
100 |
$check_wp_mail_bank_wizard = get_option("wp-mail-bank-wizard-set-up");
|
101 |
if ($flag == "1") {
|
102 |
+
global $wp_version;
|
103 |
+
|
104 |
+
$icon = plugins_url("assets/global/img/icon.png", dirname(__FILE__));
|
105 |
+
if ($check_wp_mail_bank_wizard) {
|
106 |
+
add_menu_page($wp_mail_bank, $wp_mail_bank, "read", "mb_email_configuration", "", $icon);
|
107 |
+
} else {
|
108 |
+
add_menu_page($wp_mail_bank, $wp_mail_bank, "read", "wp_mail_bank_wizard", "", plugins_url("assets/global/img/icon.png", dirname(__FILE__)));
|
109 |
+
add_submenu_page($wp_mail_bank, $wp_mail_bank, "", "read", "wp_mail_bank_wizard", "wp_mail_bank_wizard");
|
110 |
+
}
|
111 |
+
|
112 |
+
add_submenu_page("mb_email_configuration", $mb_email_configuration, $mb_email_configuration, "read", "mb_email_configuration", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_email_configuration");
|
113 |
+
add_submenu_page("mb_email_configuration", $mb_test_email, $mb_test_email, "read", "mb_test_email", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_test_email");
|
114 |
+
add_submenu_page("mb_email_configuration", $mb_connectivity_test, $mb_connectivity_test, "read", "mb_connectivity_test", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_connectivity_test");
|
115 |
+
add_submenu_page("mb_email_configuration", $mb_email_logs, $mb_email_logs, "read", "mb_email_logs", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_email_logs");
|
116 |
+
add_submenu_page("mb_email_configuration", $mb_settings, $mb_settings, "read", "mb_settings", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_settings");
|
117 |
+
add_submenu_page("mb_email_configuration", $mb_roles_and_capabilities, $mb_roles_and_capabilities, "read", "mb_roles_and_capabilities", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_roles_and_capabilities");
|
118 |
+
add_submenu_page("mb_email_configuration", $mb_feedbacks, $mb_feedbacks, "read", "mb_feedbacks", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_feedbacks");
|
119 |
+
add_submenu_page("mb_email_configuration", $mb_system_information, $mb_system_information, "read", "mb_system_information", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_system_information");
|
120 |
+
add_submenu_page("mb_email_configuration", $mb_upgrade, $mb_upgrade, "read", "mb_upgrade", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_upgrade");
|
121 |
}
|
122 |
|
123 |
|
128 |
Created On: 21-04-2017 10:17
|
129 |
Created By: Tech Banker Team
|
130 |
*/
|
|
|
131 |
function wp_mail_bank_wizard() {
|
132 |
+
global $wpdb;
|
133 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
134 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
135 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
136 |
+
}
|
137 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/wizard/wizard.php")) {
|
138 |
+
include_once MAIL_BANK_DIR_PATH . "views/wizard/wizard.php";
|
139 |
+
}
|
140 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
141 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
142 |
+
}
|
143 |
}
|
|
|
144 |
/*
|
145 |
Function Name: mb_email_configuration
|
146 |
Parameters: No
|
148 |
Created On: 15-06-2016 10:44
|
149 |
Created By: Tech Banker Team
|
150 |
*/
|
|
|
151 |
function mb_email_configuration() {
|
152 |
+
global $wpdb;
|
153 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
154 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
155 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
156 |
+
}
|
157 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
158 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
159 |
+
}
|
160 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
161 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
162 |
+
}
|
163 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
164 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
165 |
+
}
|
166 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/email-setup/email-setup.php")) {
|
167 |
+
include_once MAIL_BANK_DIR_PATH . "views/email-setup/email-setup.php";
|
168 |
+
}
|
169 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
170 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
171 |
+
}
|
172 |
}
|
|
|
173 |
/*
|
174 |
Function Name: mb_test_email
|
175 |
Parameters: No
|
177 |
Created On: 15-06-2016 10:44
|
178 |
Created By: Tech Banker Team
|
179 |
*/
|
|
|
180 |
function mb_test_email() {
|
181 |
+
global $wpdb;
|
182 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
183 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
184 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
185 |
+
}
|
186 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
187 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
188 |
+
}
|
189 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
190 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
191 |
+
}
|
192 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
193 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
194 |
+
}
|
195 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/test-email/test-email.php")) {
|
196 |
+
include_once MAIL_BANK_DIR_PATH . "views/test-email/test-email.php";
|
197 |
+
}
|
198 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
199 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
200 |
+
}
|
201 |
}
|
|
|
202 |
/*
|
203 |
Function Name: mb_connectivity_test
|
204 |
Parameters: No
|
206 |
Created On: 15-06-2016 10:44
|
207 |
Created By: Tech Banker Team
|
208 |
*/
|
|
|
209 |
function mb_connectivity_test() {
|
210 |
+
global $wpdb;
|
211 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
212 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
213 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
214 |
+
}
|
215 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
216 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
217 |
+
}
|
218 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
219 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
220 |
+
}
|
221 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
222 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
223 |
+
}
|
224 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/connectivity-test/connectivity-test.php")) {
|
225 |
+
include_once MAIL_BANK_DIR_PATH . "views/connectivity-test/connectivity-test.php";
|
226 |
+
}
|
227 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
228 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
229 |
+
}
|
230 |
}
|
|
|
231 |
/*
|
232 |
Function Name: mb_email_logs
|
233 |
Parameters: No
|
235 |
Created On: 15-06-2016 10:44
|
236 |
Created By: Tech Banker Team
|
237 |
*/
|
|
|
238 |
function mb_email_logs() {
|
239 |
+
global $wpdb;
|
240 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
241 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
242 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
243 |
+
}
|
244 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
245 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
246 |
+
}
|
247 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
248 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
249 |
+
}
|
250 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
251 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
252 |
+
}
|
253 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/email-logs/email-logs.php")) {
|
254 |
+
include_once MAIL_BANK_DIR_PATH . "views/email-logs/email-logs.php";
|
255 |
+
}
|
256 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
257 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
258 |
+
}
|
259 |
}
|
|
|
260 |
/*
|
261 |
Function Name: mb_settings
|
262 |
Parameters: No
|
264 |
Created On: 15-06-2016 10:44
|
265 |
Created By: Tech Banker Team
|
266 |
*/
|
|
|
267 |
function mb_settings() {
|
268 |
+
global $wpdb;
|
269 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
270 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
271 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
272 |
+
}
|
273 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
274 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
275 |
+
}
|
276 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
277 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
278 |
+
}
|
279 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
280 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
281 |
+
}
|
282 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/settings/settings.php")) {
|
283 |
+
include_once MAIL_BANK_DIR_PATH . "views/settings/settings.php";
|
284 |
+
}
|
285 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
286 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
287 |
+
}
|
288 |
}
|
|
|
289 |
/*
|
290 |
Function Name: mb_roles_and_capabilities
|
291 |
Parameters: No
|
293 |
Created On: 15-06-2016 12:59
|
294 |
Created By: Tech Banker Team
|
295 |
*/
|
|
|
296 |
function mb_roles_and_capabilities() {
|
297 |
+
global $wpdb;
|
298 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
299 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
300 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
301 |
+
}
|
302 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
303 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
304 |
+
}
|
305 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
306 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
307 |
+
}
|
308 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
309 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
310 |
+
}
|
311 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/roles-and-capabilities/roles-and-capabilities.php")) {
|
312 |
+
include_once MAIL_BANK_DIR_PATH . "views/roles-and-capabilities/roles-and-capabilities.php";
|
313 |
+
}
|
314 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
315 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
316 |
+
}
|
317 |
}
|
|
|
318 |
/*
|
319 |
Function Name: mb_feedbacks
|
320 |
Parameters: No
|
322 |
Created On: 15-06-2016 10:44
|
323 |
Created By: Tech Banker Team
|
324 |
*/
|
|
|
325 |
function mb_feedbacks() {
|
326 |
+
global $wpdb;
|
327 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
328 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
329 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
330 |
+
}
|
331 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
332 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
333 |
+
}
|
334 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
335 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
336 |
+
}
|
337 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
338 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
339 |
+
}
|
340 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/feedbacks/feedbacks.php")) {
|
341 |
+
include_once MAIL_BANK_DIR_PATH . "views/feedbacks/feedbacks.php";
|
342 |
+
}
|
343 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
344 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
345 |
+
}
|
346 |
}
|
|
|
347 |
/*
|
348 |
Function Name: mb_system_information
|
349 |
Parameters: No
|
351 |
Created On: 15-06-2016 02:29
|
352 |
Created By: Tech Banker Team
|
353 |
*/
|
|
|
354 |
function mb_system_information() {
|
355 |
+
global $wpdb;
|
356 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
357 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
358 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
359 |
+
}
|
360 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
361 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
362 |
+
}
|
363 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
364 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
365 |
+
}
|
366 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
367 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
368 |
+
}
|
369 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/system-information/system-information.php")) {
|
370 |
+
include_once MAIL_BANK_DIR_PATH . "views/system-information/system-information.php";
|
371 |
+
}
|
372 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
373 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
374 |
+
}
|
375 |
}
|
|
|
376 |
/*
|
377 |
Function Name: mb_upgrade
|
378 |
Parameter: No
|
380 |
Created On: 13-08-2016 09:41
|
381 |
Created By: Tech Banker Team
|
382 |
*/
|
|
|
383 |
function mb_upgrade() {
|
384 |
+
global $wpdb;
|
385 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
386 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
387 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
388 |
+
}
|
389 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
390 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
391 |
+
}
|
392 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
393 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
394 |
+
}
|
395 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
396 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
397 |
+
}
|
398 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/premium-editions/premium-editions.php")) {
|
399 |
+
include_once MAIL_BANK_DIR_PATH . "views/premium-editions/premium-editions.php";
|
400 |
+
}
|
401 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
402 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
403 |
+
}
|
404 |
}
|
|
|
405 |
}
|
406 |
+
}
|
lib/zend/exception.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Zend Framework
|
5 |
*
|
@@ -28,14 +27,11 @@ if (!defined("ABSPATH")) {
|
|
28 |
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
|
29 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
30 |
*/
|
31 |
-
|
32 |
class mail_bank_Zend_Exception extends Exception {
|
33 |
-
|
34 |
/**
|
35 |
* @var null|Exception
|
36 |
*/
|
37 |
private $_previous = null;
|
38 |
-
|
39 |
/**
|
40 |
* Construct the exception
|
41 |
*
|
@@ -46,13 +42,12 @@ class mail_bank_Zend_Exception extends Exception {
|
|
46 |
*/
|
47 |
public function __construct($msg = '', $code = 0, Exception $previous = null) {
|
48 |
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
|
49 |
-
|
50 |
-
|
51 |
} else {
|
52 |
-
|
53 |
}
|
54 |
}
|
55 |
-
|
56 |
/**
|
57 |
* Overloading
|
58 |
*
|
@@ -64,11 +59,10 @@ class mail_bank_Zend_Exception extends Exception {
|
|
64 |
*/
|
65 |
public function __call($method, array $args) {
|
66 |
if ('getprevious' == strtolower($method)) {
|
67 |
-
|
68 |
}
|
69 |
return null;
|
70 |
}
|
71 |
-
|
72 |
/**
|
73 |
* String representation of the exception
|
74 |
*
|
@@ -76,15 +70,14 @@ class mail_bank_Zend_Exception extends Exception {
|
|
76 |
*/
|
77 |
public function __toString() {
|
78 |
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
}
|
85 |
return parent::__toString();
|
86 |
}
|
87 |
-
|
88 |
/**
|
89 |
* Returns previous Exception
|
90 |
*
|
@@ -93,5 +86,4 @@ class mail_bank_Zend_Exception extends Exception {
|
|
93 |
protected function _getPrevious() {
|
94 |
return $this->_previous;
|
95 |
}
|
96 |
-
|
97 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Zend Framework
|
4 |
*
|
27 |
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
|
28 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
29 |
*/
|
|
|
30 |
class mail_bank_Zend_Exception extends Exception {
|
|
|
31 |
/**
|
32 |
* @var null|Exception
|
33 |
*/
|
34 |
private $_previous = null;
|
|
|
35 |
/**
|
36 |
* Construct the exception
|
37 |
*
|
42 |
*/
|
43 |
public function __construct($msg = '', $code = 0, Exception $previous = null) {
|
44 |
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
|
45 |
+
parent::__construct($msg, (int) $code);
|
46 |
+
$this->_previous = $previous;
|
47 |
} else {
|
48 |
+
parent::__construct($msg, (int) $code, $previous);
|
49 |
}
|
50 |
}
|
|
|
51 |
/**
|
52 |
* Overloading
|
53 |
*
|
59 |
*/
|
60 |
public function __call($method, array $args) {
|
61 |
if ('getprevious' == strtolower($method)) {
|
62 |
+
return $this->_getPrevious();
|
63 |
}
|
64 |
return null;
|
65 |
}
|
|
|
66 |
/**
|
67 |
* String representation of the exception
|
68 |
*
|
70 |
*/
|
71 |
public function __toString() {
|
72 |
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
|
73 |
+
if (null !== ($e = $this->getPrevious())) {
|
74 |
+
return $e->__toString()
|
75 |
+
. "\n\nNext "
|
76 |
+
. parent::__toString();
|
77 |
+
}
|
78 |
}
|
79 |
return parent::__toString();
|
80 |
}
|
|
|
81 |
/**
|
82 |
* Returns previous Exception
|
83 |
*
|
86 |
protected function _getPrevious() {
|
87 |
return $this->_previous;
|
88 |
}
|
89 |
+
}
|
|
lib/zend/loader.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Zend Framework
|
5 |
*
|
@@ -30,9 +29,7 @@ if (!defined("ABSPATH")) {
|
|
30 |
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
|
31 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
32 |
*/
|
33 |
-
|
34 |
class mail_bank_Zend_Loader {
|
35 |
-
|
36 |
/**
|
37 |
* Loads a class from a PHP file. The filename must be formatted
|
38 |
* as "$class.php".
|
@@ -55,44 +52,43 @@ class mail_bank_Zend_Loader {
|
|
55 |
*/
|
56 |
public static function loadClass($class, $dirs = null) {
|
57 |
if (class_exists($class, false) || interface_exists($class, false)) {
|
58 |
-
|
59 |
}
|
60 |
|
61 |
if ((null !== $dirs) && !is_string($dirs) && !is_array($dirs)) {
|
62 |
-
|
63 |
-
|
64 |
|
65 |
-
|
66 |
}
|
67 |
|
68 |
$file = self::standardiseFile($class);
|
69 |
if (!empty($dirs)) {
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
} else {
|
86 |
-
|
87 |
}
|
88 |
if (!class_exists($class, false) && !interface_exists($class, false)) {
|
89 |
-
|
90 |
-
|
91 |
|
92 |
-
|
93 |
}
|
94 |
}
|
95 |
-
|
96 |
/**
|
97 |
* Loads a PHP file. This is a wrapper for PHP's include() function.
|
98 |
*
|
@@ -124,35 +120,34 @@ class mail_bank_Zend_Loader {
|
|
124 |
*/
|
125 |
$incPath = false;
|
126 |
if (!empty($dirs) && (is_array($dirs) || is_string($dirs))) {
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
}
|
133 |
|
134 |
/**
|
135 |
* Try finding for the plain filename in the include_path.
|
136 |
*/
|
137 |
if ($once) {
|
138 |
-
|
139 |
-
|
140 |
}
|
141 |
else {
|
142 |
-
|
143 |
-
|
144 |
}
|
145 |
|
146 |
/**
|
147 |
* If searching in directories, reset include_path
|
148 |
*/
|
149 |
if ($incPath) {
|
150 |
-
|
151 |
}
|
152 |
|
153 |
return true;
|
154 |
}
|
155 |
-
|
156 |
/**
|
157 |
* Returns TRUE if the $filename is readable, or FALSE otherwise.
|
158 |
* This function uses the PHP include_path, where PHP's is_readable()
|
@@ -168,33 +163,32 @@ class mail_bank_Zend_Loader {
|
|
168 |
*/
|
169 |
public static function isReadable($filename) {
|
170 |
if (is_readable($filename)) {
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
}
|
175 |
|
176 |
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' && preg_match('/^[a-z]:/i', $filename)
|
177 |
) {
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
}
|
182 |
|
183 |
foreach (self::explodeIncludePath() as $path) {
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
}
|
195 |
return false;
|
196 |
}
|
197 |
-
|
198 |
/**
|
199 |
* Explode an include path into an array
|
200 |
*
|
@@ -206,20 +200,19 @@ class mail_bank_Zend_Loader {
|
|
206 |
*/
|
207 |
public static function explodeIncludePath($path = null) {
|
208 |
if (null === $path) {
|
209 |
-
|
210 |
}
|
211 |
|
212 |
if (PATH_SEPARATOR == ':') {
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
} else {
|
218 |
-
|
219 |
}
|
220 |
return $paths;
|
221 |
}
|
222 |
-
|
223 |
/**
|
224 |
* spl_autoload() suitable implementation for supporting class autoloading.
|
225 |
*
|
@@ -235,13 +228,12 @@ class mail_bank_Zend_Loader {
|
|
235 |
public static function autoload($class) {
|
236 |
trigger_error(__CLASS__ . '::' . __METHOD__ . ' is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead', E_USER_NOTICE);
|
237 |
try {
|
238 |
-
|
239 |
-
|
240 |
} catch (Exception $e) {
|
241 |
-
|
242 |
}
|
243 |
}
|
244 |
-
|
245 |
/**
|
246 |
* Register {@link autoload()} with spl_autoload()
|
247 |
*
|
@@ -255,31 +247,30 @@ class mail_bank_Zend_Loader {
|
|
255 |
public static function registerAutoload($class = 'mail_bank_Zend_Loader', $enabled = true) {
|
256 |
trigger_error(__CLASS__ . '::' . __METHOD__ . ' is deprecated as of 1.8.0 and will be removed with 2.0.0; use mail_bank_Zend_Loader_Autoloader instead', E_USER_NOTICE);
|
257 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/loader/autoloader.php'))
|
258 |
-
|
259 |
|
260 |
$autoloader = mail_bank_Zend_Loader_Autoloader::getInstance();
|
261 |
$autoloader->setFallbackAutoloader(true);
|
262 |
|
263 |
if ('mail_bank_Zend_Loader' != $class) {
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
|
270 |
-
|
271 |
-
|
272 |
|
273 |
-
|
274 |
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
}
|
281 |
}
|
282 |
-
|
283 |
/**
|
284 |
* Ensure that filename does not contain exploits
|
285 |
*
|
@@ -292,13 +283,12 @@ class mail_bank_Zend_Loader {
|
|
292 |
* Security check
|
293 |
*/
|
294 |
if (preg_match('/[^a-z0-9\\/\\\\_.:-]/i', $filename)) {
|
295 |
-
|
296 |
-
|
297 |
|
298 |
-
|
299 |
}
|
300 |
}
|
301 |
-
|
302 |
/**
|
303 |
* Attempt to include() the file.
|
304 |
*
|
@@ -315,15 +305,14 @@ class mail_bank_Zend_Loader {
|
|
315 |
*/
|
316 |
protected static function _includeFile($filespec, $once = false) {
|
317 |
if ($once) {
|
318 |
-
|
319 |
-
|
320 |
}
|
321 |
else {
|
322 |
-
|
323 |
-
|
324 |
}
|
325 |
}
|
326 |
-
|
327 |
/**
|
328 |
* Standardise the filename.
|
329 |
*
|
@@ -341,12 +330,11 @@ class mail_bank_Zend_Loader {
|
|
341 |
$file = '';
|
342 |
$namespace = '';
|
343 |
if ($lastNsPos = strripos($fileName, '\\')) {
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
}
|
348 |
$file .= str_replace('_', DIRECTORY_SEPARATOR, $fileName) . '.php';
|
349 |
return $file;
|
350 |
}
|
351 |
-
|
352 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Zend Framework
|
4 |
*
|
29 |
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
|
30 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
31 |
*/
|
|
|
32 |
class mail_bank_Zend_Loader {
|
|
|
33 |
/**
|
34 |
* Loads a class from a PHP file. The filename must be formatted
|
35 |
* as "$class.php".
|
52 |
*/
|
53 |
public static function loadClass($class, $dirs = null) {
|
54 |
if (class_exists($class, false) || interface_exists($class, false)) {
|
55 |
+
return;
|
56 |
}
|
57 |
|
58 |
if ((null !== $dirs) && !is_string($dirs) && !is_array($dirs)) {
|
59 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/exception.php'))
|
60 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/exception.php';
|
61 |
|
62 |
+
throw new mail_bank_Zend_Exception('Directory argument must be a string or an array');
|
63 |
}
|
64 |
|
65 |
$file = self::standardiseFile($class);
|
66 |
if (!empty($dirs)) {
|
67 |
+
// use the autodiscovered path
|
68 |
+
$dirPath = dirname($file);
|
69 |
+
if (is_string($dirs)) {
|
70 |
+
$dirs = explode(PATH_SEPARATOR, $dirs);
|
71 |
+
}
|
72 |
+
foreach ($dirs as $key => $dir) {
|
73 |
+
if ($dir == '.') {
|
74 |
+
$dirs[$key] = $dirPath;
|
75 |
+
} else {
|
76 |
+
$dir = rtrim($dir, '\\/');
|
77 |
+
$dirs[$key] = $dir . DIRECTORY_SEPARATOR . $dirPath;
|
78 |
+
}
|
79 |
+
}
|
80 |
+
$file = basename($file);
|
81 |
+
self::loadFile($file, $dirs, true);
|
82 |
} else {
|
83 |
+
self::loadFile($file, null, true);
|
84 |
}
|
85 |
if (!class_exists($class, false) && !interface_exists($class, false)) {
|
86 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/exception.php'))
|
87 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/exception.php';
|
88 |
|
89 |
+
throw new mail_bank_Zend_Exception("File \"$file\" does not exist or class \"$class\" was not found in the file");
|
90 |
}
|
91 |
}
|
|
|
92 |
/**
|
93 |
* Loads a PHP file. This is a wrapper for PHP's include() function.
|
94 |
*
|
120 |
*/
|
121 |
$incPath = false;
|
122 |
if (!empty($dirs) && (is_array($dirs) || is_string($dirs))) {
|
123 |
+
if (is_array($dirs)) {
|
124 |
+
$dirs = implode(PATH_SEPARATOR, $dirs);
|
125 |
+
}
|
126 |
+
$incPath = get_include_path();
|
127 |
+
set_include_path($dirs . PATH_SEPARATOR . $incPath);
|
128 |
}
|
129 |
|
130 |
/**
|
131 |
* Try finding for the plain filename in the include_path.
|
132 |
*/
|
133 |
if ($once) {
|
134 |
+
if (file_exists($filename))
|
135 |
+
include_once $filename;
|
136 |
}
|
137 |
else {
|
138 |
+
if (file_exists($filename))
|
139 |
+
include $filename;
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
* If searching in directories, reset include_path
|
144 |
*/
|
145 |
if ($incPath) {
|
146 |
+
set_include_path($incPath);
|
147 |
}
|
148 |
|
149 |
return true;
|
150 |
}
|
|
|
151 |
/**
|
152 |
* Returns TRUE if the $filename is readable, or FALSE otherwise.
|
153 |
* This function uses the PHP include_path, where PHP's is_readable()
|
163 |
*/
|
164 |
public static function isReadable($filename) {
|
165 |
if (is_readable($filename)) {
|
166 |
+
// Return early if the filename is readable without needing the
|
167 |
+
// include_path
|
168 |
+
return true;
|
169 |
}
|
170 |
|
171 |
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' && preg_match('/^[a-z]:/i', $filename)
|
172 |
) {
|
173 |
+
// If on windows, and path provided is clearly an absolute path,
|
174 |
+
// return false immediately
|
175 |
+
return false;
|
176 |
}
|
177 |
|
178 |
foreach (self::explodeIncludePath() as $path) {
|
179 |
+
if ($path == '.') {
|
180 |
+
if (is_readable($filename)) {
|
181 |
+
return true;
|
182 |
+
}
|
183 |
+
continue;
|
184 |
+
}
|
185 |
+
$file = $path . '/' . $filename;
|
186 |
+
if (is_readable($file)) {
|
187 |
+
return true;
|
188 |
+
}
|
189 |
}
|
190 |
return false;
|
191 |
}
|
|
|
192 |
/**
|
193 |
* Explode an include path into an array
|
194 |
*
|
200 |
*/
|
201 |
public static function explodeIncludePath($path = null) {
|
202 |
if (null === $path) {
|
203 |
+
$path = get_include_path();
|
204 |
}
|
205 |
|
206 |
if (PATH_SEPARATOR == ':') {
|
207 |
+
// On *nix systems, include_paths which include paths with a stream
|
208 |
+
// schema cannot be safely explode'd, so we have to be a bit more
|
209 |
+
// intelligent in the approach.
|
210 |
+
$paths = preg_split('#:(?!//)#', $path);
|
211 |
} else {
|
212 |
+
$paths = explode(PATH_SEPARATOR, $path);
|
213 |
}
|
214 |
return $paths;
|
215 |
}
|
|
|
216 |
/**
|
217 |
* spl_autoload() suitable implementation for supporting class autoloading.
|
218 |
*
|
228 |
public static function autoload($class) {
|
229 |
trigger_error(__CLASS__ . '::' . __METHOD__ . ' is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead', E_USER_NOTICE);
|
230 |
try {
|
231 |
+
@self::loadClass($class);
|
232 |
+
return $class;
|
233 |
} catch (Exception $e) {
|
234 |
+
return false;
|
235 |
}
|
236 |
}
|
|
|
237 |
/**
|
238 |
* Register {@link autoload()} with spl_autoload()
|
239 |
*
|
247 |
public static function registerAutoload($class = 'mail_bank_Zend_Loader', $enabled = true) {
|
248 |
trigger_error(__CLASS__ . '::' . __METHOD__ . ' is deprecated as of 1.8.0 and will be removed with 2.0.0; use mail_bank_Zend_Loader_Autoloader instead', E_USER_NOTICE);
|
249 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/loader/autoloader.php'))
|
250 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/loader/autoloader.php';
|
251 |
|
252 |
$autoloader = mail_bank_Zend_Loader_Autoloader::getInstance();
|
253 |
$autoloader->setFallbackAutoloader(true);
|
254 |
|
255 |
if ('mail_bank_Zend_Loader' != $class) {
|
256 |
+
self::loadClass($class);
|
257 |
+
$methods = get_class_methods($class);
|
258 |
+
if (!in_array('autoload', (array) $methods)) {
|
259 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/exception.php'))
|
260 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/exception.php';
|
261 |
|
262 |
+
throw new mail_bank_Zend_Exception("The class \"$class\" does not have an autoload() method");
|
263 |
+
}
|
264 |
|
265 |
+
$callback = array($class, 'autoload');
|
266 |
|
267 |
+
if ($enabled) {
|
268 |
+
$autoloader->pushAutoloader($callback);
|
269 |
+
} else {
|
270 |
+
$autoloader->removeAutoloader($callback);
|
271 |
+
}
|
272 |
}
|
273 |
}
|
|
|
274 |
/**
|
275 |
* Ensure that filename does not contain exploits
|
276 |
*
|
283 |
* Security check
|
284 |
*/
|
285 |
if (preg_match('/[^a-z0-9\\/\\\\_.:-]/i', $filename)) {
|
286 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/exception.php'))
|
287 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/exception.php';
|
288 |
|
289 |
+
throw new mail_bank_Zend_Exception('Security check: Illegal character in filename');
|
290 |
}
|
291 |
}
|
|
|
292 |
/**
|
293 |
* Attempt to include() the file.
|
294 |
*
|
305 |
*/
|
306 |
protected static function _includeFile($filespec, $once = false) {
|
307 |
if ($once) {
|
308 |
+
if (file_exists($filespec))
|
309 |
+
return include_once $filespec;
|
310 |
}
|
311 |
else {
|
312 |
+
if (file_exists($filespec))
|
313 |
+
return include $filespec;
|
314 |
}
|
315 |
}
|
|
|
316 |
/**
|
317 |
* Standardise the filename.
|
318 |
*
|
330 |
$file = '';
|
331 |
$namespace = '';
|
332 |
if ($lastNsPos = strripos($fileName, '\\')) {
|
333 |
+
$namespace = substr($fileName, 0, $lastNsPos);
|
334 |
+
$fileName = substr($fileName, $lastNsPos + 1);
|
335 |
+
$file = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
|
336 |
}
|
337 |
$file .= str_replace('_', DIRECTORY_SEPARATOR, $fileName) . '.php';
|
338 |
return $file;
|
339 |
}
|
340 |
+
}
|
|
lib/zend/loader/autoloader.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Zend Framework
|
5 |
*
|
@@ -26,7 +25,6 @@ if (!defined("ABSPATH")) {
|
|
26 |
/** Zend_Loader */
|
27 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/loader.php'))
|
28 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/loader.php';
|
29 |
-
|
30 |
/**
|
31 |
* Autoloader stack and namespace autoloader
|
32 |
* @uses mail_bank_Zend_Loader_Autoloader
|
@@ -36,32 +34,26 @@ if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/loader.php'))
|
|
36 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
37 |
*/
|
38 |
class mail_bank_Zend_Loader_Autoloader {
|
39 |
-
|
40 |
/**
|
41 |
* @var mail_bank_Zend_Loader_Autoloader Singleton instance
|
42 |
*/
|
43 |
protected static $_instance;
|
44 |
-
|
45 |
/**
|
46 |
* @var array Concrete autoloader callback implementations
|
47 |
*/
|
48 |
protected $_autoloaders = array();
|
49 |
-
|
50 |
/**
|
51 |
* @var array Default autoloader callback
|
52 |
*/
|
53 |
protected $_defaultAutoloader = array('mail_bank_Zend_Loader', 'loadClass');
|
54 |
-
|
55 |
/**
|
56 |
* @var bool Whether or not to act as a fallback autoloader
|
57 |
*/
|
58 |
protected $_fallbackAutoloader = false;
|
59 |
-
|
60 |
/**
|
61 |
* @var array Callback for internal autoloader implementation
|
62 |
*/
|
63 |
protected $_internalAutoloader;
|
64 |
-
|
65 |
/**
|
66 |
* @var array Supported namespaces 'Zend' and 'ZendX' by default.
|
67 |
*/
|
@@ -69,22 +61,18 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
69 |
'mail_bank_Zend_' => true,
|
70 |
'ZendX_' => true,
|
71 |
);
|
72 |
-
|
73 |
/**
|
74 |
* @var array Namespace-specific autoloaders
|
75 |
*/
|
76 |
protected $_namespaceAutoloaders = array();
|
77 |
-
|
78 |
/**
|
79 |
* @var bool Whether or not to suppress file not found warnings
|
80 |
*/
|
81 |
protected $_suppressNotFoundWarnings = false;
|
82 |
-
|
83 |
/**
|
84 |
* @var null|string
|
85 |
*/
|
86 |
protected $_zfPath;
|
87 |
-
|
88 |
/**
|
89 |
* Retrieve singleton instance
|
90 |
*
|
@@ -92,11 +80,10 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
92 |
*/
|
93 |
public static function getInstance() {
|
94 |
if (null === self::$_instance) {
|
95 |
-
|
96 |
}
|
97 |
return self::$_instance;
|
98 |
}
|
99 |
-
|
100 |
/**
|
101 |
* Reset the singleton instance
|
102 |
*
|
@@ -105,7 +92,6 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
105 |
public static function resetInstance() {
|
106 |
self::$_instance = null;
|
107 |
}
|
108 |
-
|
109 |
/**
|
110 |
* Autoload a class
|
111 |
*
|
@@ -116,23 +102,22 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
116 |
$self = self::getInstance();
|
117 |
|
118 |
foreach ($self->getClassAutoloaders($class) as $autoloader) {
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
}
|
133 |
return false;
|
134 |
}
|
135 |
-
|
136 |
/**
|
137 |
* Set the default autoloader implementation
|
138 |
*
|
@@ -141,13 +126,12 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
141 |
*/
|
142 |
public function setDefaultAutoloader($callback) {
|
143 |
if (!is_callable($callback)) {
|
144 |
-
|
145 |
}
|
146 |
|
147 |
$this->_defaultAutoloader = $callback;
|
148 |
return $this;
|
149 |
}
|
150 |
-
|
151 |
/**
|
152 |
* Retrieve the default autoloader callback
|
153 |
*
|
@@ -156,7 +140,6 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
156 |
public function getDefaultAutoloader() {
|
157 |
return $this->_defaultAutoloader;
|
158 |
}
|
159 |
-
|
160 |
/**
|
161 |
* Set several autoloader callbacks at once
|
162 |
*
|
@@ -167,7 +150,6 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
167 |
$this->_autoloaders = $autoloaders;
|
168 |
return $this;
|
169 |
}
|
170 |
-
|
171 |
/**
|
172 |
* Get attached autoloader implementations
|
173 |
*
|
@@ -176,7 +158,6 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
176 |
public function getAutoloaders() {
|
177 |
return $this->_autoloaders;
|
178 |
}
|
179 |
-
|
180 |
/**
|
181 |
* Return all autoloaders for a given namespace
|
182 |
*
|
@@ -186,11 +167,10 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
186 |
public function getNamespaceAutoloaders($namespace) {
|
187 |
$namespace = (string) $namespace;
|
188 |
if (!array_key_exists($namespace, $this->_namespaceAutoloaders)) {
|
189 |
-
|
190 |
}
|
191 |
return $this->_namespaceAutoloaders[$namespace];
|
192 |
}
|
193 |
-
|
194 |
/**
|
195 |
* Register a namespace to autoload
|
196 |
*
|
@@ -199,19 +179,18 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
199 |
*/
|
200 |
public function registerNamespace($namespace) {
|
201 |
if (is_string($namespace)) {
|
202 |
-
|
203 |
} elseif (!is_array($namespace)) {
|
204 |
-
|
205 |
}
|
206 |
|
207 |
foreach ($namespace as $ns) {
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
}
|
212 |
return $this;
|
213 |
}
|
214 |
-
|
215 |
/**
|
216 |
* Unload a registered autoload namespace
|
217 |
*
|
@@ -220,19 +199,18 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
220 |
*/
|
221 |
public function unregisterNamespace($namespace) {
|
222 |
if (is_string($namespace)) {
|
223 |
-
|
224 |
} elseif (!is_array($namespace)) {
|
225 |
-
|
226 |
}
|
227 |
|
228 |
foreach ($namespace as $ns) {
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
}
|
233 |
return $this;
|
234 |
}
|
235 |
-
|
236 |
/**
|
237 |
* Get a list of registered autoload namespaces
|
238 |
*
|
@@ -241,31 +219,28 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
241 |
public function getRegisteredNamespaces() {
|
242 |
return array_keys($this->_namespaces);
|
243 |
}
|
244 |
-
|
245 |
public function setZfPath($spec, $version = 'latest') {
|
246 |
$path = $spec;
|
247 |
if (is_array($spec)) {
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
}
|
256 |
|
257 |
$this->_zfPath = $this->_getVersionPath($path, $version);
|
258 |
set_include_path(implode(PATH_SEPARATOR, array(
|
259 |
-
|
260 |
-
|
261 |
)));
|
262 |
return $this;
|
263 |
}
|
264 |
-
|
265 |
public function getZfPath() {
|
266 |
return $this->_zfPath;
|
267 |
}
|
268 |
-
|
269 |
/**
|
270 |
* Get or set the value of the "suppress not found warnings" flag
|
271 |
*
|
@@ -274,12 +249,11 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
274 |
*/
|
275 |
public function suppressNotFoundWarnings($flag = null) {
|
276 |
if (null === $flag) {
|
277 |
-
|
278 |
}
|
279 |
$this->_suppressNotFoundWarnings = (bool) $flag;
|
280 |
return $this;
|
281 |
}
|
282 |
-
|
283 |
/**
|
284 |
* Indicate whether or not this autoloader should be a fallback autoloader
|
285 |
*
|
@@ -290,7 +264,6 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
290 |
$this->_fallbackAutoloader = (bool) $flag;
|
291 |
return $this;
|
292 |
}
|
293 |
-
|
294 |
/**
|
295 |
* Is this instance acting as a fallback autoloader?
|
296 |
*
|
@@ -299,7 +272,6 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
299 |
public function isFallbackAutoloader() {
|
300 |
return $this->_fallbackAutoloader;
|
301 |
}
|
302 |
-
|
303 |
/**
|
304 |
* Get autoloaders to use when matching class
|
305 |
*
|
@@ -316,43 +288,42 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
316 |
|
317 |
// Add concrete namespaced autoloaders
|
318 |
foreach (array_keys($this->_namespaceAutoloaders) as $ns) {
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
}
|
329 |
|
330 |
// Add internal namespaced autoloader
|
331 |
foreach ($this->getRegisteredNamespaces() as $ns) {
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
}
|
338 |
|
339 |
// Add non-namespaced autoloaders
|
340 |
$autoloadersNonNamespace = $this->getNamespaceAutoloaders('');
|
341 |
if (count($autoloadersNonNamespace)) {
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
}
|
347 |
|
348 |
// Add fallback autoloader
|
349 |
if (!$namespace && $this->isFallbackAutoloader()) {
|
350 |
-
|
351 |
}
|
352 |
|
353 |
return $autoloaders;
|
354 |
}
|
355 |
-
|
356 |
/**
|
357 |
* Add an autoloader to the beginning of the stack
|
358 |
*
|
@@ -367,14 +338,13 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
367 |
|
368 |
$namespace = (array) $namespace;
|
369 |
foreach ($namespace as $ns) {
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
}
|
374 |
|
375 |
return $this;
|
376 |
}
|
377 |
-
|
378 |
/**
|
379 |
* Append an autoloader to the autoloader stack
|
380 |
*
|
@@ -389,14 +359,13 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
389 |
|
390 |
$namespace = (array) $namespace;
|
391 |
foreach ($namespace as $ns) {
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
}
|
396 |
|
397 |
return $this;
|
398 |
}
|
399 |
-
|
400 |
/**
|
401 |
* Remove an autoloader from the autoloader stack
|
402 |
*
|
@@ -406,32 +375,31 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
406 |
*/
|
407 |
public function removeAutoloader($callback, $namespace = null) {
|
408 |
if (null === $namespace) {
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
} else {
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
}
|
431 |
|
432 |
return $this;
|
433 |
}
|
434 |
-
|
435 |
/**
|
436 |
* Constructor
|
437 |
*
|
@@ -443,7 +411,6 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
443 |
spl_autoload_register(array(__CLASS__, 'autoload'));
|
444 |
$this->_internalAutoloader = array($this, '_autoload');
|
445 |
}
|
446 |
-
|
447 |
/**
|
448 |
* Internal autoloader implementation
|
449 |
*
|
@@ -453,17 +420,16 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
453 |
protected function _autoload($class) {
|
454 |
$callback = $this->getDefaultAutoloader();
|
455 |
try {
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
} catch (mail_bank_Zend_Exception $e) {
|
463 |
-
|
464 |
}
|
465 |
}
|
466 |
-
|
467 |
/**
|
468 |
* Set autoloaders for a specific namespace
|
469 |
*
|
@@ -476,7 +442,6 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
476 |
$this->_namespaceAutoloaders[$namespace] = $autoloaders;
|
477 |
return $this;
|
478 |
}
|
479 |
-
|
480 |
/**
|
481 |
* Retrieve the filesystem path for the requested ZF version
|
482 |
*
|
@@ -488,18 +453,17 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
488 |
$type = $this->_getVersionType($version);
|
489 |
|
490 |
if ($type == 'latest') {
|
491 |
-
|
492 |
}
|
493 |
|
494 |
$availableVersions = $this->_getAvailableVersions($path, $version);
|
495 |
if (empty($availableVersions)) {
|
496 |
-
|
497 |
}
|
498 |
|
499 |
$matchedVersion = array_pop($availableVersions);
|
500 |
return $matchedVersion;
|
501 |
}
|
502 |
-
|
503 |
/**
|
504 |
* Retrieve the ZF version type
|
505 |
*
|
@@ -509,23 +473,22 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
509 |
*/
|
510 |
protected function _getVersionType($version) {
|
511 |
if (strtolower($version) == 'latest') {
|
512 |
-
|
513 |
}
|
514 |
|
515 |
$parts = explode('.', $version);
|
516 |
$count = count($parts);
|
517 |
if (1 == $count) {
|
518 |
-
|
519 |
}
|
520 |
if (2 == $count) {
|
521 |
-
|
522 |
}
|
523 |
if (3 < $count) {
|
524 |
-
|
525 |
}
|
526 |
return 'specific';
|
527 |
}
|
528 |
-
|
529 |
/**
|
530 |
* Get available versions for the version type requested
|
531 |
*
|
@@ -535,7 +498,7 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
535 |
*/
|
536 |
protected function _getAvailableVersions($path, $version) {
|
537 |
if (!is_dir($path)) {
|
538 |
-
|
539 |
}
|
540 |
|
541 |
$path = rtrim($path, '/');
|
@@ -544,21 +507,20 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
544 |
$versions = array();
|
545 |
$dirs = glob("$path/*", GLOB_ONLYDIR);
|
546 |
foreach ((array) $dirs as $dir) {
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
|
552 |
-
|
553 |
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
}
|
559 |
|
560 |
uksort($versions, 'version_compare');
|
561 |
return $versions;
|
562 |
}
|
563 |
-
|
564 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Zend Framework
|
4 |
*
|
25 |
/** Zend_Loader */
|
26 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/loader.php'))
|
27 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/loader.php';
|
|
|
28 |
/**
|
29 |
* Autoloader stack and namespace autoloader
|
30 |
* @uses mail_bank_Zend_Loader_Autoloader
|
34 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
35 |
*/
|
36 |
class mail_bank_Zend_Loader_Autoloader {
|
|
|
37 |
/**
|
38 |
* @var mail_bank_Zend_Loader_Autoloader Singleton instance
|
39 |
*/
|
40 |
protected static $_instance;
|
|
|
41 |
/**
|
42 |
* @var array Concrete autoloader callback implementations
|
43 |
*/
|
44 |
protected $_autoloaders = array();
|
|
|
45 |
/**
|
46 |
* @var array Default autoloader callback
|
47 |
*/
|
48 |
protected $_defaultAutoloader = array('mail_bank_Zend_Loader', 'loadClass');
|
|
|
49 |
/**
|
50 |
* @var bool Whether or not to act as a fallback autoloader
|
51 |
*/
|
52 |
protected $_fallbackAutoloader = false;
|
|
|
53 |
/**
|
54 |
* @var array Callback for internal autoloader implementation
|
55 |
*/
|
56 |
protected $_internalAutoloader;
|
|
|
57 |
/**
|
58 |
* @var array Supported namespaces 'Zend' and 'ZendX' by default.
|
59 |
*/
|
61 |
'mail_bank_Zend_' => true,
|
62 |
'ZendX_' => true,
|
63 |
);
|
|
|
64 |
/**
|
65 |
* @var array Namespace-specific autoloaders
|
66 |
*/
|
67 |
protected $_namespaceAutoloaders = array();
|
|
|
68 |
/**
|
69 |
* @var bool Whether or not to suppress file not found warnings
|
70 |
*/
|
71 |
protected $_suppressNotFoundWarnings = false;
|
|
|
72 |
/**
|
73 |
* @var null|string
|
74 |
*/
|
75 |
protected $_zfPath;
|
|
|
76 |
/**
|
77 |
* Retrieve singleton instance
|
78 |
*
|
80 |
*/
|
81 |
public static function getInstance() {
|
82 |
if (null === self::$_instance) {
|
83 |
+
self::$_instance = new self();
|
84 |
}
|
85 |
return self::$_instance;
|
86 |
}
|
|
|
87 |
/**
|
88 |
* Reset the singleton instance
|
89 |
*
|
92 |
public static function resetInstance() {
|
93 |
self::$_instance = null;
|
94 |
}
|
|
|
95 |
/**
|
96 |
* Autoload a class
|
97 |
*
|
102 |
$self = self::getInstance();
|
103 |
|
104 |
foreach ($self->getClassAutoloaders($class) as $autoloader) {
|
105 |
+
if ($autoloader instanceof mail_bank_Zend_Loader_Autoloader_Interface) {
|
106 |
+
if ($autoloader->autoload($class)) {
|
107 |
+
return true;
|
108 |
+
}
|
109 |
+
} elseif (is_array($autoloader)) {
|
110 |
+
if (call_user_func($autoloader, $class)) {
|
111 |
+
return true;
|
112 |
+
}
|
113 |
+
} elseif (is_string($autoloader) || is_callable($autoloader)) {
|
114 |
+
if ($autoloader($class)) {
|
115 |
+
return true;
|
116 |
+
}
|
117 |
+
}
|
118 |
}
|
119 |
return false;
|
120 |
}
|
|
|
121 |
/**
|
122 |
* Set the default autoloader implementation
|
123 |
*
|
126 |
*/
|
127 |
public function setDefaultAutoloader($callback) {
|
128 |
if (!is_callable($callback)) {
|
129 |
+
throw new mail_bank_Zend_Loader_Exception('Invalid callback specified for default autoloader');
|
130 |
}
|
131 |
|
132 |
$this->_defaultAutoloader = $callback;
|
133 |
return $this;
|
134 |
}
|
|
|
135 |
/**
|
136 |
* Retrieve the default autoloader callback
|
137 |
*
|
140 |
public function getDefaultAutoloader() {
|
141 |
return $this->_defaultAutoloader;
|
142 |
}
|
|
|
143 |
/**
|
144 |
* Set several autoloader callbacks at once
|
145 |
*
|
150 |
$this->_autoloaders = $autoloaders;
|
151 |
return $this;
|
152 |
}
|
|
|
153 |
/**
|
154 |
* Get attached autoloader implementations
|
155 |
*
|
158 |
public function getAutoloaders() {
|
159 |
return $this->_autoloaders;
|
160 |
}
|
|
|
161 |
/**
|
162 |
* Return all autoloaders for a given namespace
|
163 |
*
|
167 |
public function getNamespaceAutoloaders($namespace) {
|
168 |
$namespace = (string) $namespace;
|
169 |
if (!array_key_exists($namespace, $this->_namespaceAutoloaders)) {
|
170 |
+
return array();
|
171 |
}
|
172 |
return $this->_namespaceAutoloaders[$namespace];
|
173 |
}
|
|
|
174 |
/**
|
175 |
* Register a namespace to autoload
|
176 |
*
|
179 |
*/
|
180 |
public function registerNamespace($namespace) {
|
181 |
if (is_string($namespace)) {
|
182 |
+
$namespace = (array) $namespace;
|
183 |
} elseif (!is_array($namespace)) {
|
184 |
+
throw new mail_bank_Zend_Loader_Exception('Invalid namespace provided');
|
185 |
}
|
186 |
|
187 |
foreach ($namespace as $ns) {
|
188 |
+
if (!isset($this->_namespaces[$ns])) {
|
189 |
+
$this->_namespaces[$ns] = true;
|
190 |
+
}
|
191 |
}
|
192 |
return $this;
|
193 |
}
|
|
|
194 |
/**
|
195 |
* Unload a registered autoload namespace
|
196 |
*
|
199 |
*/
|
200 |
public function unregisterNamespace($namespace) {
|
201 |
if (is_string($namespace)) {
|
202 |
+
$namespace = (array) $namespace;
|
203 |
} elseif (!is_array($namespace)) {
|
204 |
+
throw new mail_bank_Zend_Loader_Exception('Invalid namespace provided');
|
205 |
}
|
206 |
|
207 |
foreach ($namespace as $ns) {
|
208 |
+
if (isset($this->_namespaces[$ns])) {
|
209 |
+
unset($this->_namespaces[$ns]);
|
210 |
+
}
|
211 |
}
|
212 |
return $this;
|
213 |
}
|
|
|
214 |
/**
|
215 |
* Get a list of registered autoload namespaces
|
216 |
*
|
219 |
public function getRegisteredNamespaces() {
|
220 |
return array_keys($this->_namespaces);
|
221 |
}
|
|
|
222 |
public function setZfPath($spec, $version = 'latest') {
|
223 |
$path = $spec;
|
224 |
if (is_array($spec)) {
|
225 |
+
if (!isset($spec['path'])) {
|
226 |
+
throw new mail_bank_Zend_Loader_Exception('No path specified for ZF');
|
227 |
+
}
|
228 |
+
$path = $spec['path'];
|
229 |
+
if (isset($spec['version'])) {
|
230 |
+
$version = $spec['version'];
|
231 |
+
}
|
232 |
}
|
233 |
|
234 |
$this->_zfPath = $this->_getVersionPath($path, $version);
|
235 |
set_include_path(implode(PATH_SEPARATOR, array(
|
236 |
+
$this->_zfPath,
|
237 |
+
get_include_path(),
|
238 |
)));
|
239 |
return $this;
|
240 |
}
|
|
|
241 |
public function getZfPath() {
|
242 |
return $this->_zfPath;
|
243 |
}
|
|
|
244 |
/**
|
245 |
* Get or set the value of the "suppress not found warnings" flag
|
246 |
*
|
249 |
*/
|
250 |
public function suppressNotFoundWarnings($flag = null) {
|
251 |
if (null === $flag) {
|
252 |
+
return $this->_suppressNotFoundWarnings;
|
253 |
}
|
254 |
$this->_suppressNotFoundWarnings = (bool) $flag;
|
255 |
return $this;
|
256 |
}
|
|
|
257 |
/**
|
258 |
* Indicate whether or not this autoloader should be a fallback autoloader
|
259 |
*
|
264 |
$this->_fallbackAutoloader = (bool) $flag;
|
265 |
return $this;
|
266 |
}
|
|
|
267 |
/**
|
268 |
* Is this instance acting as a fallback autoloader?
|
269 |
*
|
272 |
public function isFallbackAutoloader() {
|
273 |
return $this->_fallbackAutoloader;
|
274 |
}
|
|
|
275 |
/**
|
276 |
* Get autoloaders to use when matching class
|
277 |
*
|
288 |
|
289 |
// Add concrete namespaced autoloaders
|
290 |
foreach (array_keys($this->_namespaceAutoloaders) as $ns) {
|
291 |
+
if ('' == $ns) {
|
292 |
+
continue;
|
293 |
+
}
|
294 |
+
if (0 === strpos($class, $ns)) {
|
295 |
+
if ((false === $namespace) || (strlen($ns) > strlen($namespace))) {
|
296 |
+
$namespace = $ns;
|
297 |
+
$autoloaders = $this->getNamespaceAutoloaders($ns);
|
298 |
+
}
|
299 |
+
}
|
300 |
}
|
301 |
|
302 |
// Add internal namespaced autoloader
|
303 |
foreach ($this->getRegisteredNamespaces() as $ns) {
|
304 |
+
if (0 === strpos($class, $ns)) {
|
305 |
+
$namespace = $ns;
|
306 |
+
$autoloaders[] = $this->_internalAutoloader;
|
307 |
+
break;
|
308 |
+
}
|
309 |
}
|
310 |
|
311 |
// Add non-namespaced autoloaders
|
312 |
$autoloadersNonNamespace = $this->getNamespaceAutoloaders('');
|
313 |
if (count($autoloadersNonNamespace)) {
|
314 |
+
foreach ($autoloadersNonNamespace as $ns) {
|
315 |
+
$autoloaders[] = $ns;
|
316 |
+
}
|
317 |
+
unset($autoloadersNonNamespace);
|
318 |
}
|
319 |
|
320 |
// Add fallback autoloader
|
321 |
if (!$namespace && $this->isFallbackAutoloader()) {
|
322 |
+
$autoloaders[] = $this->_internalAutoloader;
|
323 |
}
|
324 |
|
325 |
return $autoloaders;
|
326 |
}
|
|
|
327 |
/**
|
328 |
* Add an autoloader to the beginning of the stack
|
329 |
*
|
338 |
|
339 |
$namespace = (array) $namespace;
|
340 |
foreach ($namespace as $ns) {
|
341 |
+
$autoloaders = $this->getNamespaceAutoloaders($ns);
|
342 |
+
array_unshift($autoloaders, $callback);
|
343 |
+
$this->_setNamespaceAutoloaders($autoloaders, $ns);
|
344 |
}
|
345 |
|
346 |
return $this;
|
347 |
}
|
|
|
348 |
/**
|
349 |
* Append an autoloader to the autoloader stack
|
350 |
*
|
359 |
|
360 |
$namespace = (array) $namespace;
|
361 |
foreach ($namespace as $ns) {
|
362 |
+
$autoloaders = $this->getNamespaceAutoloaders($ns);
|
363 |
+
array_push($autoloaders, $callback);
|
364 |
+
$this->_setNamespaceAutoloaders($autoloaders, $ns);
|
365 |
}
|
366 |
|
367 |
return $this;
|
368 |
}
|
|
|
369 |
/**
|
370 |
* Remove an autoloader from the autoloader stack
|
371 |
*
|
375 |
*/
|
376 |
public function removeAutoloader($callback, $namespace = null) {
|
377 |
if (null === $namespace) {
|
378 |
+
$autoloaders = $this->getAutoloaders();
|
379 |
+
if (false !== ($index = array_search($callback, $autoloaders, true))) {
|
380 |
+
unset($autoloaders[$index]);
|
381 |
+
$this->setAutoloaders($autoloaders);
|
382 |
+
}
|
383 |
+
|
384 |
+
foreach ($this->_namespaceAutoloaders as $ns => $autoloaders) {
|
385 |
+
if (false !== ($index = array_search($callback, $autoloaders, true))) {
|
386 |
+
unset($autoloaders[$index]);
|
387 |
+
$this->_setNamespaceAutoloaders($autoloaders, $ns);
|
388 |
+
}
|
389 |
+
}
|
390 |
} else {
|
391 |
+
$namespace = (array) $namespace;
|
392 |
+
foreach ($namespace as $ns) {
|
393 |
+
$autoloaders = $this->getNamespaceAutoloaders($ns);
|
394 |
+
if (false !== ($index = array_search($callback, $autoloaders, true))) {
|
395 |
+
unset($autoloaders[$index]);
|
396 |
+
$this->_setNamespaceAutoloaders($autoloaders, $ns);
|
397 |
+
}
|
398 |
+
}
|
399 |
}
|
400 |
|
401 |
return $this;
|
402 |
}
|
|
|
403 |
/**
|
404 |
* Constructor
|
405 |
*
|
411 |
spl_autoload_register(array(__CLASS__, 'autoload'));
|
412 |
$this->_internalAutoloader = array($this, '_autoload');
|
413 |
}
|
|
|
414 |
/**
|
415 |
* Internal autoloader implementation
|
416 |
*
|
420 |
protected function _autoload($class) {
|
421 |
$callback = $this->getDefaultAutoloader();
|
422 |
try {
|
423 |
+
if ($this->suppressNotFoundWarnings()) {
|
424 |
+
@call_user_func($callback, $class);
|
425 |
+
} else {
|
426 |
+
call_user_func($callback, $class);
|
427 |
+
}
|
428 |
+
return $class;
|
429 |
} catch (mail_bank_Zend_Exception $e) {
|
430 |
+
return false;
|
431 |
}
|
432 |
}
|
|
|
433 |
/**
|
434 |
* Set autoloaders for a specific namespace
|
435 |
*
|
442 |
$this->_namespaceAutoloaders[$namespace] = $autoloaders;
|
443 |
return $this;
|
444 |
}
|
|
|
445 |
/**
|
446 |
* Retrieve the filesystem path for the requested ZF version
|
447 |
*
|
453 |
$type = $this->_getVersionType($version);
|
454 |
|
455 |
if ($type == 'latest') {
|
456 |
+
$version = 'latest';
|
457 |
}
|
458 |
|
459 |
$availableVersions = $this->_getAvailableVersions($path, $version);
|
460 |
if (empty($availableVersions)) {
|
461 |
+
throw new mail_bank_Zend_Loader_Exception('No valid ZF installations discovered');
|
462 |
}
|
463 |
|
464 |
$matchedVersion = array_pop($availableVersions);
|
465 |
return $matchedVersion;
|
466 |
}
|
|
|
467 |
/**
|
468 |
* Retrieve the ZF version type
|
469 |
*
|
473 |
*/
|
474 |
protected function _getVersionType($version) {
|
475 |
if (strtolower($version) == 'latest') {
|
476 |
+
return 'latest';
|
477 |
}
|
478 |
|
479 |
$parts = explode('.', $version);
|
480 |
$count = count($parts);
|
481 |
if (1 == $count) {
|
482 |
+
return 'major';
|
483 |
}
|
484 |
if (2 == $count) {
|
485 |
+
return 'minor';
|
486 |
}
|
487 |
if (3 < $count) {
|
488 |
+
throw new mail_bank_Zend_Loader_Exception('Invalid version string provided');
|
489 |
}
|
490 |
return 'specific';
|
491 |
}
|
|
|
492 |
/**
|
493 |
* Get available versions for the version type requested
|
494 |
*
|
498 |
*/
|
499 |
protected function _getAvailableVersions($path, $version) {
|
500 |
if (!is_dir($path)) {
|
501 |
+
throw new mail_bank_Zend_Loader_Exception('Invalid ZF path provided');
|
502 |
}
|
503 |
|
504 |
$path = rtrim($path, '/');
|
507 |
$versions = array();
|
508 |
$dirs = glob("$path/*", GLOB_ONLYDIR);
|
509 |
foreach ((array) $dirs as $dir) {
|
510 |
+
$dirName = substr($dir, strlen($path) + 1);
|
511 |
+
if (!preg_match('/^(?:ZendFramework-)?(\d+\.\d+\.\d+((a|b|pl|pr|p|rc)\d+)?)(?:-minimal)?$/i', $dirName, $matches)) {
|
512 |
+
continue;
|
513 |
+
}
|
514 |
|
515 |
+
$matchedVersion = $matches[1];
|
516 |
|
517 |
+
if (('latest' == $version) || ((strlen($matchedVersion) >= $versionLen) && (0 === strpos($matchedVersion, $version)))
|
518 |
+
) {
|
519 |
+
$versions[$matchedVersion] = $dir . '/library';
|
520 |
+
}
|
521 |
}
|
522 |
|
523 |
uksort($versions, 'version_compare');
|
524 |
return $versions;
|
525 |
}
|
526 |
+
}
|
|
lib/zend/mail.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Zend Framework
|
5 |
*
|
@@ -45,7 +44,6 @@ if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mime/message.php'))
|
|
45 |
*/
|
46 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mime/part.php'))
|
47 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mime/part.php';
|
48 |
-
|
49 |
/**
|
50 |
* Class for sending an email.
|
51 |
*
|
@@ -58,109 +56,91 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
58 |
/* * #@+
|
59 |
* @access protected
|
60 |
*/
|
61 |
-
|
62 |
/**
|
63 |
* @var mail_bank_Zend_Mail_Transport_Abstract
|
64 |
* @static
|
65 |
*/
|
66 |
protected static $_defaultTransport = null;
|
67 |
-
|
68 |
/**
|
69 |
* @var array
|
70 |
* @static
|
71 |
*/
|
72 |
protected static $_defaultFrom;
|
73 |
-
|
74 |
/**
|
75 |
* @var array
|
76 |
* @static
|
77 |
*/
|
78 |
protected static $_defaultReplyTo;
|
79 |
-
|
80 |
/**
|
81 |
* Mail character set
|
82 |
* @var string
|
83 |
*/
|
84 |
protected $_charset = 'iso-8859-1';
|
85 |
-
|
86 |
/**
|
87 |
* Mail headers
|
88 |
* @var array
|
89 |
*/
|
90 |
protected $_headers = array();
|
91 |
-
|
92 |
/**
|
93 |
* Encoding of Mail headers
|
94 |
* @var string
|
95 |
*/
|
96 |
protected $_headerEncoding = mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE;
|
97 |
-
|
98 |
/**
|
99 |
* From: address
|
100 |
* @var string
|
101 |
*/
|
102 |
protected $_from = null;
|
103 |
-
|
104 |
/**
|
105 |
* To: addresses
|
106 |
* @var array
|
107 |
*/
|
108 |
protected $_to = array();
|
109 |
-
|
110 |
/**
|
111 |
* Array of all recipients
|
112 |
* @var array
|
113 |
*/
|
114 |
protected $_recipients = array();
|
115 |
-
|
116 |
/**
|
117 |
* Reply-To header
|
118 |
* @var string
|
119 |
*/
|
120 |
protected $_replyTo = null;
|
121 |
-
|
122 |
/**
|
123 |
* Return-Path header
|
124 |
* @var string
|
125 |
*/
|
126 |
protected $_returnPath = null;
|
127 |
-
|
128 |
/**
|
129 |
* Subject: header
|
130 |
* @var string
|
131 |
*/
|
132 |
protected $_subject = null;
|
133 |
-
|
134 |
/**
|
135 |
* Date: header
|
136 |
* @var string
|
137 |
*/
|
138 |
protected $_date = null;
|
139 |
-
|
140 |
/**
|
141 |
* Message-ID: header
|
142 |
* @var string
|
143 |
*/
|
144 |
protected $_messageId = null;
|
145 |
-
|
146 |
/**
|
147 |
* text/plain MIME part
|
148 |
* @var false|mail_bank_Zend_Mime_Part
|
149 |
*/
|
150 |
protected $_bodyText = false;
|
151 |
-
|
152 |
/**
|
153 |
* text/html MIME part
|
154 |
* @var false|Zend_Mime_Part
|
155 |
*/
|
156 |
protected $_bodyHtml = false;
|
157 |
-
|
158 |
/**
|
159 |
* MIME boundary string
|
160 |
* @var string
|
161 |
*/
|
162 |
protected $_mimeBoundary = null;
|
163 |
-
|
164 |
/**
|
165 |
* Content type of the message
|
166 |
* @var string
|
@@ -168,13 +148,11 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
168 |
protected $_type = null;
|
169 |
|
170 |
/* * #@- */
|
171 |
-
|
172 |
/**
|
173 |
* Flag: whether or not email has attachments
|
174 |
* @var boolean
|
175 |
*/
|
176 |
public $hasAttachments = false;
|
177 |
-
|
178 |
/**
|
179 |
* Sets the default mail transport for all following uses of
|
180 |
* mail_bank_Zend_Mail::send();
|
@@ -186,7 +164,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
186 |
public static function setDefaultTransport(mail_bank_Zend_Mail_Transport_Abstract $transport) {
|
187 |
self::$_defaultTransport = $transport;
|
188 |
}
|
189 |
-
|
190 |
/**
|
191 |
* Gets the default mail transport for all following uses of
|
192 |
* unittests
|
@@ -197,14 +174,12 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
197 |
public static function getDefaultTransport() {
|
198 |
return self::$_defaultTransport;
|
199 |
}
|
200 |
-
|
201 |
/**
|
202 |
* Clear the default transport property
|
203 |
*/
|
204 |
public static function clearDefaultTransport() {
|
205 |
self::$_defaultTransport = null;
|
206 |
}
|
207 |
-
|
208 |
/**
|
209 |
* Public constructor
|
210 |
*
|
@@ -212,10 +187,9 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
212 |
*/
|
213 |
public function __construct($charset = null) {
|
214 |
if ($charset != null) {
|
215 |
-
|
216 |
}
|
217 |
}
|
218 |
-
|
219 |
/**
|
220 |
* Return charset string
|
221 |
*
|
@@ -224,7 +198,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
224 |
public function getCharset() {
|
225 |
return $this->_charset;
|
226 |
}
|
227 |
-
|
228 |
/**
|
229 |
* Set content type
|
230 |
*
|
@@ -236,24 +209,23 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
236 |
*/
|
237 |
public function setType($type) {
|
238 |
$allowed = array(
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
);
|
243 |
if (!in_array($type, $allowed)) {
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
|
250 |
-
|
251 |
}
|
252 |
|
253 |
$this->_type = $type;
|
254 |
return $this;
|
255 |
}
|
256 |
-
|
257 |
/**
|
258 |
* Get content type of the message
|
259 |
*
|
@@ -262,7 +234,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
262 |
public function getType() {
|
263 |
return $this->_type;
|
264 |
}
|
265 |
-
|
266 |
/**
|
267 |
* Set an arbitrary mime boundary for the message
|
268 |
*
|
@@ -276,7 +247,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
276 |
|
277 |
return $this;
|
278 |
}
|
279 |
-
|
280 |
/**
|
281 |
* Return the boundary string used for the message
|
282 |
*
|
@@ -285,7 +255,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
285 |
public function getMimeBoundary() {
|
286 |
return $this->_mimeBoundary;
|
287 |
}
|
288 |
-
|
289 |
/**
|
290 |
* Return encoding of mail headers
|
291 |
*
|
@@ -295,7 +264,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
295 |
public function getEncodingOfHeaders() {
|
296 |
return $this->getHeaderEncoding();
|
297 |
}
|
298 |
-
|
299 |
/**
|
300 |
* Return the encoding of mail headers
|
301 |
*
|
@@ -306,7 +274,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
306 |
public function getHeaderEncoding() {
|
307 |
return $this->_headerEncoding;
|
308 |
}
|
309 |
-
|
310 |
/**
|
311 |
* Set the encoding of mail headers
|
312 |
*
|
@@ -317,7 +284,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
317 |
public function setEncodingOfHeaders($encoding) {
|
318 |
return $this->setHeaderEncoding($encoding);
|
319 |
}
|
320 |
-
|
321 |
/**
|
322 |
* Set the encoding of mail headers
|
323 |
*
|
@@ -328,23 +294,22 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
328 |
*/
|
329 |
public function setHeaderEncoding($encoding) {
|
330 |
$allowed = array(
|
331 |
-
|
332 |
-
|
333 |
);
|
334 |
if (!in_array($encoding, $allowed)) {
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
|
341 |
-
|
342 |
}
|
343 |
$this->_headerEncoding = $encoding;
|
344 |
|
345 |
return $this;
|
346 |
}
|
347 |
-
|
348 |
/**
|
349 |
* Sets the text body for the message.
|
350 |
*
|
@@ -355,7 +320,7 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
355 |
*/
|
356 |
public function setBodyText($txt, $charset = null, $encoding = mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
|
357 |
if ($charset === null) {
|
358 |
-
|
359 |
}
|
360 |
|
361 |
$mp = new mail_bank_Zend_Mime_Part($txt);
|
@@ -368,7 +333,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
368 |
|
369 |
return $this;
|
370 |
}
|
371 |
-
|
372 |
/**
|
373 |
* Return text body mail_bank_Zend_Mime_Part or string
|
374 |
*
|
@@ -378,13 +342,12 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
378 |
*/
|
379 |
public function getBodyText($textOnly = false) {
|
380 |
if ($textOnly && $this->_bodyText) {
|
381 |
-
|
382 |
-
|
383 |
}
|
384 |
|
385 |
return $this->_bodyText;
|
386 |
}
|
387 |
-
|
388 |
/**
|
389 |
* Sets the HTML body for the message
|
390 |
*
|
@@ -395,7 +358,7 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
395 |
*/
|
396 |
public function setBodyHtml($html, $charset = null, $encoding = mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
|
397 |
if ($charset === null) {
|
398 |
-
|
399 |
}
|
400 |
|
401 |
$mp = new mail_bank_Zend_Mime_Part($html);
|
@@ -408,7 +371,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
408 |
|
409 |
return $this;
|
410 |
}
|
411 |
-
|
412 |
/**
|
413 |
* Return mail_bank_Zend_Mime_Part representing body HTML
|
414 |
*
|
@@ -417,13 +379,12 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
417 |
*/
|
418 |
public function getBodyHtml($htmlOnly = false) {
|
419 |
if ($htmlOnly && $this->_bodyHtml) {
|
420 |
-
|
421 |
-
|
422 |
}
|
423 |
|
424 |
return $this->_bodyHtml;
|
425 |
}
|
426 |
-
|
427 |
/**
|
428 |
* Adds an existing attachment to the mail message
|
429 |
*
|
@@ -436,7 +397,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
436 |
|
437 |
return $this;
|
438 |
}
|
439 |
-
|
440 |
/**
|
441 |
* Creates a mail_bank_Zend_Mime_Part attachment
|
442 |
*
|
@@ -462,7 +422,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
462 |
|
463 |
return $mp;
|
464 |
}
|
465 |
-
|
466 |
/**
|
467 |
* Return a count of message parts
|
468 |
*
|
@@ -471,7 +430,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
471 |
public function getPartCount() {
|
472 |
return count($this->_parts);
|
473 |
}
|
474 |
-
|
475 |
/**
|
476 |
* Encode header fields
|
477 |
*
|
@@ -483,16 +441,15 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
483 |
*/
|
484 |
protected function _encodeHeader($value) {
|
485 |
if (mail_bank_Zend_Mime::isPrintable($value) === false) {
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
}
|
492 |
|
493 |
return $value;
|
494 |
}
|
495 |
-
|
496 |
/**
|
497 |
* Add a header to the message
|
498 |
*
|
@@ -505,16 +462,15 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
505 |
*/
|
506 |
protected function _storeHeader($headerName, $value, $append = false) {
|
507 |
if (isset($this->_headers[$headerName])) {
|
508 |
-
|
509 |
} else {
|
510 |
-
|
511 |
}
|
512 |
|
513 |
if ($append) {
|
514 |
-
|
515 |
}
|
516 |
}
|
517 |
-
|
518 |
/**
|
519 |
* Clear header from the message
|
520 |
*
|
@@ -524,7 +480,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
524 |
protected function _clearHeader($headerName) {
|
525 |
$this->clearHeader($headerName);
|
526 |
}
|
527 |
-
|
528 |
/**
|
529 |
* Helper function for adding a recipient and the corresponding header
|
530 |
*
|
@@ -539,7 +494,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
539 |
$this->_recipients[$email] = 1;
|
540 |
$this->_storeHeader($headerName, $this->_formatAddress($email, $name), true);
|
541 |
}
|
542 |
-
|
543 |
/**
|
544 |
* Adds To-header and recipient, $email can be an array, or a single string
|
545 |
* address
|
@@ -550,17 +504,16 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
550 |
*/
|
551 |
public function addTo($email, $name = '') {
|
552 |
if (!is_array($email)) {
|
553 |
-
|
554 |
}
|
555 |
|
556 |
foreach ($email as $n => $recipient) {
|
557 |
-
|
558 |
-
|
559 |
}
|
560 |
|
561 |
return $this;
|
562 |
}
|
563 |
-
|
564 |
/**
|
565 |
* Adds Cc-header and recipient, $email can be an array, or a single string
|
566 |
* address
|
@@ -571,16 +524,15 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
571 |
*/
|
572 |
public function addCc($email, $name = '') {
|
573 |
if (!is_array($email)) {
|
574 |
-
|
575 |
}
|
576 |
|
577 |
foreach ($email as $n => $recipient) {
|
578 |
-
|
579 |
}
|
580 |
|
581 |
return $this;
|
582 |
}
|
583 |
-
|
584 |
/**
|
585 |
* Adds Bcc recipient, $email can be an array, or a single string address
|
586 |
*
|
@@ -589,16 +541,15 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
589 |
*/
|
590 |
public function addBcc($email) {
|
591 |
if (!is_array($email)) {
|
592 |
-
|
593 |
}
|
594 |
|
595 |
foreach ($email as $recipient) {
|
596 |
-
|
597 |
}
|
598 |
|
599 |
return $this;
|
600 |
}
|
601 |
-
|
602 |
/**
|
603 |
* Return list of recipient email addresses
|
604 |
*
|
@@ -607,7 +558,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
607 |
public function getRecipients() {
|
608 |
return array_keys($this->_recipients);
|
609 |
}
|
610 |
-
|
611 |
/**
|
612 |
* Clear header from the message
|
613 |
*
|
@@ -616,11 +566,10 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
616 |
*/
|
617 |
public function clearHeader($headerName) {
|
618 |
if (isset($this->_headers[$headerName])) {
|
619 |
-
|
620 |
}
|
621 |
return $this;
|
622 |
}
|
623 |
-
|
624 |
/**
|
625 |
* Clears list of recipient email addresses
|
626 |
*
|
@@ -636,7 +585,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
636 |
|
637 |
return $this;
|
638 |
}
|
639 |
-
|
640 |
/**
|
641 |
* Sets From-header and sender of the message
|
642 |
*
|
@@ -647,13 +595,13 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
647 |
*/
|
648 |
public function setFrom($email, $name = null) {
|
649 |
if (null !== $this->_from) {
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
|
656 |
-
|
657 |
}
|
658 |
|
659 |
$email = $this->_filterEmail($email);
|
@@ -663,7 +611,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
663 |
|
664 |
return $this;
|
665 |
}
|
666 |
-
|
667 |
/**
|
668 |
* Set Reply-To Header
|
669 |
*
|
@@ -674,13 +621,13 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
674 |
*/
|
675 |
public function setReplyTo($email, $name = null) {
|
676 |
if (null !== $this->_replyTo) {
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
|
683 |
-
|
684 |
}
|
685 |
|
686 |
$email = $this->_filterEmail($email);
|
@@ -690,7 +637,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
690 |
|
691 |
return $this;
|
692 |
}
|
693 |
-
|
694 |
/**
|
695 |
* Returns the sender of the mail
|
696 |
*
|
@@ -699,7 +645,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
699 |
public function getFrom() {
|
700 |
return $this->_from;
|
701 |
}
|
702 |
-
|
703 |
/**
|
704 |
* Returns the current Reply-To address of the message
|
705 |
*
|
@@ -708,7 +653,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
708 |
public function getReplyTo() {
|
709 |
return $this->_replyTo;
|
710 |
}
|
711 |
-
|
712 |
/**
|
713 |
* Clears the sender from the mail
|
714 |
*
|
@@ -720,7 +664,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
720 |
|
721 |
return $this;
|
722 |
}
|
723 |
-
|
724 |
/**
|
725 |
* Clears the current Reply-To address from the message
|
726 |
*
|
@@ -732,7 +675,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
732 |
|
733 |
return $this;
|
734 |
}
|
735 |
-
|
736 |
/**
|
737 |
* Sets Default From-email and name of the message
|
738 |
*
|
@@ -743,7 +685,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
743 |
public static function setDefaultFrom($email, $name = null) {
|
744 |
self::$_defaultFrom = array('email' => $email, 'name' => $name);
|
745 |
}
|
746 |
-
|
747 |
/**
|
748 |
* Returns the default sender of the mail
|
749 |
*
|
@@ -752,7 +693,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
752 |
public static function getDefaultFrom() {
|
753 |
return self::$_defaultFrom;
|
754 |
}
|
755 |
-
|
756 |
/**
|
757 |
* Clears the default sender from the mail
|
758 |
*
|
@@ -761,7 +701,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
761 |
public static function clearDefaultFrom() {
|
762 |
self::$_defaultFrom = null;
|
763 |
}
|
764 |
-
|
765 |
/**
|
766 |
* Sets From-name and -email based on the defaults
|
767 |
*
|
@@ -771,18 +710,17 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
771 |
public function setFromToDefaultFrom() {
|
772 |
$from = self::getDefaultFrom();
|
773 |
if ($from === null) {
|
774 |
-
|
775 |
-
|
776 |
|
777 |
-
|
778 |
-
|
779 |
}
|
780 |
|
781 |
$this->setFrom($from['email'], $from['name']);
|
782 |
|
783 |
return $this;
|
784 |
}
|
785 |
-
|
786 |
/**
|
787 |
* Sets Default ReplyTo-address and -name of the message
|
788 |
*
|
@@ -793,7 +731,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
793 |
public static function setDefaultReplyTo($email, $name = null) {
|
794 |
self::$_defaultReplyTo = array('email' => $email, 'name' => $name);
|
795 |
}
|
796 |
-
|
797 |
/**
|
798 |
* Returns the default Reply-To Address and Name of the mail
|
799 |
*
|
@@ -802,7 +739,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
802 |
public static function getDefaultReplyTo() {
|
803 |
return self::$_defaultReplyTo;
|
804 |
}
|
805 |
-
|
806 |
/**
|
807 |
* Clears the default ReplyTo-address and -name from the mail
|
808 |
*
|
@@ -811,7 +747,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
811 |
public static function clearDefaultReplyTo() {
|
812 |
self::$_defaultReplyTo = null;
|
813 |
}
|
814 |
-
|
815 |
/**
|
816 |
* Sets ReplyTo-name and -email based on the defaults
|
817 |
*
|
@@ -821,18 +756,17 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
821 |
public function setReplyToFromDefault() {
|
822 |
$replyTo = self::getDefaultReplyTo();
|
823 |
if ($replyTo === null) {
|
824 |
-
|
825 |
-
|
826 |
|
827 |
-
|
828 |
-
|
829 |
}
|
830 |
|
831 |
$this->setReplyTo($replyTo['email'], $replyTo['name']);
|
832 |
|
833 |
return $this;
|
834 |
}
|
835 |
-
|
836 |
/**
|
837 |
* Sets the Return-Path header of the message
|
838 |
*
|
@@ -842,21 +776,20 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
842 |
*/
|
843 |
public function setReturnPath($email) {
|
844 |
if ($this->_returnPath === null) {
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
} else {
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
|
855 |
-
|
856 |
}
|
857 |
return $this;
|
858 |
}
|
859 |
-
|
860 |
/**
|
861 |
* Returns the current Return-Path address of the message
|
862 |
*
|
@@ -866,12 +799,11 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
866 |
*/
|
867 |
public function getReturnPath() {
|
868 |
if (null !== $this->_returnPath) {
|
869 |
-
|
870 |
}
|
871 |
|
872 |
return $this->_from;
|
873 |
}
|
874 |
-
|
875 |
/**
|
876 |
* Clears the current Return-Path address from the message
|
877 |
*
|
@@ -883,7 +815,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
883 |
|
884 |
return $this;
|
885 |
}
|
886 |
-
|
887 |
/**
|
888 |
* Sets the subject of the message
|
889 |
*
|
@@ -893,21 +824,20 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
893 |
*/
|
894 |
public function setSubject($subject) {
|
895 |
if ($this->_subject === null) {
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
} else {
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
|
906 |
-
|
907 |
}
|
908 |
return $this;
|
909 |
}
|
910 |
-
|
911 |
/**
|
912 |
* Returns the encoded subject of the message
|
913 |
*
|
@@ -916,7 +846,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
916 |
public function getSubject() {
|
917 |
return $this->_subject;
|
918 |
}
|
919 |
-
|
920 |
/**
|
921 |
* Clears the encoded subject from the message
|
922 |
*
|
@@ -928,7 +857,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
928 |
|
929 |
return $this;
|
930 |
}
|
931 |
-
|
932 |
/**
|
933 |
* Sets Date-header
|
934 |
*
|
@@ -939,51 +867,50 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
939 |
*/
|
940 |
public function setDate($date = null) {
|
941 |
if ($this->_date === null) {
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
}
|
975 |
else {
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
|
982 |
-
|
983 |
}
|
984 |
return $this;
|
985 |
}
|
986 |
-
|
987 |
/**
|
988 |
* Returns the formatted date of the message
|
989 |
*
|
@@ -992,7 +919,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
992 |
public function getDate() {
|
993 |
return $this->_date;
|
994 |
}
|
995 |
-
|
996 |
/**
|
997 |
* Clears the formatted date from the message
|
998 |
*
|
@@ -1004,7 +930,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1004 |
|
1005 |
return $this;
|
1006 |
}
|
1007 |
-
|
1008 |
/**
|
1009 |
* Sets the Message-ID of the message
|
1010 |
*
|
@@ -1018,28 +943,27 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1018 |
*/
|
1019 |
public function setMessageId($id = true) {
|
1020 |
if ($id === null || $id === false) {
|
1021 |
-
|
1022 |
} elseif ($id === true) {
|
1023 |
-
|
1024 |
}
|
1025 |
|
1026 |
if ($this->_messageId === null) {
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
} else {
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
|
1037 |
-
|
1038 |
}
|
1039 |
|
1040 |
return $this;
|
1041 |
}
|
1042 |
-
|
1043 |
/**
|
1044 |
* Returns the Message-ID of the message
|
1045 |
*
|
@@ -1048,7 +972,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1048 |
public function getMessageId() {
|
1049 |
return $this->_messageId;
|
1050 |
}
|
1051 |
-
|
1052 |
/**
|
1053 |
* Clears the Message-ID from the message
|
1054 |
*
|
@@ -1060,7 +983,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1060 |
|
1061 |
return $this;
|
1062 |
}
|
1063 |
-
|
1064 |
/**
|
1065 |
* Creates the Message-ID
|
1066 |
*
|
@@ -1070,30 +992,29 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1070 |
$time = time();
|
1071 |
|
1072 |
if ($this->_from !== null) {
|
1073 |
-
|
1074 |
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
|
1075 |
-
|
1076 |
} else {
|
1077 |
-
|
1078 |
}
|
1079 |
|
1080 |
$rand = mt_rand();
|
1081 |
|
1082 |
if ($this->_recipients !== array()) {
|
1083 |
-
|
1084 |
} else {
|
1085 |
-
|
1086 |
}
|
1087 |
|
1088 |
if (isset($_SERVER["SERVER_NAME"])) {
|
1089 |
-
|
1090 |
} else {
|
1091 |
-
|
1092 |
}
|
1093 |
|
1094 |
return sha1($time . $user . $rand . $recipient) . '@' . $hostName;
|
1095 |
}
|
1096 |
-
|
1097 |
/**
|
1098 |
* Add a custom header to the message
|
1099 |
*
|
@@ -1105,17 +1026,17 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1105 |
*/
|
1106 |
public function addHeader($name, $value, $append = false) {
|
1107 |
$prohibit = array('to', 'cc', 'bcc', 'from', 'subject',
|
1108 |
-
|
1109 |
-
|
1110 |
);
|
1111 |
if (in_array(strtolower($name), $prohibit)) {
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
|
1118 |
-
|
1119 |
}
|
1120 |
|
1121 |
$value = $this->_filterOther($value);
|
@@ -1124,7 +1045,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1124 |
|
1125 |
return $this;
|
1126 |
}
|
1127 |
-
|
1128 |
/**
|
1129 |
* Return mail headers
|
1130 |
*
|
@@ -1133,7 +1053,6 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1133 |
public function getHeaders() {
|
1134 |
return $this->_headers;
|
1135 |
}
|
1136 |
-
|
1137 |
/**
|
1138 |
* Sends this email using the given transport or a previously
|
1139 |
* set DefaultTransport or the internal mail function if no
|
@@ -1144,34 +1063,33 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1144 |
*/
|
1145 |
public function send($transport = null) {
|
1146 |
if ($transport === null) {
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
}
|
1157 |
|
1158 |
if ($this->_date === null) {
|
1159 |
-
|
1160 |
}
|
1161 |
|
1162 |
if (null === $this->_from && null !== self::getDefaultFrom()) {
|
1163 |
-
|
1164 |
}
|
1165 |
|
1166 |
if (null === $this->_replyTo && null !== self::getDefaultReplyTo()) {
|
1167 |
-
|
1168 |
}
|
1169 |
|
1170 |
$transport->send($this);
|
1171 |
|
1172 |
return $this;
|
1173 |
}
|
1174 |
-
|
1175 |
/**
|
1176 |
* Filter of email data
|
1177 |
*
|
@@ -1180,17 +1098,16 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1180 |
*/
|
1181 |
protected function _filterEmail($email) {
|
1182 |
$rule = array("\r" => '',
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
);
|
1190 |
|
1191 |
return strtr($email, $rule);
|
1192 |
}
|
1193 |
-
|
1194 |
/**
|
1195 |
* Filter of name data
|
1196 |
*
|
@@ -1199,16 +1116,15 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1199 |
*/
|
1200 |
protected function _filterName($name) {
|
1201 |
$rule = array("\r" => '',
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
);
|
1208 |
|
1209 |
return trim(strtr($name, $rule));
|
1210 |
}
|
1211 |
-
|
1212 |
/**
|
1213 |
* Filter of other data
|
1214 |
*
|
@@ -1217,13 +1133,12 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1217 |
*/
|
1218 |
protected function _filterOther($data) {
|
1219 |
$rule = array("\r" => '',
|
1220 |
-
|
1221 |
-
|
1222 |
);
|
1223 |
|
1224 |
return strtr($data, $rule);
|
1225 |
}
|
1226 |
-
|
1227 |
/**
|
1228 |
* Formats e-mail address
|
1229 |
*
|
@@ -1233,16 +1148,15 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1233 |
*/
|
1234 |
protected function _formatAddress($email, $name) {
|
1235 |
if ($name === '' || $name === null || $name === $email) {
|
1236 |
-
|
1237 |
} else {
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
}
|
1246 |
}
|
1247 |
-
|
1248 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Zend Framework
|
4 |
*
|
44 |
*/
|
45 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mime/part.php'))
|
46 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mime/part.php';
|
|
|
47 |
/**
|
48 |
* Class for sending an email.
|
49 |
*
|
56 |
/* * #@+
|
57 |
* @access protected
|
58 |
*/
|
|
|
59 |
/**
|
60 |
* @var mail_bank_Zend_Mail_Transport_Abstract
|
61 |
* @static
|
62 |
*/
|
63 |
protected static $_defaultTransport = null;
|
|
|
64 |
/**
|
65 |
* @var array
|
66 |
* @static
|
67 |
*/
|
68 |
protected static $_defaultFrom;
|
|
|
69 |
/**
|
70 |
* @var array
|
71 |
* @static
|
72 |
*/
|
73 |
protected static $_defaultReplyTo;
|
|
|
74 |
/**
|
75 |
* Mail character set
|
76 |
* @var string
|
77 |
*/
|
78 |
protected $_charset = 'iso-8859-1';
|
|
|
79 |
/**
|
80 |
* Mail headers
|
81 |
* @var array
|
82 |
*/
|
83 |
protected $_headers = array();
|
|
|
84 |
/**
|
85 |
* Encoding of Mail headers
|
86 |
* @var string
|
87 |
*/
|
88 |
protected $_headerEncoding = mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE;
|
|
|
89 |
/**
|
90 |
* From: address
|
91 |
* @var string
|
92 |
*/
|
93 |
protected $_from = null;
|
|
|
94 |
/**
|
95 |
* To: addresses
|
96 |
* @var array
|
97 |
*/
|
98 |
protected $_to = array();
|
|
|
99 |
/**
|
100 |
* Array of all recipients
|
101 |
* @var array
|
102 |
*/
|
103 |
protected $_recipients = array();
|
|
|
104 |
/**
|
105 |
* Reply-To header
|
106 |
* @var string
|
107 |
*/
|
108 |
protected $_replyTo = null;
|
|
|
109 |
/**
|
110 |
* Return-Path header
|
111 |
* @var string
|
112 |
*/
|
113 |
protected $_returnPath = null;
|
|
|
114 |
/**
|
115 |
* Subject: header
|
116 |
* @var string
|
117 |
*/
|
118 |
protected $_subject = null;
|
|
|
119 |
/**
|
120 |
* Date: header
|
121 |
* @var string
|
122 |
*/
|
123 |
protected $_date = null;
|
|
|
124 |
/**
|
125 |
* Message-ID: header
|
126 |
* @var string
|
127 |
*/
|
128 |
protected $_messageId = null;
|
|
|
129 |
/**
|
130 |
* text/plain MIME part
|
131 |
* @var false|mail_bank_Zend_Mime_Part
|
132 |
*/
|
133 |
protected $_bodyText = false;
|
|
|
134 |
/**
|
135 |
* text/html MIME part
|
136 |
* @var false|Zend_Mime_Part
|
137 |
*/
|
138 |
protected $_bodyHtml = false;
|
|
|
139 |
/**
|
140 |
* MIME boundary string
|
141 |
* @var string
|
142 |
*/
|
143 |
protected $_mimeBoundary = null;
|
|
|
144 |
/**
|
145 |
* Content type of the message
|
146 |
* @var string
|
148 |
protected $_type = null;
|
149 |
|
150 |
/* * #@- */
|
|
|
151 |
/**
|
152 |
* Flag: whether or not email has attachments
|
153 |
* @var boolean
|
154 |
*/
|
155 |
public $hasAttachments = false;
|
|
|
156 |
/**
|
157 |
* Sets the default mail transport for all following uses of
|
158 |
* mail_bank_Zend_Mail::send();
|
164 |
public static function setDefaultTransport(mail_bank_Zend_Mail_Transport_Abstract $transport) {
|
165 |
self::$_defaultTransport = $transport;
|
166 |
}
|
|
|
167 |
/**
|
168 |
* Gets the default mail transport for all following uses of
|
169 |
* unittests
|
174 |
public static function getDefaultTransport() {
|
175 |
return self::$_defaultTransport;
|
176 |
}
|
|
|
177 |
/**
|
178 |
* Clear the default transport property
|
179 |
*/
|
180 |
public static function clearDefaultTransport() {
|
181 |
self::$_defaultTransport = null;
|
182 |
}
|
|
|
183 |
/**
|
184 |
* Public constructor
|
185 |
*
|
187 |
*/
|
188 |
public function __construct($charset = null) {
|
189 |
if ($charset != null) {
|
190 |
+
$this->_charset = $charset;
|
191 |
}
|
192 |
}
|
|
|
193 |
/**
|
194 |
* Return charset string
|
195 |
*
|
198 |
public function getCharset() {
|
199 |
return $this->_charset;
|
200 |
}
|
|
|
201 |
/**
|
202 |
* Set content type
|
203 |
*
|
209 |
*/
|
210 |
public function setType($type) {
|
211 |
$allowed = array(
|
212 |
+
mail_bank_Zend_Mime::MULTIPART_ALTERNATIVE,
|
213 |
+
mail_bank_Zend_Mime::MULTIPART_MIXED,
|
214 |
+
mail_bank_Zend_Mime::MULTIPART_RELATED,
|
215 |
);
|
216 |
if (!in_array($type, $allowed)) {
|
217 |
+
/**
|
218 |
+
* @see mail_bank_Zend_Mail_Exception
|
219 |
+
*/
|
220 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
221 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
222 |
|
223 |
+
throw new mail_bank_Zend_Mail_Exception('Invalid content type "' . $type . '"');
|
224 |
}
|
225 |
|
226 |
$this->_type = $type;
|
227 |
return $this;
|
228 |
}
|
|
|
229 |
/**
|
230 |
* Get content type of the message
|
231 |
*
|
234 |
public function getType() {
|
235 |
return $this->_type;
|
236 |
}
|
|
|
237 |
/**
|
238 |
* Set an arbitrary mime boundary for the message
|
239 |
*
|
247 |
|
248 |
return $this;
|
249 |
}
|
|
|
250 |
/**
|
251 |
* Return the boundary string used for the message
|
252 |
*
|
255 |
public function getMimeBoundary() {
|
256 |
return $this->_mimeBoundary;
|
257 |
}
|
|
|
258 |
/**
|
259 |
* Return encoding of mail headers
|
260 |
*
|
264 |
public function getEncodingOfHeaders() {
|
265 |
return $this->getHeaderEncoding();
|
266 |
}
|
|
|
267 |
/**
|
268 |
* Return the encoding of mail headers
|
269 |
*
|
274 |
public function getHeaderEncoding() {
|
275 |
return $this->_headerEncoding;
|
276 |
}
|
|
|
277 |
/**
|
278 |
* Set the encoding of mail headers
|
279 |
*
|
284 |
public function setEncodingOfHeaders($encoding) {
|
285 |
return $this->setHeaderEncoding($encoding);
|
286 |
}
|
|
|
287 |
/**
|
288 |
* Set the encoding of mail headers
|
289 |
*
|
294 |
*/
|
295 |
public function setHeaderEncoding($encoding) {
|
296 |
$allowed = array(
|
297 |
+
mail_bank_Zend_Mime::ENCODING_BASE64,
|
298 |
+
mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE
|
299 |
);
|
300 |
if (!in_array($encoding, $allowed)) {
|
301 |
+
/**
|
302 |
+
* @see mail_bank_Zend_Mail_Exception
|
303 |
+
*/
|
304 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
305 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
306 |
|
307 |
+
throw new mail_bank_Zend_Mail_Exception('Invalid encoding "' . $encoding . '"');
|
308 |
}
|
309 |
$this->_headerEncoding = $encoding;
|
310 |
|
311 |
return $this;
|
312 |
}
|
|
|
313 |
/**
|
314 |
* Sets the text body for the message.
|
315 |
*
|
320 |
*/
|
321 |
public function setBodyText($txt, $charset = null, $encoding = mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
|
322 |
if ($charset === null) {
|
323 |
+
$charset = $this->_charset;
|
324 |
}
|
325 |
|
326 |
$mp = new mail_bank_Zend_Mime_Part($txt);
|
333 |
|
334 |
return $this;
|
335 |
}
|
|
|
336 |
/**
|
337 |
* Return text body mail_bank_Zend_Mime_Part or string
|
338 |
*
|
342 |
*/
|
343 |
public function getBodyText($textOnly = false) {
|
344 |
if ($textOnly && $this->_bodyText) {
|
345 |
+
$body = $this->_bodyText;
|
346 |
+
return $body->getContent();
|
347 |
}
|
348 |
|
349 |
return $this->_bodyText;
|
350 |
}
|
|
|
351 |
/**
|
352 |
* Sets the HTML body for the message
|
353 |
*
|
358 |
*/
|
359 |
public function setBodyHtml($html, $charset = null, $encoding = mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
|
360 |
if ($charset === null) {
|
361 |
+
$charset = $this->_charset;
|
362 |
}
|
363 |
|
364 |
$mp = new mail_bank_Zend_Mime_Part($html);
|
371 |
|
372 |
return $this;
|
373 |
}
|
|
|
374 |
/**
|
375 |
* Return mail_bank_Zend_Mime_Part representing body HTML
|
376 |
*
|
379 |
*/
|
380 |
public function getBodyHtml($htmlOnly = false) {
|
381 |
if ($htmlOnly && $this->_bodyHtml) {
|
382 |
+
$body = $this->_bodyHtml;
|
383 |
+
return $body->getContent();
|
384 |
}
|
385 |
|
386 |
return $this->_bodyHtml;
|
387 |
}
|
|
|
388 |
/**
|
389 |
* Adds an existing attachment to the mail message
|
390 |
*
|
397 |
|
398 |
return $this;
|
399 |
}
|
|
|
400 |
/**
|
401 |
* Creates a mail_bank_Zend_Mime_Part attachment
|
402 |
*
|
422 |
|
423 |
return $mp;
|
424 |
}
|
|
|
425 |
/**
|
426 |
* Return a count of message parts
|
427 |
*
|
430 |
public function getPartCount() {
|
431 |
return count($this->_parts);
|
432 |
}
|
|
|
433 |
/**
|
434 |
* Encode header fields
|
435 |
*
|
441 |
*/
|
442 |
protected function _encodeHeader($value) {
|
443 |
if (mail_bank_Zend_Mime::isPrintable($value) === false) {
|
444 |
+
if ($this->getHeaderEncoding() === mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
|
445 |
+
$value = mail_bank_Zend_Mime::encodeQuotedPrintableHeader($value, $this->getCharset(), mail_bank_Zend_Mime::LINELENGTH, mail_bank_Zend_Mime::LINEEND);
|
446 |
+
} else {
|
447 |
+
$value = mail_bank_Zend_Mime::encodeBase64Header($value, $this->getCharset(), mail_bank_Zend_Mime::LINELENGTH, mail_bank_Zend_Mime::LINEEND);
|
448 |
+
}
|
449 |
}
|
450 |
|
451 |
return $value;
|
452 |
}
|
|
|
453 |
/**
|
454 |
* Add a header to the message
|
455 |
*
|
462 |
*/
|
463 |
protected function _storeHeader($headerName, $value, $append = false) {
|
464 |
if (isset($this->_headers[$headerName])) {
|
465 |
+
$this->_headers[$headerName][] = $value;
|
466 |
} else {
|
467 |
+
$this->_headers[$headerName] = array($value);
|
468 |
}
|
469 |
|
470 |
if ($append) {
|
471 |
+
$this->_headers[$headerName]['append'] = true;
|
472 |
}
|
473 |
}
|
|
|
474 |
/**
|
475 |
* Clear header from the message
|
476 |
*
|
480 |
protected function _clearHeader($headerName) {
|
481 |
$this->clearHeader($headerName);
|
482 |
}
|
|
|
483 |
/**
|
484 |
* Helper function for adding a recipient and the corresponding header
|
485 |
*
|
494 |
$this->_recipients[$email] = 1;
|
495 |
$this->_storeHeader($headerName, $this->_formatAddress($email, $name), true);
|
496 |
}
|
|
|
497 |
/**
|
498 |
* Adds To-header and recipient, $email can be an array, or a single string
|
499 |
* address
|
504 |
*/
|
505 |
public function addTo($email, $name = '') {
|
506 |
if (!is_array($email)) {
|
507 |
+
$email = array($name => $email);
|
508 |
}
|
509 |
|
510 |
foreach ($email as $n => $recipient) {
|
511 |
+
$this->_addRecipientAndHeader('To', $recipient, is_int($n) ? '' : $n);
|
512 |
+
$this->_to[] = $recipient;
|
513 |
}
|
514 |
|
515 |
return $this;
|
516 |
}
|
|
|
517 |
/**
|
518 |
* Adds Cc-header and recipient, $email can be an array, or a single string
|
519 |
* address
|
524 |
*/
|
525 |
public function addCc($email, $name = '') {
|
526 |
if (!is_array($email)) {
|
527 |
+
$email = array($name => $email);
|
528 |
}
|
529 |
|
530 |
foreach ($email as $n => $recipient) {
|
531 |
+
$this->_addRecipientAndHeader('Cc', $recipient, is_int($n) ? '' : $n);
|
532 |
}
|
533 |
|
534 |
return $this;
|
535 |
}
|
|
|
536 |
/**
|
537 |
* Adds Bcc recipient, $email can be an array, or a single string address
|
538 |
*
|
541 |
*/
|
542 |
public function addBcc($email) {
|
543 |
if (!is_array($email)) {
|
544 |
+
$email = array($email);
|
545 |
}
|
546 |
|
547 |
foreach ($email as $recipient) {
|
548 |
+
$this->_addRecipientAndHeader('Bcc', $recipient, '');
|
549 |
}
|
550 |
|
551 |
return $this;
|
552 |
}
|
|
|
553 |
/**
|
554 |
* Return list of recipient email addresses
|
555 |
*
|
558 |
public function getRecipients() {
|
559 |
return array_keys($this->_recipients);
|
560 |
}
|
|
|
561 |
/**
|
562 |
* Clear header from the message
|
563 |
*
|
566 |
*/
|
567 |
public function clearHeader($headerName) {
|
568 |
if (isset($this->_headers[$headerName])) {
|
569 |
+
unset($this->_headers[$headerName]);
|
570 |
}
|
571 |
return $this;
|
572 |
}
|
|
|
573 |
/**
|
574 |
* Clears list of recipient email addresses
|
575 |
*
|
585 |
|
586 |
return $this;
|
587 |
}
|
|
|
588 |
/**
|
589 |
* Sets From-header and sender of the message
|
590 |
*
|
595 |
*/
|
596 |
public function setFrom($email, $name = null) {
|
597 |
if (null !== $this->_from) {
|
598 |
+
/**
|
599 |
+
* @see mail_bank_Zend_Mail_Exception
|
600 |
+
*/
|
601 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
602 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
603 |
|
604 |
+
throw new mail_bank_Zend_Mail_Exception('From Header set twice');
|
605 |
}
|
606 |
|
607 |
$email = $this->_filterEmail($email);
|
611 |
|
612 |
return $this;
|
613 |
}
|
|
|
614 |
/**
|
615 |
* Set Reply-To Header
|
616 |
*
|
621 |
*/
|
622 |
public function setReplyTo($email, $name = null) {
|
623 |
if (null !== $this->_replyTo) {
|
624 |
+
/**
|
625 |
+
* @see mail_bank_Zend_Mail_Exception
|
626 |
+
*/
|
627 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
628 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
629 |
|
630 |
+
throw new mail_bank_Zend_Mail_Exception('Reply-To Header set twice');
|
631 |
}
|
632 |
|
633 |
$email = $this->_filterEmail($email);
|
637 |
|
638 |
return $this;
|
639 |
}
|
|
|
640 |
/**
|
641 |
* Returns the sender of the mail
|
642 |
*
|
645 |
public function getFrom() {
|
646 |
return $this->_from;
|
647 |
}
|
|
|
648 |
/**
|
649 |
* Returns the current Reply-To address of the message
|
650 |
*
|
653 |
public function getReplyTo() {
|
654 |
return $this->_replyTo;
|
655 |
}
|
|
|
656 |
/**
|
657 |
* Clears the sender from the mail
|
658 |
*
|
664 |
|
665 |
return $this;
|
666 |
}
|
|
|
667 |
/**
|
668 |
* Clears the current Reply-To address from the message
|
669 |
*
|
675 |
|
676 |
return $this;
|
677 |
}
|
|
|
678 |
/**
|
679 |
* Sets Default From-email and name of the message
|
680 |
*
|
685 |
public static function setDefaultFrom($email, $name = null) {
|
686 |
self::$_defaultFrom = array('email' => $email, 'name' => $name);
|
687 |
}
|
|
|
688 |
/**
|
689 |
* Returns the default sender of the mail
|
690 |
*
|
693 |
public static function getDefaultFrom() {
|
694 |
return self::$_defaultFrom;
|
695 |
}
|
|
|
696 |
/**
|
697 |
* Clears the default sender from the mail
|
698 |
*
|
701 |
public static function clearDefaultFrom() {
|
702 |
self::$_defaultFrom = null;
|
703 |
}
|
|
|
704 |
/**
|
705 |
* Sets From-name and -email based on the defaults
|
706 |
*
|
710 |
public function setFromToDefaultFrom() {
|
711 |
$from = self::getDefaultFrom();
|
712 |
if ($from === null) {
|
713 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
714 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
715 |
|
716 |
+
throw new mail_bank_Zend_Mail_Exception(
|
717 |
+
'No default From Address set to use');
|
718 |
}
|
719 |
|
720 |
$this->setFrom($from['email'], $from['name']);
|
721 |
|
722 |
return $this;
|
723 |
}
|
|
|
724 |
/**
|
725 |
* Sets Default ReplyTo-address and -name of the message
|
726 |
*
|
731 |
public static function setDefaultReplyTo($email, $name = null) {
|
732 |
self::$_defaultReplyTo = array('email' => $email, 'name' => $name);
|
733 |
}
|
|
|
734 |
/**
|
735 |
* Returns the default Reply-To Address and Name of the mail
|
736 |
*
|
739 |
public static function getDefaultReplyTo() {
|
740 |
return self::$_defaultReplyTo;
|
741 |
}
|
|
|
742 |
/**
|
743 |
* Clears the default ReplyTo-address and -name from the mail
|
744 |
*
|
747 |
public static function clearDefaultReplyTo() {
|
748 |
self::$_defaultReplyTo = null;
|
749 |
}
|
|
|
750 |
/**
|
751 |
* Sets ReplyTo-name and -email based on the defaults
|
752 |
*
|
756 |
public function setReplyToFromDefault() {
|
757 |
$replyTo = self::getDefaultReplyTo();
|
758 |
if ($replyTo === null) {
|
759 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
760 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
761 |
|
762 |
+
throw new mail_bank_Zend_Mail_Exception(
|
763 |
+
'No default Reply-To Address set to use');
|
764 |
}
|
765 |
|
766 |
$this->setReplyTo($replyTo['email'], $replyTo['name']);
|
767 |
|
768 |
return $this;
|
769 |
}
|
|
|
770 |
/**
|
771 |
* Sets the Return-Path header of the message
|
772 |
*
|
776 |
*/
|
777 |
public function setReturnPath($email) {
|
778 |
if ($this->_returnPath === null) {
|
779 |
+
$email = $this->_filterEmail($email);
|
780 |
+
$this->_returnPath = $email;
|
781 |
+
$this->_storeHeader('Return-Path', $email, false);
|
782 |
} else {
|
783 |
+
/**
|
784 |
+
* @see mail_bank_Zend_Mail_Exception
|
785 |
+
*/
|
786 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
787 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
788 |
|
789 |
+
throw new mail_bank_Zend_Mail_Exception('Return-Path Header set twice');
|
790 |
}
|
791 |
return $this;
|
792 |
}
|
|
|
793 |
/**
|
794 |
* Returns the current Return-Path address of the message
|
795 |
*
|
799 |
*/
|
800 |
public function getReturnPath() {
|
801 |
if (null !== $this->_returnPath) {
|
802 |
+
return $this->_returnPath;
|
803 |
}
|
804 |
|
805 |
return $this->_from;
|
806 |
}
|
|
|
807 |
/**
|
808 |
* Clears the current Return-Path address from the message
|
809 |
*
|
815 |
|
816 |
return $this;
|
817 |
}
|
|
|
818 |
/**
|
819 |
* Sets the subject of the message
|
820 |
*
|
824 |
*/
|
825 |
public function setSubject($subject) {
|
826 |
if ($this->_subject === null) {
|
827 |
+
$subject = $this->_filterOther($subject);
|
828 |
+
$this->_subject = $this->_encodeHeader($subject);
|
829 |
+
$this->_storeHeader('Subject', $this->_subject);
|
830 |
} else {
|
831 |
+
/**
|
832 |
+
* @see mail_bank_Zend_Mail_Exception
|
833 |
+
*/
|
834 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
835 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
836 |
|
837 |
+
throw new mail_bank_Zend_Mail_Exception('Subject set twice');
|
838 |
}
|
839 |
return $this;
|
840 |
}
|
|
|
841 |
/**
|
842 |
* Returns the encoded subject of the message
|
843 |
*
|
846 |
public function getSubject() {
|
847 |
return $this->_subject;
|
848 |
}
|
|
|
849 |
/**
|
850 |
* Clears the encoded subject from the message
|
851 |
*
|
857 |
|
858 |
return $this;
|
859 |
}
|
|
|
860 |
/**
|
861 |
* Sets Date-header
|
862 |
*
|
867 |
*/
|
868 |
public function setDate($date = null) {
|
869 |
if ($this->_date === null) {
|
870 |
+
if ($date === null) {
|
871 |
+
$date = date('r');
|
872 |
+
} else if (is_int($date)) {
|
873 |
+
$date = date('r', $date);
|
874 |
+
} else if (is_string($date)) {
|
875 |
+
$date = strtotime($date);
|
876 |
+
if ($date === false || $date < 0) {
|
877 |
+
/**
|
878 |
+
* @see mail_bank_Zend_Mail_Exception
|
879 |
+
*/
|
880 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
881 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
882 |
+
|
883 |
+
throw new mail_bank_Zend_Mail_Exception('String representations of Date Header must be ' .
|
884 |
+
'strtotime()-compatible');
|
885 |
+
}
|
886 |
+
$date = date('r', $date);
|
887 |
+
}
|
888 |
+
else if ($date instanceof mail_bank_Zend_Date) {
|
889 |
+
$date = $date->get(mail_bank_Zend_Date::RFC_2822);
|
890 |
+
} else {
|
891 |
+
/**
|
892 |
+
* @see mail_bank_Zend_Mail_Exception
|
893 |
+
*/
|
894 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
895 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
896 |
+
|
897 |
+
throw new mail_bank_Zend_Mail_Exception(__METHOD__ . ' only accepts UNIX timestamps, Zend_Date objects, ' .
|
898 |
+
' and strtotime()-compatible strings');
|
899 |
+
}
|
900 |
+
$this->_date = $date;
|
901 |
+
$this->_storeHeader('Date', $date);
|
902 |
}
|
903 |
else {
|
904 |
+
/**
|
905 |
+
* @see mail_bank_Zend_Mail_Exception
|
906 |
+
*/
|
907 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
908 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
909 |
|
910 |
+
throw new mail_bank_Zend_Mail_Exception('Date Header set twice');
|
911 |
}
|
912 |
return $this;
|
913 |
}
|
|
|
914 |
/**
|
915 |
* Returns the formatted date of the message
|
916 |
*
|
919 |
public function getDate() {
|
920 |
return $this->_date;
|
921 |
}
|
|
|
922 |
/**
|
923 |
* Clears the formatted date from the message
|
924 |
*
|
930 |
|
931 |
return $this;
|
932 |
}
|
|
|
933 |
/**
|
934 |
* Sets the Message-ID of the message
|
935 |
*
|
943 |
*/
|
944 |
public function setMessageId($id = true) {
|
945 |
if ($id === null || $id === false) {
|
946 |
+
return $this;
|
947 |
} elseif ($id === true) {
|
948 |
+
$id = $this->createMessageId();
|
949 |
}
|
950 |
|
951 |
if ($this->_messageId === null) {
|
952 |
+
$id = $this->_filterOther($id);
|
953 |
+
$this->_messageId = $id;
|
954 |
+
$this->_storeHeader('Message-Id', '<' . $this->_messageId . '>');
|
955 |
} else {
|
956 |
+
/**
|
957 |
+
* @see mail_bank_Zend_Mail_Exception
|
958 |
+
*/
|
959 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
960 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
961 |
|
962 |
+
throw new mail_bank_Zend_Mail_Exception('Message-ID set twice');
|
963 |
}
|
964 |
|
965 |
return $this;
|
966 |
}
|
|
|
967 |
/**
|
968 |
* Returns the Message-ID of the message
|
969 |
*
|
972 |
public function getMessageId() {
|
973 |
return $this->_messageId;
|
974 |
}
|
|
|
975 |
/**
|
976 |
* Clears the Message-ID from the message
|
977 |
*
|
983 |
|
984 |
return $this;
|
985 |
}
|
|
|
986 |
/**
|
987 |
* Creates the Message-ID
|
988 |
*
|
992 |
$time = time();
|
993 |
|
994 |
if ($this->_from !== null) {
|
995 |
+
$user = $this->_from;
|
996 |
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
|
997 |
+
$user = $_SERVER['REMOTE_ADDR'];
|
998 |
} else {
|
999 |
+
$user = getmypid();
|
1000 |
}
|
1001 |
|
1002 |
$rand = mt_rand();
|
1003 |
|
1004 |
if ($this->_recipients !== array()) {
|
1005 |
+
$recipient = array_rand($this->_recipients);
|
1006 |
} else {
|
1007 |
+
$recipient = 'unknown';
|
1008 |
}
|
1009 |
|
1010 |
if (isset($_SERVER["SERVER_NAME"])) {
|
1011 |
+
$hostName = $_SERVER["SERVER_NAME"];
|
1012 |
} else {
|
1013 |
+
$hostName = php_uname('n');
|
1014 |
}
|
1015 |
|
1016 |
return sha1($time . $user . $rand . $recipient) . '@' . $hostName;
|
1017 |
}
|
|
|
1018 |
/**
|
1019 |
* Add a custom header to the message
|
1020 |
*
|
1026 |
*/
|
1027 |
public function addHeader($name, $value, $append = false) {
|
1028 |
$prohibit = array('to', 'cc', 'bcc', 'from', 'subject',
|
1029 |
+
'reply-to', 'return-path',
|
1030 |
+
'date', 'message-id',
|
1031 |
);
|
1032 |
if (in_array(strtolower($name), $prohibit)) {
|
1033 |
+
/**
|
1034 |
+
* @see mail_bank_Zend_Mail_Exception
|
1035 |
+
*/
|
1036 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
1037 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
1038 |
|
1039 |
+
throw new mail_bank_Zend_Mail_Exception('Cannot set standard header from addHeader()');
|
1040 |
}
|
1041 |
|
1042 |
$value = $this->_filterOther($value);
|
1045 |
|
1046 |
return $this;
|
1047 |
}
|
|
|
1048 |
/**
|
1049 |
* Return mail headers
|
1050 |
*
|
1053 |
public function getHeaders() {
|
1054 |
return $this->_headers;
|
1055 |
}
|
|
|
1056 |
/**
|
1057 |
* Sends this email using the given transport or a previously
|
1058 |
* set DefaultTransport or the internal mail function if no
|
1063 |
*/
|
1064 |
public function send($transport = null) {
|
1065 |
if ($transport === null) {
|
1066 |
+
if (!self::$_defaultTransport instanceof mail_bank_Zend_Mail_Transport_Abstract) {
|
1067 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/transport/sendmail.php'))
|
1068 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/transport/sendmail.php';
|
1069 |
+
|
1070 |
+
$transport = new mail_bank_Zend_Mail_Transport_Sendmail();
|
1071 |
+
}
|
1072 |
+
else {
|
1073 |
+
$transport = self::$_defaultTransport;
|
1074 |
+
}
|
1075 |
}
|
1076 |
|
1077 |
if ($this->_date === null) {
|
1078 |
+
$this->setDate();
|
1079 |
}
|
1080 |
|
1081 |
if (null === $this->_from && null !== self::getDefaultFrom()) {
|
1082 |
+
$this->setFromToDefaultFrom();
|
1083 |
}
|
1084 |
|
1085 |
if (null === $this->_replyTo && null !== self::getDefaultReplyTo()) {
|
1086 |
+
$this->setReplyToFromDefault();
|
1087 |
}
|
1088 |
|
1089 |
$transport->send($this);
|
1090 |
|
1091 |
return $this;
|
1092 |
}
|
|
|
1093 |
/**
|
1094 |
* Filter of email data
|
1095 |
*
|
1098 |
*/
|
1099 |
protected function _filterEmail($email) {
|
1100 |
$rule = array("\r" => '',
|
1101 |
+
"\n" => '',
|
1102 |
+
"\t" => '',
|
1103 |
+
'"' => '',
|
1104 |
+
',' => '',
|
1105 |
+
'<' => '',
|
1106 |
+
'>' => '',
|
1107 |
);
|
1108 |
|
1109 |
return strtr($email, $rule);
|
1110 |
}
|
|
|
1111 |
/**
|
1112 |
* Filter of name data
|
1113 |
*
|
1116 |
*/
|
1117 |
protected function _filterName($name) {
|
1118 |
$rule = array("\r" => '',
|
1119 |
+
"\n" => '',
|
1120 |
+
"\t" => '',
|
1121 |
+
'"' => "'",
|
1122 |
+
'<' => '[',
|
1123 |
+
'>' => ']',
|
1124 |
);
|
1125 |
|
1126 |
return trim(strtr($name, $rule));
|
1127 |
}
|
|
|
1128 |
/**
|
1129 |
* Filter of other data
|
1130 |
*
|
1133 |
*/
|
1134 |
protected function _filterOther($data) {
|
1135 |
$rule = array("\r" => '',
|
1136 |
+
"\n" => '',
|
1137 |
+
"\t" => '',
|
1138 |
);
|
1139 |
|
1140 |
return strtr($data, $rule);
|
1141 |
}
|
|
|
1142 |
/**
|
1143 |
* Formats e-mail address
|
1144 |
*
|
1148 |
*/
|
1149 |
protected function _formatAddress($email, $name) {
|
1150 |
if ($name === '' || $name === null || $name === $email) {
|
1151 |
+
return $email;
|
1152 |
} else {
|
1153 |
+
$encodedName = $this->_encodeHeader($name);
|
1154 |
+
if ($encodedName === $name && strcspn($name, '()<>[]:;@\\,.') != strlen($name)) {
|
1155 |
+
$format = '"%s" <%s>';
|
1156 |
+
} else {
|
1157 |
+
$format = '%s <%s>';
|
1158 |
+
}
|
1159 |
+
return sprintf($format, $encodedName, $email);
|
1160 |
}
|
1161 |
}
|
1162 |
+
}
|
|
lib/zend/mail/exception.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Zend Framework
|
5 |
*
|
@@ -27,7 +26,6 @@ if (!defined("ABSPATH"))
|
|
27 |
*/
|
28 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/exception.php'))
|
29 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/exception.php';
|
30 |
-
|
31 |
/**
|
32 |
* @category Zend
|
33 |
* @package mail_bank_Zend_Mail
|
@@ -36,4 +34,4 @@ if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/exception.php'))
|
|
36 |
*/
|
37 |
class mail_bank_Zend_Mail_Exception extends mail_bank_Zend_Exception {
|
38 |
|
39 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Zend Framework
|
4 |
*
|
26 |
*/
|
27 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/exception.php'))
|
28 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/exception.php';
|
|
|
29 |
/**
|
30 |
* @category Zend
|
31 |
* @package mail_bank_Zend_Mail
|
34 |
*/
|
35 |
class mail_bank_Zend_Mail_Exception extends mail_bank_Zend_Exception {
|
36 |
|
37 |
+
}
|
lib/zend/mail/message.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Zend Framework
|
5 |
*
|
@@ -32,7 +31,6 @@ if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/part.php'))
|
|
32 |
*/
|
33 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/message/interface.php'))
|
34 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/message/interface.php';
|
35 |
-
|
36 |
/**
|
37 |
* @category Zend
|
38 |
* @package mail_bank_Zend_Mail
|
@@ -40,13 +38,11 @@ if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/message/interface.php'))
|
|
40 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
41 |
*/
|
42 |
class mail_bank_Zend_Mail_Message extends mail_bank_Zend_Mail_Part implements mail_bank_Zend_Mail_Message_Interface {
|
43 |
-
|
44 |
/**
|
45 |
* flags for this message
|
46 |
* @var array
|
47 |
*/
|
48 |
protected $_flags = array();
|
49 |
-
|
50 |
/**
|
51 |
* Public constructor
|
52 |
*
|
@@ -59,32 +55,31 @@ class mail_bank_Zend_Mail_Message extends mail_bank_Zend_Mail_Part implements ma
|
|
59 |
*/
|
60 |
public function __construct(array $params) {
|
61 |
if (isset($params['file'])) {
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
}
|
79 |
|
80 |
if (!empty($params['flags'])) {
|
81 |
-
|
82 |
-
|
83 |
}
|
84 |
|
85 |
parent::__construct($params);
|
86 |
}
|
87 |
-
|
88 |
/**
|
89 |
* return toplines as found after headers
|
90 |
*
|
@@ -93,7 +88,6 @@ class mail_bank_Zend_Mail_Message extends mail_bank_Zend_Mail_Part implements ma
|
|
93 |
public function getTopLines() {
|
94 |
return $this->_topLines;
|
95 |
}
|
96 |
-
|
97 |
/**
|
98 |
* check if flag is set
|
99 |
*
|
@@ -103,7 +97,6 @@ class mail_bank_Zend_Mail_Message extends mail_bank_Zend_Mail_Part implements ma
|
|
103 |
public function hasFlag($flag) {
|
104 |
return isset($this->_flags[$flag]);
|
105 |
}
|
106 |
-
|
107 |
/**
|
108 |
* get all set flags
|
109 |
*
|
@@ -112,5 +105,4 @@ class mail_bank_Zend_Mail_Message extends mail_bank_Zend_Mail_Part implements ma
|
|
112 |
public function getFlags() {
|
113 |
return $this->_flags;
|
114 |
}
|
115 |
-
|
116 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Zend Framework
|
4 |
*
|
31 |
*/
|
32 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/message/interface.php'))
|
33 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/message/interface.php';
|
|
|
34 |
/**
|
35 |
* @category Zend
|
36 |
* @package mail_bank_Zend_Mail
|
38 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
39 |
*/
|
40 |
class mail_bank_Zend_Mail_Message extends mail_bank_Zend_Mail_Part implements mail_bank_Zend_Mail_Message_Interface {
|
|
|
41 |
/**
|
42 |
* flags for this message
|
43 |
* @var array
|
44 |
*/
|
45 |
protected $_flags = array();
|
|
|
46 |
/**
|
47 |
* Public constructor
|
48 |
*
|
55 |
*/
|
56 |
public function __construct(array $params) {
|
57 |
if (isset($params['file'])) {
|
58 |
+
if (!is_resource($params['file'])) {
|
59 |
+
$params['raw'] = @file_get_contents($params['file']);
|
60 |
+
if ($params['raw'] === false) {
|
61 |
+
/**
|
62 |
+
* @see mail_bank_Zend_Mail_Exception
|
63 |
+
*/
|
64 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
65 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
66 |
|
67 |
+
throw new mail_bank_Zend_Mail_Exception('could not open file');
|
68 |
+
}
|
69 |
+
}
|
70 |
+
else {
|
71 |
+
$params['raw'] = stream_get_contents($params['file']);
|
72 |
+
}
|
73 |
+
$params['raw'] = preg_replace("/(?<!\r)\n/", "\r\n", $params['raw']);
|
74 |
}
|
75 |
|
76 |
if (!empty($params['flags'])) {
|
77 |
+
// set key and value to the same value for easy lookup
|
78 |
+
$this->_flags = array_merge($this->_flags, array_combine($params['flags'], $params['flags']));
|
79 |
}
|
80 |
|
81 |
parent::__construct($params);
|
82 |
}
|
|
|
83 |
/**
|
84 |
* return toplines as found after headers
|
85 |
*
|
88 |
public function getTopLines() {
|
89 |
return $this->_topLines;
|
90 |
}
|
|
|
91 |
/**
|
92 |
* check if flag is set
|
93 |
*
|
97 |
public function hasFlag($flag) {
|
98 |
return isset($this->_flags[$flag]);
|
99 |
}
|
|
|
100 |
/**
|
101 |
* get all set flags
|
102 |
*
|
105 |
public function getFlags() {
|
106 |
return $this->_flags;
|
107 |
}
|
108 |
+
}
|
|
lib/zend/mail/message/file.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Zend Framework
|
5 |
*
|
@@ -33,7 +32,6 @@ if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/part/file.php'))
|
|
33 |
*/
|
34 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/message/interface.php'))
|
35 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/message/interface.php';
|
36 |
-
|
37 |
/**
|
38 |
* @category Zend
|
39 |
* @package mail_bank_Zend_Mail
|
@@ -41,13 +39,11 @@ if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/message/interface.php'))
|
|
41 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
42 |
*/
|
43 |
class mail_bank_Zend_Mail_Message_File extends mail_bank_Zend_Mail_Part_File implements mail_bank_Zend_Mail_Message_Interface {
|
44 |
-
|
45 |
/**
|
46 |
* flags for this message
|
47 |
* @var array
|
48 |
*/
|
49 |
protected $_flags = array();
|
50 |
-
|
51 |
/**
|
52 |
* Public constructor
|
53 |
*
|
@@ -59,13 +55,12 @@ class mail_bank_Zend_Mail_Message_File extends mail_bank_Zend_Mail_Part_File imp
|
|
59 |
*/
|
60 |
public function __construct(array $params) {
|
61 |
if (!empty($params['flags'])) {
|
62 |
-
|
63 |
-
|
64 |
}
|
65 |
|
66 |
parent::__construct($params);
|
67 |
}
|
68 |
-
|
69 |
/**
|
70 |
* return toplines as found after headers
|
71 |
*
|
@@ -74,7 +69,6 @@ class mail_bank_Zend_Mail_Message_File extends mail_bank_Zend_Mail_Part_File imp
|
|
74 |
public function getTopLines() {
|
75 |
return $this->_topLines;
|
76 |
}
|
77 |
-
|
78 |
/**
|
79 |
* check if flag is set
|
80 |
*
|
@@ -84,7 +78,6 @@ class mail_bank_Zend_Mail_Message_File extends mail_bank_Zend_Mail_Part_File imp
|
|
84 |
public function hasFlag($flag) {
|
85 |
return isset($this->_flags[$flag]);
|
86 |
}
|
87 |
-
|
88 |
/**
|
89 |
* get all set flags
|
90 |
*
|
@@ -93,5 +86,4 @@ class mail_bank_Zend_Mail_Message_File extends mail_bank_Zend_Mail_Part_File imp
|
|
93 |
public function getFlags() {
|
94 |
return $this->_flags;
|
95 |
}
|
96 |
-
|
97 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Zend Framework
|
4 |
*
|
32 |
*/
|
33 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/message/interface.php'))
|
34 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/message/interface.php';
|
|
|
35 |
/**
|
36 |
* @category Zend
|
37 |
* @package mail_bank_Zend_Mail
|
39 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
40 |
*/
|
41 |
class mail_bank_Zend_Mail_Message_File extends mail_bank_Zend_Mail_Part_File implements mail_bank_Zend_Mail_Message_Interface {
|
|
|
42 |
/**
|
43 |
* flags for this message
|
44 |
* @var array
|
45 |
*/
|
46 |
protected $_flags = array();
|
|
|
47 |
/**
|
48 |
* Public constructor
|
49 |
*
|
55 |
*/
|
56 |
public function __construct(array $params) {
|
57 |
if (!empty($params['flags'])) {
|
58 |
+
// set key and value to the same value for easy lookup
|
59 |
+
$this->_flags = array_combine($params['flags'], $params['flags']);
|
60 |
}
|
61 |
|
62 |
parent::__construct($params);
|
63 |
}
|
|
|
64 |
/**
|
65 |
* return toplines as found after headers
|
66 |
*
|
69 |
public function getTopLines() {
|
70 |
return $this->_topLines;
|
71 |
}
|
|
|
72 |
/**
|
73 |
* check if flag is set
|
74 |
*
|
78 |
public function hasFlag($flag) {
|
79 |
return isset($this->_flags[$flag]);
|
80 |
}
|
|
|
81 |
/**
|
82 |
* get all set flags
|
83 |
*
|
86 |
public function getFlags() {
|
87 |
return $this->_flags;
|
88 |
}
|
89 |
+
}
|
|
lib/zend/mail/message/interface.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Zend Framework
|
5 |
*
|
@@ -30,16 +29,13 @@
|
|
30 |
if (!defined("ABSPATH")) {
|
31 |
exit;
|
32 |
} // Exit if accessed directly
|
33 |
-
|
34 |
interface mail_bank_Zend_Mail_Message_Interface {
|
35 |
-
|
36 |
/**
|
37 |
* return toplines as found after headers
|
38 |
*
|
39 |
* @return string toplines
|
40 |
*/
|
41 |
public function getTopLines();
|
42 |
-
|
43 |
/**
|
44 |
* check if flag is set
|
45 |
*
|
@@ -47,11 +43,10 @@ interface mail_bank_Zend_Mail_Message_Interface {
|
|
47 |
* @return bool true if set, otherwise false
|
48 |
*/
|
49 |
public function hasFlag($flag);
|
50 |
-
|
51 |
/**
|
52 |
* get all set flags
|
53 |
*
|
54 |
* @return array array with flags, key and value are the same for easy lookup
|
55 |
*/
|
56 |
public function getFlags();
|
57 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Zend Framework
|
4 |
*
|
29 |
if (!defined("ABSPATH")) {
|
30 |
exit;
|
31 |
} // Exit if accessed directly
|
|
|
32 |
interface mail_bank_Zend_Mail_Message_Interface {
|
|
|
33 |
/**
|
34 |
* return toplines as found after headers
|
35 |
*
|
36 |
* @return string toplines
|
37 |
*/
|
38 |
public function getTopLines();
|
|
|
39 |
/**
|
40 |
* check if flag is set
|
41 |
*
|
43 |
* @return bool true if set, otherwise false
|
44 |
*/
|
45 |
public function hasFlag($flag);
|
|
|
46 |
/**
|
47 |
* get all set flags
|
48 |
*
|
49 |
* @return array array with flags, key and value are the same for easy lookup
|
50 |
*/
|
51 |
public function getFlags();
|
52 |
+
}
|
lib/zend/mail/part/file.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Zend Framework
|
5 |
*
|
@@ -33,7 +32,6 @@ if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mime/decode.php'))
|
|
33 |
*/
|
34 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/part.php'))
|
35 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/part.php';
|
36 |
-
|
37 |
/**
|
38 |
* @category Zend
|
39 |
* @package mail_bank_Zend_Mail
|
@@ -41,11 +39,9 @@ if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/part.php'))
|
|
41 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
42 |
*/
|
43 |
class mail_bank_Zend_Mail_Part_File extends mail_bank_Zend_Mail_Part {
|
44 |
-
|
45 |
protected $_contentPos = array();
|
46 |
protected $_partPos = array();
|
47 |
protected $_fh;
|
48 |
-
|
49 |
/**
|
50 |
* Public constructor
|
51 |
*
|
@@ -59,100 +55,99 @@ class mail_bank_Zend_Mail_Part_File extends mail_bank_Zend_Mail_Part {
|
|
59 |
*/
|
60 |
public function __construct(array $params) {
|
61 |
if (empty($params['file'])) {
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
|
68 |
-
|
69 |
}
|
70 |
|
71 |
if (!is_resource($params['file'])) {
|
72 |
-
|
73 |
} else {
|
74 |
-
|
75 |
}
|
76 |
if (!$this->_fh) {
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
|
83 |
-
|
84 |
}
|
85 |
if (isset($params['startPos'])) {
|
86 |
-
|
87 |
}
|
88 |
$header = '';
|
89 |
$endPos = isset($params['endPos']) ? $params['endPos'] : null;
|
90 |
while (($endPos === null || ftell($this->_fh) < $endPos) && trim($line = fgets($this->_fh))) {
|
91 |
-
|
92 |
}
|
93 |
|
94 |
mail_bank_Zend_Mime_Decode::splitMessage($header, $this->_headers, $null);
|
95 |
|
96 |
$this->_contentPos[0] = ftell($this->_fh);
|
97 |
if ($endPos !== null) {
|
98 |
-
|
99 |
} else {
|
100 |
-
|
101 |
-
|
102 |
}
|
103 |
if (!$this->isMultipart()) {
|
104 |
-
|
105 |
}
|
106 |
|
107 |
$boundary = $this->getHeaderField('content-type', 'boundary');
|
108 |
if (!$boundary) {
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
|
115 |
-
|
116 |
}
|
117 |
|
118 |
$part = array();
|
119 |
$pos = $this->_contentPos[0];
|
120 |
fseek($this->_fh, $pos);
|
121 |
while (!feof($this->_fh) && ($endPos === null || $pos < $endPos)) {
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
}
|
153 |
$this->_countParts = count($this->_partPos);
|
154 |
}
|
155 |
-
|
156 |
/**
|
157 |
* Body of part
|
158 |
*
|
@@ -164,12 +159,11 @@ class mail_bank_Zend_Mail_Part_File extends mail_bank_Zend_Mail_Part {
|
|
164 |
public function getContent($stream = null) {
|
165 |
fseek($this->_fh, $this->_contentPos[0]);
|
166 |
if ($stream !== null) {
|
167 |
-
|
168 |
}
|
169 |
$length = $this->_contentPos[1] - $this->_contentPos[0];
|
170 |
return $length < 1 ? '' : fread($this->_fh, $length);
|
171 |
}
|
172 |
-
|
173 |
/**
|
174 |
* Return size of part
|
175 |
*
|
@@ -180,7 +174,6 @@ class mail_bank_Zend_Mail_Part_File extends mail_bank_Zend_Mail_Part {
|
|
180 |
public function getSize() {
|
181 |
return $this->_contentPos[1] - $this->_contentPos[0];
|
182 |
}
|
183 |
-
|
184 |
/**
|
185 |
* Get part of multipart message
|
186 |
*
|
@@ -191,17 +184,16 @@ class mail_bank_Zend_Mail_Part_File extends mail_bank_Zend_Mail_Part {
|
|
191 |
public function getPart($num) {
|
192 |
--$num;
|
193 |
if (!isset($this->_partPos[$num])) {
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
|
200 |
-
|
201 |
}
|
202 |
|
203 |
return new self(array('file' => $this->_fh, 'startPos' => $this->_partPos[$num][0],
|
204 |
-
|
205 |
}
|
206 |
-
|
207 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Zend Framework
|
4 |
*
|
32 |
*/
|
33 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/part.php'))
|
34 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/part.php';
|
|
|
35 |
/**
|
36 |
* @category Zend
|
37 |
* @package mail_bank_Zend_Mail
|
39 |
* @license http://framework.zend.com/license/new-bsd New BSD License
|
40 |
*/
|
41 |
class mail_bank_Zend_Mail_Part_File extends mail_bank_Zend_Mail_Part {
|
|
|
42 |
protected $_contentPos = array();
|
43 |
protected $_partPos = array();
|
44 |
protected $_fh;
|
|
|
45 |
/**
|
46 |
* Public constructor
|
47 |
*
|
55 |
*/
|
56 |
public function __construct(array $params) {
|
57 |
if (empty($params['file'])) {
|
58 |
+
/**
|
59 |
+
* @see mail_bank_Zend_Mail_Exception
|
60 |
+
*/
|
61 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
62 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
63 |
|
64 |
+
throw new mail_bank_Zend_Mail_Exception('no file given in params');
|
65 |
}
|
66 |
|
67 |
if (!is_resource($params['file'])) {
|
68 |
+
$this->_fh = fopen($params['file'], 'r');
|
69 |
} else {
|
70 |
+
$this->_fh = $params['file'];
|
71 |
}
|
72 |
if (!$this->_fh) {
|
73 |
+
/**
|
74 |
+
* @see mail_bank_Zend_Mail_Exception
|
75 |
+
*/
|
76 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
77 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
78 |
|
79 |
+
throw new mail_bank_Zend_Mail_Exception('could not open file');
|
80 |
}
|
81 |
if (isset($params['startPos'])) {
|
82 |
+
fseek($this->_fh, $params['startPos']);
|
83 |
}
|
84 |
$header = '';
|
85 |
$endPos = isset($params['endPos']) ? $params['endPos'] : null;
|
86 |
while (($endPos === null || ftell($this->_fh) < $endPos) && trim($line = fgets($this->_fh))) {
|
87 |
+
$header .= $line;
|
88 |
}
|
89 |
|
90 |
mail_bank_Zend_Mime_Decode::splitMessage($header, $this->_headers, $null);
|
91 |
|
92 |
$this->_contentPos[0] = ftell($this->_fh);
|
93 |
if ($endPos !== null) {
|
94 |
+
$this->_contentPos[1] = $endPos;
|
95 |
} else {
|
96 |
+
fseek($this->_fh, 0, SEEK_END);
|
97 |
+
$this->_contentPos[1] = ftell($this->_fh);
|
98 |
}
|
99 |
if (!$this->isMultipart()) {
|
100 |
+
return;
|
101 |
}
|
102 |
|
103 |
$boundary = $this->getHeaderField('content-type', 'boundary');
|
104 |
if (!$boundary) {
|
105 |
+
/**
|
106 |
+
* @see mail_bank_Zend_Mail_Exception
|
107 |
+
*/
|
108 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
109 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
110 |
|
111 |
+
throw new mail_bank_Zend_Mail_Exception('no boundary found in content type to split message');
|
112 |
}
|
113 |
|
114 |
$part = array();
|
115 |
$pos = $this->_contentPos[0];
|
116 |
fseek($this->_fh, $pos);
|
117 |
while (!feof($this->_fh) && ($endPos === null || $pos < $endPos)) {
|
118 |
+
$line = fgets($this->_fh);
|
119 |
+
if ($line === false) {
|
120 |
+
if (feof($this->_fh)) {
|
121 |
+
break;
|
122 |
+
}
|
123 |
+
/**
|
124 |
+
* @see mail_bank_Zend_Mail_Exception
|
125 |
+
*/
|
126 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
127 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
128 |
+
|
129 |
+
throw new mail_bank_Zend_Mail_Exception('error reading file');
|
130 |
+
}
|
131 |
+
|
132 |
+
$lastPos = $pos;
|
133 |
+
$pos = ftell($this->_fh);
|
134 |
+
$line = trim($line);
|
135 |
+
|
136 |
+
if ($line == '--' . $boundary) {
|
137 |
+
if ($part) {
|
138 |
+
// not first part
|
139 |
+
$part[1] = $lastPos;
|
140 |
+
$this->_partPos[] = $part;
|
141 |
+
}
|
142 |
+
$part = array($pos);
|
143 |
+
} else if ($line == '--' . $boundary . '--') {
|
144 |
+
$part[1] = $lastPos;
|
145 |
+
$this->_partPos[] = $part;
|
146 |
+
break;
|
147 |
+
}
|
148 |
}
|
149 |
$this->_countParts = count($this->_partPos);
|
150 |
}
|
|
|
151 |
/**
|
152 |
* Body of part
|
153 |
*
|
159 |
public function getContent($stream = null) {
|
160 |
fseek($this->_fh, $this->_contentPos[0]);
|
161 |
if ($stream !== null) {
|
162 |
+
return stream_copy_to_stream($this->_fh, $stream, $this->_contentPos[1] - $this->_contentPos[0]);
|
163 |
}
|
164 |
$length = $this->_contentPos[1] - $this->_contentPos[0];
|
165 |
return $length < 1 ? '' : fread($this->_fh, $length);
|
166 |
}
|
|
|
167 |
/**
|
168 |
* Return size of part
|
169 |
*
|
174 |
public function getSize() {
|
175 |
return $this->_contentPos[1] - $this->_contentPos[0];
|
176 |
}
|
|
|
177 |
/**
|
178 |
* Get part of multipart message
|
179 |
*
|
184 |
public function getPart($num) {
|
185 |
--$num;
|
186 |
if (!isset($this->_partPos[$num])) {
|
187 |
+
/**
|
188 |
+
* @see mail_bank_Zend_Mail_Exception
|
189 |
+
*/
|
190 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
191 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
192 |
|
193 |
+
throw new mail_bank_Zend_Mail_Exception('part not found');
|
194 |
}
|
195 |
|
196 |
return new self(array('file' => $this->_fh, 'startPos' => $this->_partPos[$num][0],
|
197 |
+
'endPos' => $this->_partPos[$num][1]));
|
198 |
}
|
199 |
+
}
|
|
lib/zend/mail/part/interface.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Zend Framework
|
5 |
*
|
@@ -30,16 +29,13 @@
|
|
30 |
if (!defined("ABSPATH")) {
|
31 |
exit;
|
32 |
} // Exit if accessed directly
|
33 |
-
|
34 |
interface mail_bank_Zend_Mail_Part_Interface extends RecursiveIterator {
|
35 |
-
|
36 |
/**
|
37 |
* Check if part is a multipart message
|
38 |
*
|
39 |
* @return bool if part is multipart
|
40 |
*/
|
41 |
public function isMultipart();
|
42 |
-
|
43 |
/**
|
44 |
* Body of part
|
45 |
*
|
@@ -49,14 +45,12 @@ interface mail_bank_Zend_Mail_Part_Interface extends RecursiveIterator {
|
|
49 |
* @throws mail_bank_Zend_Mail_Exception
|
50 |
*/
|
51 |
public function getContent();
|
52 |
-
|
53 |
/**
|
54 |
* Return size of part
|
55 |
*
|
56 |
* @return int size
|
57 |
*/
|
58 |
public function getSize();
|
59 |
-
|
60 |
/**
|
61 |
* Get part of multipart message
|
62 |
*
|
@@ -65,14 +59,12 @@ interface mail_bank_Zend_Mail_Part_Interface extends RecursiveIterator {
|
|
65 |
* @throws mail_bank_Zend_Mail_Exception
|
66 |
*/
|
67 |
public function getPart($num);
|
68 |
-
|
69 |
/**
|
70 |
* Count parts of a multipart part
|
71 |
*
|
72 |
* @return int number of sub-parts
|
73 |
*/
|
74 |
public function countParts();
|
75 |
-
|
76 |
/**
|
77 |
* Get all headers
|
78 |
*
|
@@ -82,7 +74,6 @@ interface mail_bank_Zend_Mail_Part_Interface extends RecursiveIterator {
|
|
82 |
* @return array headers as array(name => value)
|
83 |
*/
|
84 |
public function getHeaders();
|
85 |
-
|
86 |
/**
|
87 |
* Get a header in specificed format
|
88 |
*
|
@@ -95,7 +86,6 @@ interface mail_bank_Zend_Mail_Part_Interface extends RecursiveIterator {
|
|
95 |
* @throws mail_bank_Zend_Mail_Exception
|
96 |
*/
|
97 |
public function getHeader($name, $format = null);
|
98 |
-
|
99 |
/**
|
100 |
* Get a specific field from a header like content type or all fields as array
|
101 |
*
|
@@ -112,7 +102,6 @@ interface mail_bank_Zend_Mail_Part_Interface extends RecursiveIterator {
|
|
112 |
* @throws mail_bank_Zend_Exception, mail_bank_Zend_Mail_Exception
|
113 |
*/
|
114 |
public function getHeaderField($name, $wantedPart = 0, $firstName = 0);
|
115 |
-
|
116 |
/**
|
117 |
* Getter for mail headers - name is matched in lowercase
|
118 |
*
|
@@ -125,11 +114,10 @@ interface mail_bank_Zend_Mail_Part_Interface extends RecursiveIterator {
|
|
125 |
* @throws mail_bank_Zend_Mail_Exception
|
126 |
*/
|
127 |
public function __get($name);
|
128 |
-
|
129 |
/**
|
130 |
* magic method to get content of part
|
131 |
*
|
132 |
* @return string content
|
133 |
*/
|
134 |
public function __toString();
|
135 |
-
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Zend Framework
|
4 |
*
|
29 |
if (!defined("ABSPATH")) {
|
30 |
exit;
|
31 |
} // Exit if accessed directly
|
|
|
32 |
interface mail_bank_Zend_Mail_Part_Interface extends RecursiveIterator {
|
|
|
33 |
/**
|
34 |
* Check if part is a multipart message
|
35 |
*
|
36 |
* @return bool if part is multipart
|
37 |
*/
|
38 |
public function isMultipart();
|
|
|
39 |
/**
|
40 |
* Body of part
|
41 |
*
|
45 |
* @throws mail_bank_Zend_Mail_Exception
|
46 |
*/
|
47 |
public function getContent();
|
|
|
48 |
/**
|
49 |
* Return size of part
|
50 |
*
|
51 |
* @return int size
|
52 |
*/
|
53 |
public function getSize();
|
|
|
54 |
/**
|
55 |
* Get part of multipart message
|
56 |
*
|
59 |
* @throws mail_bank_Zend_Mail_Exception
|
60 |
*/
|
61 |
public function getPart($num);
|
|
|
62 |
/**
|
63 |
* Count parts of a multipart part
|
64 |
*
|
65 |
* @return int number of sub-parts
|
66 |
*/
|
67 |
public function countParts();
|
|
|
68 |
/**
|
69 |
* Get all headers
|
70 |
*
|
74 |
* @return array headers as array(name => value)
|
75 |
*/
|
76 |
public function getHeaders();
|
|
|
77 |
/**
|
78 |
* Get a header in specificed format
|
79 |
*
|
86 |
* @throws mail_bank_Zend_Mail_Exception
|
87 |
*/
|
88 |
public function getHeader($name, $format = null);
|
|
|
89 |
/**
|
90 |
* Get a specific field from a header like content type or all fields as array
|
91 |
*
|
102 |
* @throws mail_bank_Zend_Exception, mail_bank_Zend_Mail_Exception
|
103 |
*/
|
104 |
public function getHeaderField($name, $wantedPart = 0, $firstName = 0);
|
|
|
105 |
/**
|
106 |
* Getter for mail headers - name is matched in lowercase
|
107 |
*
|
114 |
* @throws mail_bank_Zend_Mail_Exception
|
115 |
*/
|
116 |
public function __get($name);
|
|
|
117 |
/**
|
118 |
* magic method to get content of part
|
119 |
*
|
120 |
* @return string content
|
121 |
*/
|
122 |
public function __toString();
|
123 |
+
}
|
lib/zend/mail/protocol/abstract.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Zend Framework
|
5 |
*
|
@@ -35,7 +34,6 @@ if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/validate.php'))
|
|
35 |
*/
|
36 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/validate/hostname.php'))
|
37 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/validate/hostname.php';
|
38 |
-
|
39 |
/**
|
40 |
* mail_bank_Zend_Mail_Protocol_Abstract
|
41 |
*
|
@@ -50,72 +48,60 @@ if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/validate/hostname.php'))
|
|
50 |
* @todo Implement proxy settings
|
51 |
*/
|
52 |
abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
53 |
-
|
54 |
/**
|
55 |
* Mail default EOL string
|
56 |
*/
|
57 |
const EOL = "\r\n";
|
58 |
-
|
59 |
/**
|
60 |
* Default timeout in seconds for initiating session
|
61 |
*/
|
62 |
const TIMEOUT_CONNECTION = 30;
|
63 |
-
|
64 |
/**
|
65 |
* Maximum of the transaction log
|
66 |
* @var integer
|
67 |
*/
|
68 |
protected $_maximumLog = 64;
|
69 |
-
|
70 |
/**
|
71 |
* Hostname or IP address of remote server
|
72 |
* @var string
|
73 |
*/
|
74 |
protected $_host;
|
75 |
-
|
76 |
/**
|
77 |
* Port number of connection
|
78 |
* @var integer
|
79 |
*/
|
80 |
protected $_port;
|
81 |
-
|
82 |
/**
|
83 |
* Instance of mail_bank_Zend_Validate to check hostnames
|
84 |
* @var mail_bank_Zend_Validate
|
85 |
*/
|
86 |
protected $_validHost;
|
87 |
-
|
88 |
/**
|
89 |
* Socket connection resource
|
90 |
* @var resource
|
91 |
*/
|
92 |
protected $_socket;
|
93 |
-
|
94 |
/**
|
95 |
* Last request sent to server
|
96 |
* @var string
|
97 |
*/
|
98 |
protected $_request;
|
99 |
-
|
100 |
/**
|
101 |
* Array of server responses to last request
|
102 |
* @var array
|
103 |
*/
|
104 |
protected $_response;
|
105 |
-
|
106 |
/**
|
107 |
* String template for parsing server responses using sscanf (default: 3 digit code and response string)
|
108 |
* @var resource
|
109 |
* @deprecated Since 1.10.3
|
110 |
*/
|
111 |
protected $_template = '%d%s';
|
112 |
-
|
113 |
/**
|
114 |
* Log of mail requests and server responses for a session
|
115 |
* @var array
|
116 |
*/
|
117 |
private $_log = array();
|
118 |
-
|
119 |
/**
|
120 |
* Constructor.
|
121 |
*
|
@@ -129,19 +115,18 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
129 |
$this->_validHost->addValidator(new mail_bank_Zend_Validate_Hostname(mail_bank_Zend_Validate_Hostname::ALLOW_ALL));
|
130 |
|
131 |
if (!$this->_validHost->isValid($host)) {
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
|
138 |
-
|
139 |
}
|
140 |
|
141 |
$this->_host = $host;
|
142 |
$this->_port = $port;
|
143 |
}
|
144 |
-
|
145 |
/**
|
146 |
* Class destructor to cleanup open resources
|
147 |
*
|
@@ -150,7 +135,6 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
150 |
public function __destruct() {
|
151 |
$this->_disconnect();
|
152 |
}
|
153 |
-
|
154 |
/**
|
155 |
* Set the maximum log size
|
156 |
*
|
@@ -160,7 +144,6 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
160 |
public function setMaximumLog($maximumLog) {
|
161 |
$this->_maximumLog = (int) $maximumLog;
|
162 |
}
|
163 |
-
|
164 |
/**
|
165 |
* Get the maximum log size
|
166 |
*
|
@@ -169,14 +152,12 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
169 |
public function getMaximumLog() {
|
170 |
return $this->_maximumLog;
|
171 |
}
|
172 |
-
|
173 |
/**
|
174 |
* Create a connection to the remote host
|
175 |
*
|
176 |
* Concrete adapters for thi
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Zend Framework
|
4 |
*
|
34 |
*/
|
35 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/validate/hostname.php'))
|
36 |
require_once MAIL_BANK_DIR_PATH . 'lib/zend/validate/hostname.php';
|
|
|
37 |
/**
|
38 |
* mail_bank_Zend_Mail_Protocol_Abstract
|
39 |
*
|
48 |
* @todo Implement proxy settings
|
49 |
*/
|
50 |
abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
|
51 |
/**
|
52 |
* Mail default EOL string
|
53 |
*/
|
54 |
const EOL = "\r\n";
|
|
|
55 |
/**
|
56 |
* Default timeout in seconds for initiating session
|
57 |
*/
|
58 |
const TIMEOUT_CONNECTION = 30;
|
|
|
59 |
/**
|
60 |
* Maximum of the transaction log
|
61 |
* @var integer
|
62 |
*/
|
63 |
protected $_maximumLog = 64;
|
|
|
64 |
/**
|
65 |
* Hostname or IP address of remote server
|
66 |
* @var string
|
67 |
*/
|
68 |
protected $_host;
|
|
|
69 |
/**
|
70 |
* Port number of connection
|
71 |
* @var integer
|
72 |
*/
|
73 |
protected $_port;
|
|
|
74 |
/**
|
75 |
* Instance of mail_bank_Zend_Validate to check hostnames
|
76 |
* @var mail_bank_Zend_Validate
|
77 |
*/
|
78 |
protected $_validHost;
|
|
|
79 |
/**
|
80 |
* Socket connection resource
|
81 |
* @var resource
|
82 |
*/
|
83 |
protected $_socket;
|
|
|
84 |
/**
|
85 |
* Last request sent to server
|
86 |
* @var string
|
87 |
*/
|
88 |
protected $_request;
|
|
|
89 |
/**
|
90 |
* Array of server responses to last request
|
91 |
* @var array
|
92 |
*/
|
93 |
protected $_response;
|
|
|
94 |
/**
|
95 |
* String template for parsing server responses using sscanf (default: 3 digit code and response string)
|
96 |
* @var resource
|
97 |
* @deprecated Since 1.10.3
|
98 |
*/
|
99 |
protected $_template = '%d%s';
|
|
|
100 |
/**
|
101 |
* Log of mail requests and server responses for a session
|
102 |
* @var array
|
103 |
*/
|
104 |
private $_log = array();
|
|
|
105 |
/**
|
106 |
* Constructor.
|
107 |
*
|
115 |
$this->_validHost->addValidator(new mail_bank_Zend_Validate_Hostname(mail_bank_Zend_Validate_Hostname::ALLOW_ALL));
|
116 |
|
117 |
if (!$this->_validHost->isValid($host)) {
|
118 |
+
/**
|
119 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
120 |
+
*/
|
121 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
122 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
123 |
|
124 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception(join(', ', $this->_validHost->getMessages()));
|
125 |
}
|
126 |
|
127 |
$this->_host = $host;
|
128 |
$this->_port = $port;
|
129 |
}
|
|
|
130 |
/**
|
131 |
* Class destructor to cleanup open resources
|
132 |
*
|
135 |
public function __destruct() {
|
136 |
$this->_disconnect();
|
137 |
}
|
|
|
138 |
/**
|
139 |
* Set the maximum log size
|
140 |
*
|
144 |
public function setMaximumLog($maximumLog) {
|
145 |
$this->_maximumLog = (int) $maximumLog;
|
146 |
}
|
|
|
147 |
/**
|
148 |
* Get the maximum log size
|
149 |
*
|
152 |
public function getMaximumLog() {
|
153 |
return $this->_maximumLog;
|
154 |
}
|
|
|
155 |
/**
|
156 |
* Create a connection to the remote host
|
157 |
*
|
158 |
* Concrete adapters for thi
|