Version Description
- Fixed some plugin conflicts causing styling issues in our plugin
- Removed unnecessary error logging
- Resolved issues with PHP 8 and PHP 8.1 internal log format
- Added more blacklisted tables to restoration process
- Added pre-loader between calculation and backup load
- Added new troubleshooting method, allows to share complete logs with one click
- Added new backup and restoration engine for database (much quicker!)
- Decreased possibility of out of memory issues during URL adjustment
- Improved stability of PHP CLI restoration process
- Fixed issues of too quick restorations, decreasing false-positive errors
- Added handler for browser-side errors, decreasing chance of frozen process
- Fixed issues when log in pop-up was display during or after restoration
- Fixed issues when backed-up wp-config.php was overriding main wp-config.php
- Adjusted log display to be more smooth (no delays, quicker steps update)
- Fixed formatting issues in readme file (FAQ)
- Fixed automatic cleanup of files after migration
- Fixed issue when restoration was not continued after download (Super-Quick Migration)
- Modified error windows for backup and restore process
- Tested with WordPress 6.0.1
Download this release
Release Info
Developer | iclyde |
Plugin | Backup Migration |
Version | 1.2.2 |
Comparing to | |
See all releases |
Code changes from version 1.2.1 to 1.2.2
- admin/css/bmi-plugin.min.css +1 -1
- admin/images/alert_error-min.png +0 -0
- admin/images/alert_info-min.png +0 -0
- admin/images/alert_success-min.png +0 -0
- admin/images/alert_warning-min.png +0 -0
- admin/images/arrow-min.png +0 -0
- admin/images/backup-min.svg +0 -0
- admin/images/big_bg_clock_green-min.png +0 -0
- admin/images/big_bg_clock_white-min.png +0 -0
- admin/images/clocks-min.png +0 -0
- admin/images/close-min.png +0 -0
- admin/images/copy-icon.png +0 -0
- admin/images/download-min.png +0 -0
- admin/images/happy-smile.png +0 -0
- admin/images/info-min.png +0 -0
- admin/images/link-min.png +0 -0
- admin/images/lock-experimental.png +0 -0
- admin/images/lock-min.svg +0 -0
- admin/images/log-min.svg +0 -0
- admin/images/logo-min.png +0 -0
- admin/images/logo.png +0 -0
- admin/images/minimize-min.png +0 -0
- admin/images/next-icon-min.png +0 -0
- admin/images/premium.png +0 -0
- admin/images/red-close-min.svg +0 -0
- admin/images/restore-icon-min.png +0 -0
- admin/images/restore-min.svg +0 -0
- admin/images/search-min.png +0 -0
- admin/images/stars.gif +0 -0
- admin/images/timemachine.svg +0 -0
- admin/images/unlocked-min.svg +0 -0
- admin/images/upload-min.png +0 -0
- admin/images/warning-grey.png +0 -0
- admin/images/warning-red.png +0 -0
- admin/js/backup-migration.min.js +1 -1
- analyst/main.php +2 -2
- analyst/src/Account/Account.php +2 -2
- analyst/src/Collector.php +1 -1
- analyst/src/Mutator.php +1 -1
- backup-backup.php +2 -2
- includes/ajax.php +218 -10
- includes/backup-cli.php +2 -2
- includes/backup-heart.php +4 -2
- includes/bypasser.php +125 -0
- includes/check/system_info.php +1 -0
- includes/constants.php +3 -0
- includes/dashboard/chapter/AA-Template.php +0 -0
- includes/dashboard/chapter/other_config.php +0 -0
- includes/dashboard/chapter/store_config.php +0 -0
- includes/dashboard/chapter/troubleshooting.php +33 -2
- includes/dashboard/chapter/what_backed_up.php +0 -0
- includes/dashboard/chapter/where_config.php +0 -0
- includes/dashboard/modals/AA-Modal-Template.php +0 -0
- includes/dashboard/modals/after-logs-sent.php +76 -0
- includes/dashboard/modals/backup-error-modal.php +27 -34
- includes/dashboard/modals/backup-progress-modal.php +0 -0
- includes/dashboard/modals/backup-success-modal.php +1 -1
- includes/dashboard/modals/freeze-loading.php +26 -0
- includes/dashboard/modals/logs-sharing-ask.php +59 -0
- includes/dashboard/modals/prenotice-modal.php +0 -0
- includes/dashboard/modals/restore-error-modal.php +27 -34
- includes/dashboard/modals/restore-success-modal.php +1 -2
- includes/dashboard/modules/backup_controller.php +0 -0
- includes/dashboard/modules/backups-table-header.php +0 -0
- includes/dashboard/modules/backups-under-table.php +0 -0
- includes/dashboard/modules/super-quick-migration.php +0 -0
- includes/dashboard/modules/upload-backup.php +0 -0
- includes/dashboard/settings.php +8 -1
- includes/dashboard/templates/AA-Template.php +0 -0
- includes/dashboard/templates/backup-row-template.php +0 -0
- includes/dashboard/translations.php +15 -1
- includes/database/better-backup-v3.php +467 -0
- includes/database/even-better-restore-v3.php +17 -6
- includes/database/even-better-restore-v4.php +709 -0
- includes/database/manager.php +0 -0
- includes/database/search-replace.php +10 -4
- includes/extracter/extract.php +125 -43
- includes/initializer.php +17 -0
- includes/logger.php +0 -0
- includes/progress/zip.php +2 -1
- includes/scanner/backups.php +0 -0
- includes/scanner/files.php +0 -0
- includes/zipper/src/zip.php +23 -7
- includes/zipper/zipping.php +0 -0
- readme.txt +49 -19
- uninstall.php +0 -0
admin/css/bmi-plugin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap");#bmi{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:'Montserrat', Helvetica, Arial, sans-serif;max-width:1495px;max-width:min(1495px, 95%);margin:0 auto;padding-top:55px;min-width:1495px;min-width:calc(min(1495px, 95%))}#bmi .light{font-weight:300}#bmi .regular{font-weight:400}#bmi .medium{font-weight:500}#bmi .semibold{font-weight:600}#bmi .bold{font-weight:700}#bmi .f12{font-size:12px}#bmi .f14{font-size:14px}#bmi .f15{font-size:15px}#bmi .f16{font-size:16px}#bmi .f17{font-size:17px}#bmi .f18{font-size:18px}#bmi .f19{font-size:19px}#bmi .f20{font-size:20px}#bmi .f22{font-size:22px}#bmi .f24{font-size:24px}#bmi .f25{font-size:25px}#bmi .f26{font-size:26px}#bmi .f28{font-size:28px}#bmi .f30{font-size:30px}#bmi .f35{font-size:35px}#bmi .black{color:black}#bmi a{color:#555}#bmi .cf::after{content:'';display:block;clear:both}#bmi .left{float:left}#bmi .right{float:right}#bmi .pointer{cursor:pointer}#bmi .not-allowed{cursor:not-allowed !important}#bmi .hoverable{opacity:1;transition:.3s all;cursor:pointer}#bmi .hoverable:hover{opacity:0.8}#bmi .hoverable:active{transition:0 all !important;opacity:.6}#bmi .transition{transition:.3s all}#bmi .relative{position:relative}#bmi .vcenter{position:absolute;text-align:center;top:50%;transform:translate(0, -50%)}#bmi .flexcenter{justify-content:center;align-items:center}#bmi .shadow{box-shadow:2px 2px 5px rgba(0,0,0,0.35)}#bmi .inline{display:inline-block !important}#bmi .fullwidth{width:100%}#bmi .lh13{line-height:1.3}#bmi .lh14{line-height:1.4}#bmi .lh28{line-height:28px}#bmi .lh30{line-height:30px}#bmi .lh40{line-height:40px}#bmi .lh45{line-height:45px}#bmi .lh50{line-height:50px}#bmi .lh60{line-height:60px}#bmi .lh65{line-height:65px}#bmi .section-bmi{margin-bottom:25px}#bmi hr.section-bmi{margin-top:30px;margin-bottom:25px;border-top:2px solid #ddd}#bmi .secondary{color:#257671}#bmi .secondary-all,#bmi .secondary-all *{color:#257671}#bmi .rbb{border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi .rbt{border-top-left-radius:10px;border-top-right-radius:10px}#bmi .center{text-align:center}#bmi .center.block{margin:0 auto}#bmi .align-right{text-align:right}#bmi .align-left{text-align:left}#bmi button{border-radius:10px;background:#257671;line-height:46px;border:0;transition:.3s all;color:white;cursor:pointer}#bmi button:hover{background:#206662}#bmi button:active{transition:0 all;background:#1b5753;opacity:.4}#bmi button.centred{margin:0 auto;margin-bottom:20px;margin-top:25px}#bmi button.with-icon .for-img{display:inline-block;position:relative}#bmi button.with-icon img{position:absolute;left:0;top:8px;height:28px;width:28px}#bmi button.with-icon span{padding-left:35px}#bmi .mm{padding-left:45px;padding-right:45px}#bmi .ppr{padding-right:25px}#bmi .tml{margin-top:20px}#bmi .mo{padding:45px}#bmi .mt{padding-top:45px}#bmi .mb{padding-bottom:45px}#bmi .mtl{padding-top:25px}#bmi .mbl{padding-bottom:25px}#bmi .mtll{padding-top:15px}#bmi .mtlll{padding-top:7px}#bmi .mbll{padding-bottom:15px}#bmi .mblll{padding-bottom:7px}#bmi .nm{margin:0 !important}#bmi .mms{padding-left:20px;padding-right:20px}#bmi .mmm{padding-left:35px;padding-right:35px}#bmi .mm60{padding-left:60px;padding-right:60px}#bmi .mm30{padding-left:30px;padding-right:30px}#bmi .mm92{padding-left:76px !important;padding-right:76px !important}#bmi .text-grey{color:#373737}#bmi .text-muted{opacity:0.47}#bmi .red-text{color:red}#bmi .flex-here{display:flex;flex-direction:row}#bmi .flex-here div{flex:1}#bmi .nlink{text-decoration:none;color:#257671}#bmi .nplr{padding-left:0 !important;padding-right:0 !important}#bmi .flex{display:flex;flex-wrap:wrap}#bmi .rr{padding-left:32px}#bmi .np{padding:0}#bmi .npb{padding-bottom:0 !important}#bmi .npt{padding-top:0 !important}#bmi .pbl{padding-bottom:10px !important}#bmi .bg-second{background:#f8f8f8}#bmi .width50,#bmi .half{width:50% !important}#bmi .chhl{width:calc(50% - 80px) !important;margin:0 40px}#bmi .under{text-decoration:underline}#bmi .tilo{font-size:18px}#bmi .red-error-bg{background:#f9efef}#bmi .nodec{text-decoration:none !important}#bmi .mt30{margin-top:30px}#bmi .suc-buttns .a1,#bmi .suc-buttns .a2{width:calc(50% - 40px);margin:10px}#bmi .suc-buttns .a1 a,#bmi .suc-buttns .a2 a{padding:10px 30px}#bmi .suc-buttns .a1{margin-left:30px}#bmi .suc-buttns .a2{margin-right:30px}#bmi .nowrap{flex-wrap:nowrap !important}#bmi .fbcont{font-size:14px;text-align:left;padding-left:15px}#bmi .fbcont .fbhead{display:block;font-size:19px;margin-bottom:5px}#bmi .nmt{margin-top:0 !important}#bmi .fcentr{display:flex;justify-content:center}#bmi .autowidth{width:auto !important}#bmi .flex1{flex:1}#bmi .flex2{flex:2}#bmi .left-align{text-align:left}#bmi .right-align{text-align:right}#bmi .info-cursor{cursor:help}#bmi .wait-cursor{cursor:wait}#bmi .mrr{margin-right:20px !important}#bmi .orr{margin-right:10px}#bmi .oll{margin-left:10px}#bmi .ooo-to-pad .orr{padding-right:10px !important}#bmi .ooo-to-pad .oll{padding-left:10px !important}#bmi .mw850{max-width:850px}#bmi .bol{margin-left:100px}#bmi li.hasArrowRight{position:relative;padding-left:40px}#bmi li.hasArrowRight::before{content:'';position:absolute;border:solid #257671;border-width:0 3px 3px 0;display:inline-block;padding:3px;transform:rotate(-45deg);-webkit-transform:rotate(-45deg);left:20px;top:10px}#bmi .cron-a{line-height:77px;padding:0px 35px}#bmi .cron-b{border-top:2px solid #e2eceb;border-bottom:2px solid #e2eceb;background-color:#e6eeee;padding:0px 35px;overflow-x:auto;max-width:100%;max-height:78px;overflow-y:hidden}#bmi .cron-b table{height:72px}#bmi .cron-c{padding:0px 35px}#bmi .cron-c table{height:70px}#bmi .mr50{margin-right:50px}#bmi .mr20{margin-right:20px}#bmi .mw250{min-width:250px}#bmi .center-table{width:100%}#bmi .center-table td{text-align:center;padding-left:10px;padding-right:10px}#bmi .untab{box-shadow:none !important;outline:0 !important}#bmi .bc-locked-btn.forever{cursor:not-allowed !important}#bmi .hide_so_much{display:none !important}#bmi .modal.before-open{transition:0s all !important;opacity:0;display:block}#bmi .modal.before-open .modal-wrapper{left:-60px;transition:0s all !important;top:-30px;opacity:0}#bmi .modal.open{transition:0.4s all !important;opacity:1;display:block}#bmi .modal.open .modal-wrapper{top:60px;left:0px;transition:0.4s all !important;opacity:1}#bmi .modal.before-close{transition:0s all !important;opacity:1;display:block}#bmi .modal.before-close .modal-wrapper{transition:0s all !important;top:60px;left:0px;opacity:1}#bmi .modal.closed{transition:0.4s all !important;left:0px;opacity:0}#bmi .modal.closed .modal-wrapper{transition:0.4s all !important;top:120px;left:60px;opacity:0}#bmi .modal{top:0;left:0;display:none;position:fixed;width:100%;height:100vh;background:rgba(37,118,113,0.4);overflow:auto;z-index:999999}#bmi .modal .modal-close{position:absolute;top:25px;right:25px;font-size:35px !important;color:#555 !important;font-weight:500 !important;z-index:9999999 !important;text-decoration:none !important;line-height:1.1;transition:.3s all;opacity:1}#bmi .modal .modal-close.light{color:white !important}#bmi .modal .modal-close:hover{opacity:.7}#bmi .modal .modal-wrapper{top:60px;max-width:60vw;box-shadow:0px 10px 64px rgba(0,0,0,0.24);margin:0 auto;position:relative;background:#FBFBFF;border-radius:10px;padding:40px 40px;margin-bottom:35px;min-height:200px}#bmi .modal .modal-wrapper.no-hpad{padding-left:0;padding-right:0}#bmi .modal .modal-wrapper.no-vpad{padding-top:0;padding-bottom:0}#bmi .modal-closer{cursor:pointer}#bmi .modal-closer:hover{text-decoration:underline}#bmi .live-log{transition:.3s all;overflow:hidden;max-height:306px}#bmi .live-log.expanded-logs{max-height:0px}#bmi .red-warning{position:relative;display:inline-block;padding-left:60px;padding-right:60px}#bmi .red-warning::after,#bmi .red-warning::before{content:'';position:absolute;top:12px;height:41px;width:46px}#bmi .red-warning::after{left:0;background:url("../images/warning-red.png")}#bmi .red-warning::before{right:0;background:url("../images/warning-red.png")}#bmi .bmi-ask-for-review,#bmi .bmi-ask-for-review{background:#f5f5f5;margin-top:35px;margin-bottom:35px;height:170px}#bmi .bmi-positive-wrapper{position:relative;height:200px;width:200px;background:#206662;border-radius:20px;box-shadow:0px 0px 20px 0px rgba(0,0,0,0.4);margin-top:-17px}#bmi .bmi-positive-wrapper .bmi-positive-thumb{height:40%;width:40%;position:absolute;left:51%;top:47%;transform:translate(-50%, -50%)}#bmi .bmi-thumb-info{width:calc(100% - 200px)}#bmi .bmi-positive-wrapper::before{content:'';height:65%;width:65%;position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);background:white;border-radius:50%}#bmi .premium-wrapper{cursor:not-allowed}#bmi .premium-wrapper .premium{pointer-events:none}#bmi .premium-wrapper .premium-img{line-height:30px;padding-right:30px;position:relative}#bmi .premium-wrapper .premium-img::after{content:'';position:absolute;top:0;bottom:0;right:0;background:url("../images/premium.svg");margin-top:3px;height:24px;width:24px;background-repeat:no-repeat;background-size:cover}#bmi .premium-wrapper .premium-img.premium-nt::after{margin-top:0px !important;right:20px;top:1px}#bmi .premium-wrapper .premium-img.premium-ntt::after{margin-top:0px !important;top:-1px}#bmi .premium-function .premium-img{line-height:30px;padding-right:30px;position:relative}#bmi .premium-function .premium-img::after{content:'';position:absolute;top:0;bottom:0;right:0;background:url("../images/premium.svg");margin-top:3px;height:24px;width:24px;background-repeat:no-repeat;background-size:cover}#bmi .premium-function .premium-img.premium-nt::after{margin-top:0px !important;right:20px;top:1px}#bmi .premium-function .premium-img.premium-ntt::after{margin-top:0px !important;top:-1px}#bmi .bmi-notification-box{position:fixed;top:15px;right:15px;min-width:100px;max-width:40vw;z-index:1000000}#bmi .bmi-notification.is-info,#bmi .bmi-title.is-info{background-color:#0c96b7}#bmi .bmi-notification.is-danger,#bmi .bmi-title.is-danger{background-color:#e4706f}#bmi .bmi-notification.is-success,#bmi .bmi-title.is-success{background-color:#6db799}#bmi .bmi-alert-icon{height:100%;width:25px}#bmi .bmi-alert-icon .bmi-icon-bg{width:25px;height:25px}#bmi .bmi-alert-msg-title{padding-left:40px !important}#bmi .bmi-notification .bmi-icon-bg{background-position:center;background-repeat:no-repeat;position:absolute;height:calc(100% - 36px)}#bmi .bmi-notification.is-success .bmi-icon-bg{background-image:url("../images/alert_success-min.png")}#bmi .bmi-notification.is-warning .bmi-icon-bg{background-image:url("../images/alert_warning-min.png")}#bmi .bmi-notification.is-info .bmi-icon-bg{background-image:url("../images/alert_info-min.png")}#bmi .bmi-notification.is-danger .bmi-icon-bg{background-image:url("../images/alert_error-min.png")}#bmi .bmi-notification.is-warning,#bmi .bmi-title.is-warning{background-color:#ecb135}#bmi .bmi-title{margin-bottom:3px;font-weight:500;font-size:15px !important}#bmi .bmi-notification{border-radius:3px;padding:18px 36px 18px 20px !important;position:relative;margin-bottom:15px;padding-left:3px;font-family:'Montserrat', sans-serif !important;font-size:15px !important;font-weight:300;color:white}#bmi .bmi-times-button{top:2px;right:1px;position:absolute;background:none !important;border:none;font-size:24px;cursor:pointer;font-weight:500;color:white;opacity:0.6;transition:opacity 0.2s;padding:2px 9px !important}#bmi .bmi-times-button:hover{cursor:pointer;opacity:1}#bmi .bmi-noti-hide{display:none}#bmi .translations{display:none;visibility:hidden;height:0;width:0}#bmi .heading{padding-bottom:35px}#bmi .backup-creator .cron-backups-wrap{width:calc(100% - 225px);height:225px}#bmi .backup-creator .cron-backups{background-color:white;width:calc(100% - 15px);margin-left:15px;height:100%;border-radius:10px}#bmi .backup-creator .cron-backups .vcenter{width:100%}#bmi .backup-creator .cron-backups .turned-off{width:100%;height:100%;background:url("../images/big_bg_clock_white-min.png") no-repeat;background-size:cover;color:#257671}#bmi .backup-creator .cron-backups .turned-off:hover{background:url("../images/big_bg_clock_green-min.png") no-repeat;background-size:cover;color:white}#bmi .backup-creator .cron-backups .turned-off,#bmi .backup-creator .cron-backups .turned-on{width:100%;border-radius:10px;position:absolute;top:0;left:0;right:0;bottom:0;opacity:1;transition:.3s all}#bmi .backup-creator .cron-backups.disabled .cron-bc{opacity:.5;cursor:not-allowed}#bmi .backup-creator .cron-backups.disabled .cron-bc .cron-b{pointer-events:none}#bmi .backup-creator .cron-backups.disabled .cron-bc .cron-c{pointer-events:none}#bmi .trouble-section .shadow{border-radius:7px;background:#fff;color:black;cursor:pointer;transition:.3s all;min-height:185px;padding:0 20px}#bmi .trouble-section .shadow svg{color:#257671}#bmi .trouble-section .shadow:hover,#bmi .trouble-section .shadow.active{color:white;box-shadow:2px 2px 7px rgba(0,0,0,0.4);background:#257671}#bmi .trouble-section .shadow:hover svg,#bmi .trouble-section .shadow.active svg{color:white}#bmi .close-chapters:hover{text-decoration:underline !important}#bmi .hide-show-tr{display:none}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes spinreverse{100%{-moz-transform:rotate(-360deg)}}@-webkit-keyframes spinreverse{100%{-webkit-transform:rotate(-360deg)}}@keyframes spinreverse{100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}#bmi .spinning{-webkit-animation:spin 3s linear infinite;-moz-animation:spin 3s linear infinite;animation:spin 3s linear infinite}#bmi .spinning-reverse{-webkit-animation:spinreverse 3s linear infinite;-moz-animation:spinreverse 3s linear infinite;animation:spinreverse 3s linear infinite}#bmi #bmi-ongoing-backup{position:fixed;top:32px;right:50px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;height:78px;width:310px;background:#257671;color:white}#bmi #bmi-ongoing-backup .centered{position:absolute;left:85px;top:18px;line-height:22px}#bmi #bmi-ongoing-backup .nuts .nut{position:absolute}#bmi #bmi-ongoing-backup .nuts .nut-1{top:10px;left:30px}#bmi #bmi-ongoing-backup .nuts .nut-2{top:37px;left:15px}#bmi #bmi-ongoing-backup .nuts .nut-3{top:47px;left:37px}#bmi .ml50{margin-left:50px}#bmi .error-noticer{padding:25px 35px;border:1px solid red;border-radius:10px;background:#fbeded;color:red;position:relative;margin-bottom:25px}#bmi .error-noticer .error-header{font-weight:600;font-size:18px}#bmi .error-noticer .error-body{display:none;font-size:16px;padding-left:20px;padding-right:20px;padding-top:20px;line-height:25px}#bmi .error-noticer .error-body b{padding-top:10px;display:block}#bmi .lrn-mr-btn{line-height:70px}#bmi .learn_more_about_cron{background:white;padding:35px 55px 25px;border-radius:10px;font-size:17px;line-height:25px;min-width:calc(100% - 110px);margin-bottom:25px}#bmi .bmi-backup-btn{height:185px;width:185px;outline:none;display:flex;cursor:pointer;font-size:20px;background-color:#257671;position:relative;transition:all 0.7s ease;-webkit-transition:all 0.7s ease;-moz-transition:all 0.7s ease;-o-transition:all 0.7s ease;-ms-transition:all 0.7s ease;border-radius:10px;padding:20px}#bmi .bmi-backup-btn .vcenter{width:calc(100% - 40px)}#bmi .bmi-backup-btn .vcenter .text{margin-top:6px;line-height:1.2}#bmi .bmi-backup-btn.one{border-color:#fff;overflow:hidden;color:#fff}#bmi .bmi-backup-btn.one .insider{opacity:0.6;background-color:rgba(255,255,255,0.14);width:340px;height:162px;position:absolute;right:1px;bottom:86px;transform:rotateZ(-45deg);-webkit-transform:rotateZ(-45deg);-moz-transform:rotateZ(-45deg);-o-transform:rotateZ(-45deg);-ms-transform:rotateZ(-45deg);transition:all 0.3s ease;-webkit-transition:all 0.3s ease;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;-ms-transition:all 0.3s ease}#bmi .bmi-backup-btn.one .insider-2{opacity:0.6;background:linear-gradient(180deg, rgba(255,255,255,0.73) 0%, rgba(255,255,255,0.14) 55%);width:390px;height:318px;position:absolute;right:-308px;bottom:-267px;transform:rotateZ(-45deg);-webkit-transform:rotateZ(-45deg);-moz-transform:rotateZ(-45deg);-o-transform:rotateZ(-45deg);-ms-transform:rotateZ(-45deg);transition:all 0.3s ease;-webkit-transition:all 0.3s ease;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;-ms-transition:all 0.3s ease}#bmi .bmi-backup-btn.one:hover .insider{transition:all 0.5s ease;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;-ms-transition:all 0.5s ease;right:108px;bottom:200px}#bmi .bmi-backup-btn.one:hover .insider-2{transition:all 0.6s ease;-webkit-transition:all 0.6s ease;-moz-transition:all 0.6s ease;-o-transition:all 0.6s ease;-ms-transition:all 0.6s ease;transition-delay:0.5s;right:19px;bottom:75px}#bmi .tab-wrapper{min-width:100%}#bmi .tabs{border:0 !important;background-color:white;margin-bottom:25px;border-top-left-radius:10px;border-top-right-radius:10px}#bmi .tabs .tab.active{cursor:not-allowed}#bmi .tabs .tab:first-child{border-top-left-radius:10px}#bmi .tabs .tab:last-child{border-top-right-radius:10px}#bmi .tabs .tab{padding-top:18px;width:calc(50% - 2px);border-left:1px solid rgba(176,69,46,0.12);text-align:center;padding-bottom:18px;color:#8e8e8e}#bmi .tabs .tab.active{position:relative;color:#257671}#bmi .tabs .tab.active:not(.active):hover::before{border-bottom:7px solid white !important}#bmi .tabs .tab.active::before{content:'';height:0px;width:0px;transition:.3s all;background:transparent;border-top:5px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #257671;position:absolute;bottom:0;left:0;right:0;margin:0 auto;transform:translateX(-50%)}#bmi .tabs .tab.active::after{content:'';position:absolute;bottom:0;left:0;right:0;width:100%;height:6px;border-bottom:2px solid #257671}#bmi .tabs .tab:first-child.active::after{border-bottom-left-radius:14px}#bmi .tabs .tab:last-child.active::after{border-bottom-right-radius:14px}#bmi .tabs .tab:first-child{width:calc(50% - 1px);border-left:0 !important}#bmi .tabs .tab:not(.active):hover{color:white;background:#257671}#bmi .collapser.active .header:not(.ignorehov){background:#257671;color:white}#bmi .collapser.active .header{border-bottom-left-radius:0px;border-bottom-right-radius:0px}#bmi .collapser.active .header:not(.ignorehov)::after{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.95 !important}#bmi .collapser.active .header::after{transform:rotate(180deg)}#bmi .collapser{border-radius:10px}#bmi .collapser .header{padding:21px 45px;background:white;border-radius:10px;position:relative}#bmi .collapser .header:not(.ignorehov):hover{background:#257671;color:white}#bmi .collapser .header::after{content:'';position:absolute;background:url("../images/arrow-min.png");background-size:cover;background-repeat:no-repeat;margin-top:4px;right:45px;width:19px;height:11px;transition:.3s all}#bmi .collapser .header:not(.ignorehov):hover::after{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.95 !important}#bmi .collapser .content{display:none;background:white;min-width:100%;border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi #manage-restore-wrapper .restore-wrapper{background-color:white;padding-top:40px;padding-bottom:40px;min-width:100%;margin-top:10px}#bmi #manage-restore-wrapper .m{margin-left:30px;margin-right:30px}#bmi #manage-restore-wrapper .header{background:#beeddf;background:linear-gradient(60deg, #beeddf 10%, #dffaf2 100%);height:18px}#bmi #manage-restore-wrapper .header::before{content:'';position:absolute;background:#beeddf;background:linear-gradient(60deg, #dffaf2 10%, #beeddf 100%);left:0;top:0;border-radius:10px;width:100%;height:100%;opacity:0 !important;transition:.3s all}#bmi #manage-restore-wrapper .bold{position:absolute}#bmi #manage-restore-wrapper .collapser.active .header::before{border-bottom-left-radius:0px;border-bottom-right-radius:0px;opacity:1 !important}#bmi #manage-restore-wrapper .header:hover::before{opacity:1 !important}#bmi #manage-restore-wrapper .content{min-width:calc(100% - 90px);position:relative;padding:10px 45px}#bmi #manage-restore-wrapper .content .bg-quick-migration{top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi #manage-restore-wrapper .content .content-above{position:relative}#bmi #manage-restore-wrapper .content .quick-migration{border-radius:10px}#bmi #manage-restore-wrapper .content .text-heading{padding:15px 0}#bmi #manage-restore-wrapper .content input{box-sizing:border-box;line-height:30px;border:1px solid #c6c9cf;width:100%;padding:11px;font-size:18px;border-radius:10px}#bmi #manage-restore-wrapper .content button{width:358px}#bmi #manage-restore-wrapper .heading-sq .bold{position:relative;padding-right:35px}#bmi #manage-restore-wrapper .heading-sq .bold::after{content:'';background:url("../images/next-icon-min.png");background-size:cover;height:24px;width:24px;position:absolute;top:0;right:0}#bmi #manage-restore-wrapper .valign-restore .a1{padding-top:6px;padding-right:6px}#bmi #manage-restore-wrapper .valign-restore .a2{padding-top:4px;padding-right:6px}#bmi #manage-restore-wrapper .table-wrapper{max-width:100%;overflow-y:auto}#bmi #manage-restore-wrapper .table-wrapper table{width:100%;min-width:400px;border-collapse:collapse;margin-bottom:10px}#bmi #manage-restore-wrapper .table-wrapper table .restore-btn{color:white;font-size:13px;font-weight:600;background:#0ec094;border-radius:5px;width:95px;height:25px;border:1px solid #0ec094;display:flex;justify-content:space-evenly;align-items:center}#bmi #manage-restore-wrapper .table-wrapper table th{font-size:19px;text-align:left;color:#111}#bmi #manage-restore-wrapper .table-wrapper table th.inactive{color:#c3c3c3}#bmi #manage-restore-wrapper .table-wrapper table tr{border-bottom:2px solid #e1dada}#bmi #manage-restore-wrapper .table-wrapper table tr th,#bmi #manage-restore-wrapper .table-wrapper table tr td{padding-top:15px;padding-bottom:14px}#bmi #manage-restore-wrapper .table-wrapper table tr td{font-size:18px;color:#333}#bmi .log-wrapper pre{max-height:200px;overflow:auto;line-height:1.2;font-size:13px;white-space:nowrap;text-align:left;background:#fbfbfb;border:1px solid #cececc;border-radius:10px;padding:30px}#bmi .log-wrapper pre .red{color:red}#bmi .log-wrapper pre .blue{color:blue}#bmi .log-wrapper pre .green{color:green}#bmi .log-wrapper pre .orange{color:#f59e00}#bmi .progress-bar-wrapper{line-height:1;margin-top:70px;margin-bottom:30px}#bmi .progress-bar-wrapper .progress-bar{position:relative;height:10px;width:100%;border-radius:10px;background:#f1f1f1}#bmi .progress-bar-wrapper .progress-active-bar{position:absolute;background:#257671;border-radius:10px;height:14px;width:40%;top:-2px;left:0;transition:0.1s all cubic-bezier(0, 0, 0.6, 1);box-shadow:0px 0px 10px rgba(0,0,0,0.4)}#bmi .progress-bar-wrapper .progress-active-bar::before{content:'';position:absolute;border-radius:10px;height:14px;width:20%;top:0;right:0;z-index:0}#bmi .progress-bar-wrapper .progress-percentage{position:absolute;background:#257671;width:32px;height:32px;border-radius:50%;transform:translate(calc(-50% - 3px), 0);bottom:26px;text-align:center;color:white;line-height:34px;font-size:11px;font-weight:800;transition:0.1s all cubic-bezier(0, 0, 0.6, 1)}#bmi .progress-bar-wrapper .progress-percentage::after{content:'';left:50%;position:absolute;background:#257671;width:6px;height:6px;border-radius:50%;transform:translate(-50%, 0);bottom:-10px}#bmi .deleteAllSelected{height:45px;width:265px;border-radius:10px;font-size:15px !important;font-weight:bold;padding-top:0 !important;padding-bottom:0 !important}#bmi .lds-spinner{color:#257671;display:inline-block;position:relative;width:20px;height:14px}#bmi .lds-spinner div{transform-origin:10px 10px;animation:lds-spinner 1.2s linear infinite}#bmi .lds-spinner div:after{content:" ";display:block;position:absolute;top:2px;left:9px;width:2px;height:4px;border-radius:20%;background:#257671}#bmi .lds-spinner div:nth-child(1){transform:rotate(0deg);animation-delay:-1.1s}#bmi .lds-spinner div:nth-child(2){transform:rotate(30deg);animation-delay:-1s}#bmi .lds-spinner div:nth-child(3){transform:rotate(60deg);animation-delay:-0.9s}#bmi .lds-spinner div:nth-child(4){transform:rotate(90deg);animation-delay:-0.8s}#bmi .lds-spinner div:nth-child(5){transform:rotate(120deg);animation-delay:-0.7s}#bmi .lds-spinner div:nth-child(6){transform:rotate(150deg);animation-delay:-0.6s}#bmi .lds-spinner div:nth-child(7){transform:rotate(180deg);animation-delay:-0.5s}#bmi .lds-spinner div:nth-child(8){transform:rotate(210deg);animation-delay:-0.4s}#bmi .lds-spinner div:nth-child(9){transform:rotate(240deg);animation-delay:-0.3s}#bmi .lds-spinner div:nth-child(10){transform:rotate(270deg);animation-delay:-0.2s}#bmi .lds-spinner div:nth-child(11){transform:rotate(300deg);animation-delay:-0.1s}#bmi .lds-spinner div:nth-child(12){transform:rotate(330deg);animation-delay:0s}@keyframes lds-spinner{0%{opacity:1}100%{opacity:0}}#bmi .prenotices{margin-top:45px;margin-bottom:45px}#bmi .prenotices .prenotice:first-child{border-top:1px solid #eeebeb}#bmi .prenotices .prenotice{position:relative;background:#fcfcfc;border-bottom:1px solid #eeebeb}#bmi .prenotices .prenotice .text{padding-top:25px;padding-bottom:25px;padding-left:155px;padding-right:60px;font-size:18px;line-height:1.2}#bmi .prenotices .prenotice.top{border-top-right-radius:10px;border-top-left-radius:10px}#bmi .prenotices .prenotice.top .text{padding-right:120px;padding-left:215px;font-size:20px;line-height:25px}#bmi .prenotices .prenotice::before{content:'';position:absolute;background:url("../images/warning-grey.png");width:46px;height:41px;top:50%;transform:translate(0, -50%);left:60px}#bmi .prenotices .prenotice.top::before{left:120px}#bmi .prenotices .prenotice.red{background:#feedee !important}#bmi .prenotices .prenotice.red::before{background:url("../images/warning-red.png")}#bmi .btn{display:block;background:#257671;box-shadow:0 10px 9px rgba(0,0,0,0.24);color:white;padding-top:18px;padding-bottom:18px;border-radius:10px;font-size:18px;line-height:1.2;transition:0.3s all;cursor:pointer;text-decoration:none}#bmi .btn .text{display:inline-block}#bmi .btn.btn-pad{padding-left:50px;padding-right:50px}#bmi .btn.btn-img-low-pad .text{padding-left:40px !important}#bmi .btn:hover{background:#206662;box-shadow:0 10px 15px rgba(0,0,0,0.34)}#bmi .btn:active{transition:0 all;background:#1b5753;box-shadow:0 10px 5px rgba(0,0,0,0.14)}#bmi .btn.red{background:#da2b2b}#bmi .btn.red:hover{background:#cd2424}#bmi .btn.red:active{background:#bb2121}#bmi .btn.lime{background:#4dbb84}#bmi .btn.lime:hover{background:#43b07a}#bmi .btn.lime:active{background:#3ea270}#bmi .btn.gray,#bmi .btn.grey{background:#b6b6b6}#bmi .btn.gray:hover,#bmi .btn.grey:hover{background:#acacac}#bmi .btn.gray:active,#bmi .btn.grey:active{background:#a2a2a2}#bmi .btn.btn-with-img .text{padding-left:60px;position:relative}#bmi .btn.btn-with-img img{position:absolute;top:50%;left:0;transform:translate(0, -50%)}#bmi input[type="checkbox"]{border-radius:4px;width:22px !important;height:22px !important;position:relative;transition:0.3s all}#bmi input[type="checkbox"],#bmi input[type="checkbox"]:active,#bmi input[type="checkbox"]:focus{outline:0 !important;box-shadow:none !important;border-color:#257671 !important}#bmi input[type="checkbox"]::before{content:'' !important;border-color:#257671 !important;border-radius:3px;transition:0.3s all;margin:0 !important;height:20px !important;width:20px !important;float:left;display:inline-block;vertical-align:middle;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#bmi input[type="checkbox"]:checked{background:#257671 !important}#bmi input[type="checkbox"]:checked::after{content:'';width:10px;height:5px;border-left:3px solid white;border-bottom:3px solid white;top:4px;left:4px;transform:rotate(-48deg);position:absolute}#bmi .success-copy-input input{width:calc(100% - 170px - 15px);margin-right:15px;line-height:44px;border-radius:10px;border:1px solid #d1d4d9;background:#fff}#bmi .success-copy-input a{line-height:10px;padding-left:40px !important;padding-right:40px !important;box-shadow:none !important;text-decoration:none}#bmi .grey-btn{background:#aaa;width:85%;line-height:13px}#bmi .save-btn{text-align:center;font-weight:700;width:450px;margin:0 auto;font-size:27px}#bmi .max300{max-width:300px;margin:0 auto}#bmi .max280{max-width:280px;margin:0 auto}#bmi label:hover input[type="checkbox"]{background:#dfdfdf}#bmi .btn.othersec{margin-top:6px;padding-top:13px;padding-bottom:13px}#bmi .backup-minimize.disabled{opacity:.2;box-shadow:none;pointer-events:none !important;background:#7d7d7d !important}#bmi .file-checkboxes-wrapper{padding-left:32px}#bmi .file-checkboxes-wrapper .file-checkboxes label{display:block;width:50%;margin-bottom:10px}#bmi .file-checkboxes-wrapper div{margin-top:5px;margin-bottom:5px}#bmi .note{width:500px;margin:50px auto;font-size:1.1em;color:#333;text-align:justify}#bmi #drop-area{border:2px dashed #ccc;border-radius:20px;width:100%;height:340px;margin-top:10px;background:#f9f9f9}#bmi #drop-area:hover{background:linear-gradient(90deg, #d1efe6, #e5f6f1)}#bmi #drop-area.highlight{border-color:#257671}#bmi .my-form{margin-bottom:10px;margin-top:35px}#bmi #gallery{margin-top:10px}#bmi .img_upload{width:100px;height:75px;background-image:url("../images/upload.svg")}#bmi #gallery img{width:150px;margin-bottom:10px;margin-right:10px;vertical-align:middle}#bmi .button{display:inline-block;padding:10px;background:#ccc;cursor:pointer;border-radius:5px;border:1px solid #ccc}#bmi .button:hover{background:#ddd}#bmi #upid_input{position:absolute;left:2508px;top:3273px;opacity:0;z-index:9999;width:1px;height:1px;display:none}#bmi .ortext{font-size:18px;line-height:54px}#bmi .upload_button{font-size:18px;font-weight:800;padding:0;height:50px;line-height:50px;padding:0 20px}#bmi .upload-progress{border:2px dashed #ccc;padding-bottom:45px;border-radius:20px;margin-top:10px;margin-bottom:10px;overflow:hidden;position:relative}#bmi .upload-progress .upload-progress-bar{width:90%;margin:0 auto;background:#f1f1f1;height:10px;margin-top:65px;position:relative;border-radius:10px;margin-bottom:10px}#bmi .upload-progress .upload-progress-bar span{display:block;position:absolute;top:-2px;left:0;width:50%;background:#257671;height:14px;z-index:10;border-radius:10px;transition:0.1s all cubic-bezier(0, 0, 0.6, 1)}#bmi .upload-progress .upload-progress-bar .upload-percentage{position:absolute;bottom:calc(100% + 14px);right:-13px;color:white;background:#257671;border-radius:50%;width:30px;height:30px;font-size:12px;text-align:center;line-height:30px}#bmi .upload-progress .upload-progress-bar .upload-percentage::after{position:absolute;content:'';top:calc(100% + 4px);left:0;right:0;margin:0 auto;width:6px;height:6px;background:#257671;border-radius:50%}#bmi .upload-title{font-size:23px;font-weight:800}#bmi .bmi-txtar{padding:15px;border-radius:10px;font-size:18px;resize:none}#bmi .inline-radio{padding-right:20px}#bmi .exclude-row input{border-radius:5px;width:130px;height:44px;border:1px solid #d1d4d9;font-size:18px;margin:0 10px;text-align:center}#bmi .mbfieldlimit{font-size:20px;text-align:center;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9;border-radius:5px;width:85px;height:45px;justify-content:center;align-items:center}#bmi .overlay-premium{display:none}#bmi .clocks_container{display:none}#bmi .overlayed:hover{position:relative}#bmi .overlayed:hover .overlay-premium{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;background-image:url("../images/big_bg_clock_white-min.png");background-repeat:no-repeat;background-size:cover;align-items:center;justify-content:center;z-index:100000;border-top:1px solid #cdcdcd;border-bottom:1px solid #cdcdcd}#bmi .overlayed:hover .clocks_container{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.05);align-items:center;flex-direction:column;justify-content:center;height:100%;position:relative;font-size:18px}#bmi .tab2-item{position:relative;display:flex;justify-content:space-between;align-items:center;width:100%;background:#f6f6f6;border-radius:10px;height:70px;padding:0 30px;margin-top:15px;box-sizing:border-box}#bmi .tab2-item .container-40{margin:0 40px}#bmi .tab2-item .pb30{padding-bottom:30px}#bmi .tab2-item .bg_grey{background:#f8f8f8}#bmi .tab2-item .not-ready{position:absolute;left:0;width:100%;height:100%;background-color:#e5e5e5;opacity:0.7;border-radius:10px}#bmi .tab2-item .bg_clock_day2{display:none;background-image:url("../images/big_bg_clock_green-min.png");width:100%;height:100%;position:absolute;left:0;background-size:cover;background-repeat:no-repeat;z-index:3;color:white;border-radius:10px}#bmi .tab2-item .clock_img{flex-basis:5%}#bmi .tab2-item .d-flex{display:flex;flex:1}#bmi .tab2-item .ia-center{align-items:center}#bmi .tab2-item .switch{position:relative;width:70px;height:30px;overflow:hidden;border:none;padding:0;background:none}#bmi .tab2-item .switch.b2{border-radius:15px;border:none;background:none;padding:0}#bmi .tab2-item .switch.b2 .checkbox{position:relative;width:100% !important;height:100% !important;padding:0;margin:0;opacity:0;cursor:pointer;z-index:3;border:none}#bmi .tab2-item .knobs{z-index:2;position:absolute;top:0;right:0;bottom:0;left:0}#bmi .tab2-item .switch .knobs:before{content:'Off';left:7px}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after{color:white;z-index:1}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .switch .knobs:after{content:'On';right:17px}#bmi .tab2-item .switch .knobs:after{padding:0 12px}#bmi .tab2-item .switch .checkbox:checked+.knobs:before,#bmi .tab2-item .switch .checkbox:not(:checked)+.knobs:after{opacity:0}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after{color:white;z-index:1}#bmi .tab2-item .switch .knobs:after{padding:0 12px}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .layer,#bmi .tab2-item .layer_str{width:100%;background-color:#d5d5d5;transition:0.3s ease all;z-index:1}#bmi .tab2-item .button-cover,#bmi .tab2-item .knobs,#bmi .tab2-item .layer,#bmi .tab2-item .layer_str{position:absolute;top:0;right:0;bottom:0;left:0}#bmi .tab2-item .switch.b2 .checkbox{position:relative;width:100%;height:100%;padding:0;margin:0;opacity:0;cursor:pointer;z-index:3;border:none}#bmi .tab2-item .title_whereStored{font-size:20px;font-weight:bold}#bmi .tab2-item .ml25{margin-left:25px}#bmi .tab2-item .switch .knobs span{left:48px;background-color:white;z-index:2}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .switch .knobs span{padding:0;border-radius:50%;top:6px}#bmi .tab2-item .not_ready{position:absolute;left:0;width:100%;height:100%;background-color:#e5e5e5;opacity:0.7;border-radius:10px}#bmi .tab2-item .link-white:hover{text-decoration:underline;color:white}#bmi .tab2-item .link-white{color:white;text-decoration:none}#bmi .tab2-item .crown2{width:20px;height:20px;margin-left:7px;z-index:1}#bmi .tab2-item .d-flex .w100 .input-locally_web_server{width:100%;height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black}#bmi .tab2-item .w270{min-width:270px}#bmi .tab2-item:hover .bg_clock_day2{display:flex;justify-content:center;align-items:center}#bmi .tab2-item.activeList{color:white;background:#257671 !important;border-bottom-left-radius:0;border-bottom-right-radius:0}#bmi .tab2-item.activeList .switch .checkbox:checked ~ .layer_str{background-color:#154e4b}#bmi .tab2-item.activeList .bg_grey{background:#f8f8f8}#bmi .tab2-item.activeList .switch .checkbox:checked+.knobs:before,#bmi .tab2-item.activeList .switch .checkbox:not(:checked)+.knobs:after{opacity:0}#bmi .tab2-item.activeList .switch .checkbox:checked+.knobs span{left:7px;background-color:white}#bmi .container-radio input{position:absolute;opacity:0;cursor:pointer}#bmi .checkmark-radio{position:absolute;top:0;left:0;height:25px;width:25px;background-color:#fff;border:1px solid;border-radius:50%}#bmi .container-radio:hover input ~ .checkmark-radio{background-color:#cecece}#bmi .container-radio input:checked ~ .checkmark-radio{background-color:white;border:1px solid #257671}#bmi .checkmark-radio:after{content:"";position:absolute;display:none}#bmi .container-radio input:checked ~ .checkmark-radio:after{display:block}#bmi .container-radio .checkmark-radio:after{top:5px;left:5px;width:10px;height:10px;border-radius:50%;background:#257671}#bmi .container-checkbox .checkmark-checkbox:after{left:9px;top:5px;width:5px;height:10px;border:solid white;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#bmi .input-mar{margin:30px 0}#bmi .container-40{margin:0 40px}#bmi .container-36{margin:0 36px 0 40px}#bmi .container-55{margin:0 55px}#bmi .d-flex{display:flex}#bmi .w270{min-width:270px}#bmi .w100{width:100%}#bmi .pos-r{position:relative}#bmi .mt20{margin-top:20px}#bmi .pb30{padding-bottom:30px}#bmi .pt30{padding-top:30px}#bmi .bg_grey{background:#f8f8f8}#bmi .storage_target{overflow:hidden;min-width:100%}#bmi .input-file{width:100%;height:55px}#bmi .input-file-user{position:relative;height:55px;width:525px;font-size:14px}#bmi .input-file-user::placeholder{font-size:14px}#bmi .input-label-file{color:#aaaeb3;width:525px;height:55px;border:1px solid #d1d4d9;border-radius:10px;display:flex;align-items:center;padding:0 30px}#bmi #copy-password{height:45px;width:410px;border-radius:10px;border:1px solid #d1d4d9;text-align:left}#bmi #copy-url{height:45px;width:480px;border-radius:10px;border:1px solid #d1d4d9}#bmi #copy-key{height:45px;width:230px;border-radius:10px;border:1px solid #d1d4d9}#bmi .input-other{height:45px;width:255px;border-radius:10px;border:1px solid #d1d4d9}#bmi #creatingBackUp{height:55px;border:1px solid #c6c9cf;border-radius:10px;padding:0 30px}#bmi .creatingBackUp input[type=text]{display:flex;font-size:20px;text-align:left;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9}#bmi #backupsfile{border:1px dashed #a9a9a9;border-radius:10px;display:flex;justify-content:center}#bmi .drop{height:300px;display:flex;align-items:center;justify-content:center}#bmi .drop .dz-default{display:none}#bmi #textAreaCopy{height:230px;padding:25px;box-sizing:border-box;font-size:14px;color:#aaaaaa}#bmi .inprogressCreate{height:130px;padding:30px 40px;border:1px solid #aaaaaa;border-radius:10px;color:black;font-size:13px;overflow-y:auto}#bmi #text-areaSomeHick{height:240px;padding:25px;box-sizing:border-box;font-size:14px;color:#aaaaaa}#bmi #backupIsNowAccessible{height:51px;width:99%;border-radius:10px;border:1px solid #d1d4d9;text-align:left;padding-left:10px}#bmi .backupSuccess_link_container{display:flex;align-items:center;position:relative;margin:15px 70px 0}#bmi .input-config_set{width:280px;height:45px;border-radius:10px;padding-left:10px;text-align:left !important}#bmi .link_duplicate{color:#6bd5a0;margin:0 13px;text-decoration:none}#bmi .link_export{color:#0e80c9;margin:0 13px;text-decoration:none}#bmi .link_delete{color:#c20000;margin:0 13px;text-decoration:none}#bmi .d-flex .w100 .input-locally_web_server{width:100%;height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black}#bmi div .dropzone{position:relative;cursor:pointer;margin:20px 0;height:340px;border:2px dashed rgba(0,0,0,0.3);padding:20px;border-radius:20px;color:gray;background-color:#f9f9f9}#bmi .dropzone:hover{background:linear-gradient(90deg, #d1efe6, #e5f6f1)}#bmi .input-file-dropzone{opacity:0;width:100%;height:340px;position:absolute;top:0;left:0;cursor:pointer}#bmi .mt25{margin-top:25px}#bmi .mt16{margin-top:16px}#bmi .container-input{display:block;position:relative;padding-left:5px;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#bmi .custom-input{width:65px;height:45px;justify-content:center;align-items:center;border-radius:5px;border:1px solid #d1d4d9}#bmi .bg_grey .d-flex input[type=text]{margin:8px 10px}#bmi .d-flex input[type=text],#bmi .d-flex input[type=number],#bmi .d-flex input[type=email]{font-size:20px;text-align:center;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9;border-radius:5px}#bmi .d-flex input[type=email]{font-size:17px}#bmi .d-flex input[type=text]:focus,#bmi .d-flex input[type=number]:focus,#bmi .d-flex input[type=email]:focus{box-shadow:none}#bmi .container-radio{display:block;position:relative;padding-left:35px;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:25px;line-height:25px;margin-top:5px}#bmi .mtf2{margin-top:2px}#bmi .mtf3{margin-top:3px}#bmi .checkmark-radio{position:absolute;top:0;left:0;height:20px;width:20px;background-color:#fff;border:1px solid;border-radius:50%}#bmi .tab2-img{width:35px;height:40px}#bmi .container-radio{opacity:0.5 !important;transition:.3s all}#bmi .container-radio.active{opacity:1 !important}#bmi .bmi-text-input{height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black;min-width:500px;border:1px solid #d1d4d9;box-shadow:0 !important;box-shadow:none !important;font-size:20px;text-align:center !important}#bmi .bmi-text-input.small{height:45px;line-height:45px;min-width:255px}#bmi #format-tip-wrp{margin-bottom:60px}#bmi .bmi-dropdown{display:inline-block;position:relative;border-radius:5px;border:1px solid #d1d4d9;background:#fff;font-size:18px;line-height:22px}#bmi .bmi-dropdown .dropdown-title{position:relative;padding:10px 8px;padding-right:30px;text-align:center;cursor:pointer}#bmi .bmi-dropdown .dropdown-title::before{content:'';position:absolute;border:solid #257671;border-width:0 3px 3px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg);right:10px;top:calc(50% - 6px);transition:.3s all}#bmi .bmi-dropdown .dropdown-title::after{content:'';position:absolute;border-left:1px solid #37b0a9;opacity:.3;height:26px;top:8px;right:29px;transition:.3s all}#bmi .dropdown-options{font-size:18px;line-height:22px;display:none;position:absolute;background:white;text-align:center;z-index:1000;min-width:100%;border:1px solid #257671;top:calc(100% + 8px);right:0;left:-1px;border-radius:5px;box-shadow:0px 0px 20px -5px rgba(0,0,0,0.4);overflow:auto;max-height:300px}#bmi .dropdown-options .active-option{position:relative;opacity:.6}#bmi .dropdown-options .active-option::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;cursor:not-allowed}#bmi .dropdown-options .dropdown-option{padding:10px 8px;white-space:nowrap;text-overflow:ellipsis;transition:.3s all;cursor:pointer}#bmi .dropdown-options .dropdown-option:not(.active-option):hover{background:#257671;color:white}#bmi .dropdown-options::before{content:'';position:absolute;left:0;right:0;margin:0 auto;top:-5px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:5px solid #257671}#bmi .bmi-dropdown.active{border-color:#257671}#bmi .bmi-dropdown.active .dropdown-title::before{transform:rotate(-135deg);-webkit-transform:rotate(-135deg);top:calc(50% - 3px)}#bmi .bmi-switch{position:relative;display:inline-block;width:70px;height:30px}#bmi .bmi-switch input{display:none}#bmi .bmi-switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#257671;-webkit-transition:0.4s;transition:0.4s}#bmi .bmi-switch-slider:before{position:absolute;content:"";height:17px;width:17px;left:6px;bottom:7px;background-color:white;-webkit-transition:0.4s;transition:0.4s}#bmi input:checked+.bmi-switch-slider{background-color:#d5d5d5}#bmi input:checked+.bmi-switch-slider:before{-webkit-transform:translateX(40px);-ms-transform:translateX(40px);transform:translateX(40px)}#bmi .off{opacity:0}#bmi .off,#bmi .on{font-size:18px;font-weight:bold;color:white;position:absolute;transform:translate(0, -50%);top:50%;transition:.3s all}#bmi .off{left:10px}#bmi .on{right:10px}#bmi input:checked+.bmi-switch-slider .off{opacity:1}#bmi input:checked+.bmi-switch-slider .on{opacity:0}#bmi .bmi-switch-slider.round{border-radius:15px}#bmi .bmi-switch-slider.round:before{border-radius:50%}#bmi .label_e50._bottom_ea7{border-top-left-radius:8px !important;border-top-right-radius:34px !important;min-width:300px}#bmi .label_e50{position:fixed;z-index:2147483648;-webkit-backface-visibility:hidden;backface-visibility:hidden;height:40px;box-shadow:0 12px 14px 8px rgba(0,0,0,0.17);filter:blur(0)}#bmi jdiv{-webkit-animation:0s none;animation:0s none;-webkit-backface-visibility:visible;backface-visibility:visible;background:none;border:0;box-shadow:none;box-sizing:content-box;bottom:auto;caption-side:top;clear:none;clip:auto;cursor:auto;display:inline;direction:ltr;flex:none;height:auto;-webkit-hyphens:manual;-ms-hyphens:manual;hyphens:manual;image-rendering:auto;justify-content:flex-start;left:auto;letter-spacing:normal;line-height:normal;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;-o-object-fit:fill;object-fit:fill;opacity:1;order:1;orphans:2;outline:0 none;overflow:visible;padding:0;perspective:none;position:static;resize:none;right:auto;text-align:left;text-decoration:none;text-indent:0;text-overflow:clip;text-shadow:none;text-transform:none;top:auto;transform:none;transition:all 0s ease 0s;unicode-bidi:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:baseline;white-space:normal;width:auto;word-break:normal;word-spacing:normal;word-wrap:normal;z-index:auto;zoom:normal;filter:none !important;font-weight:400;-webkit-text-size-adjust:inherit;-webkit-font-smoothing:antialiased;-webkit-text-fill-color:currentColor}#bmi .hoverl_bc6{cursor:pointer}#bmi .label_e50._bottom_ea7 .text_468._noAd_b4d,#bmi .label_e50._left_bba .text_468._noAd_b4d,#bmi .label_e50._right_56b .text_468._noAd_b4d{margin:0 33px 0 16px}#bmi .label_e50._bottom_ea7 .text_468,#bmi .label_e50._left_bba .text_468,#bmi .label_e50._right_56b .text_468{transform:translateZ(0);margin:0 37px 0 16px;min-width:160px;visibility:visible}#bmi .label_e50 .text_468{font:inherit;text-indent:0;line-height:40px;vertical-align:top;white-space:nowrap;-webkit-font-smoothing:antialiased;visibility:visible;-webkit-backface-visibility:hidden;backface-visibility:hidden}#bmi .contentTransitionWrap_c73{-webkit-animation-name:fadeIn_d9b;animation-name:fadeIn_d9b;-webkit-animation-duration:0.15s;animation-duration:0.15s;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-timing-function:ease;animation-timing-function:ease}#bmi .leaf_2cc{position:absolute;width:32px;height:33px;z-index:6;overflow:hidden}#bmi .leaf_2cc._bottom_afb,#bmi .leaf_2cc._left_7af,#bmi .leaf_2cc._right_ff0{right:0;top:0;width:33px;border-radius:0 24px 0 0 !important}#bmi .cssLeaf_464{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2240%22%20viewBox%3D%220%200%2032%2040%22%3E%0A%20%20%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%20%20%20%20%3Cpath%20fill%3D%22%23424867%22%20d%3D%22M0%200h9.02L32%2033.196V40H0z%22%2F%3E%0A%20%20%20%20%20%20%20%20%3Cpath%20fill%3D%22%2318C139%22%20d%3D%22M9%200c3.581.05%2023%205.426%2023%2033.08v.03C18.922%2030.751%209%2019.311%209%205.554V0z%22%2F%3E%0A%20%20%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A");position:absolute;height:33px;width:33px;left:1px}#bmi #bmi_support_chat *{cursor:pointer !important}#bmi #bmi_support_chat{cursor:pointer !important;opacity:1;transition:0.3s all}#bmi #bmi_support_chat:hover{opacity:0.9}#bmi *{outline:0}#bmi-preload{width:calc(50%);margin:0 auto;padding-right:20px;margin-top:50px}#bmi-preload .progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;background-clip:padding-box;margin:0.5rem 0 1rem 0;overflow:hidden}#bmi-preload .progress .determinate{position:absolute;background-color:inherit;top:0;bottom:0;background-color:#26a69a;transition:width .3s linear}#bmi-preload .progress .indeterminate{background-color:#26a69a}#bmi-preload .progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}#bmi-preload .progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.tooltipster-fall,.tooltipster-grow.tooltipster-show{-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);-moz-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-ms-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-o-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-base{display:flex;pointer-events:none;position:absolute}.tooltipster-box{flex:1 1 auto}.tooltipster-content{color:#333;box-sizing:border-box;max-height:100%;max-width:100%;overflow:hidden;line-height:21px !important}.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}.tooltipster-fade.tooltipster-show{opacity:1}.tooltipster-grow{-webkit-transform:scale(0, 0);-moz-transform:scale(0, 0);-o-transform:scale(0, 0);-ms-transform:scale(0, 0);transform:scale(0, 0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1, 1);-moz-transform:scale(1, 1);-o-transform:scale(1, 1);-ms-transform:scale(1, 1);transform:scale(1, 1);-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 1);-webkit-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-moz-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-ms-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-o-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4)}.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-fall.tooltipster-initial{top:0 !important}.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0 !important;opacity:0}.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-moz-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-ms-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-o-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-slide.tooltipster-initial{left:-40px !important}.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0 !important;opacity:0}@keyframes tooltipster-fading{0%{opacity:0}100%{opacity:1}}.tooltipster-update-fade{animation:tooltipster-fading 0.4s}@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}100%{transform:rotate(0)}}.tooltipster-update-rotate{animation:tooltipster-rotating 0.6s}@keyframes tooltipster-scaling{50%{transform:scale(1.1)}100%{transform:scale(1)}}.tooltipster-update-scale{animation:tooltipster-scaling 0.6s}.tooltipster-sidetip .tooltipster-box{background:#fff;border-radius:10px}.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}.tooltipster-sidetip .tooltipster-content{border-radius:10px !important;font-size:15px;line-height:18px;padding:16px 20px !important;font-family:'Montserrat', sans-serif !important}.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:20px;margin-top:-10px;left:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:0;height:10px;margin-left:-10px;width:20px}.tooltipster-sidetip .tooltipster-arrow-background,.tooltipster-sidetip .tooltipster-arrow-border{height:0;position:absolute;width:0}.tooltipster-sidetip .tooltipster-arrow-background{border:10px solid transparent}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#fff;left:0;top:3px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#fff;left:-3px;top:0}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:#fff;left:3px;top:0}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#fff;left:0;top:-3px}.tooltipster-sidetip .tooltipster-arrow-border{border:10px solid transparent;left:0;top:0}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#fff}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#fff}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#fff}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#fff}.tooltipster-sidetip .tooltipster-arrow-uncropped{position:relative}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-10px}.bmi-tt-default-customized .tooltipster-box{background:#2b8984 !important}.bmi-tt-default-customized .tooltipster-content{background:#2b8984 !important;color:white;padding:16px 20px !important;font-weight:500}.bmi-tt-default-customized.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-left .tooltipster-arrow-background{border-left-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-right .tooltipster-arrow-background{border-right-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-top .tooltipster-arrow-background{border-top-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-top .tooltipster-arrow-border{border-top-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-right .tooltipster-arrow-border{border-right-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-left .tooltipster-arrow-border{border-left-color:#2b8984 !important}.bmi-tooltip-premium-css{text-align:center;width:350px}.bmi-premium-element *{cursor:not-allowed !important;border-color:rgba(198,201,206,0.5) !important}.bmi-tt-default a{color:white !important}.bmi-tt-banner{width:350px}.bmi-tt-center{text-align:center}.bmi-info-icon{position:absolute;top:calc(50% - 8px);width:16px;height:16px;background:url("../images/info-min.png");display:inline-block;line-height:16px;background-repeat:no-repeat;background-position:center;background-size:cover;margin:0;margin-left:3px;cursor:help}#toplevel_page_backup-migration.current .wp-menu-image img{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.85 !important}
|
1 |
+
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap");#bmi{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:'Montserrat', Helvetica, Arial, sans-serif;max-width:1495px;max-width:min(1495px, 95%);margin:0 auto;padding-top:55px;min-width:1495px;min-width:calc(min(1495px, 95%))}#bmi .light{font-weight:300}#bmi .regular{font-weight:400}#bmi .medium{font-weight:500}#bmi .semibold{font-weight:600}#bmi .bold{font-weight:700}#bmi .f12{font-size:12px}#bmi .f14{font-size:14px}#bmi .f15{font-size:15px}#bmi .f16{font-size:16px}#bmi .f17{font-size:17px}#bmi .f18{font-size:18px}#bmi .f19{font-size:19px}#bmi .f20{font-size:20px}#bmi .f22{font-size:22px}#bmi .f24{font-size:24px}#bmi .f25{font-size:25px}#bmi .f26{font-size:26px}#bmi .f28{font-size:28px}#bmi .f30{font-size:30px}#bmi .f35{font-size:35px}#bmi .black{color:black}#bmi a{color:#555}#bmi .cf::after{content:'';display:block;clear:both}#bmi .left{float:left}#bmi .right{float:right}#bmi .pointer{cursor:pointer}#bmi .not-allowed{cursor:not-allowed !important}#bmi .hoverable{opacity:1;transition:.3s all;cursor:pointer}#bmi .hoverable:hover{opacity:0.8}#bmi .hoverable:active{transition:0 all !important;opacity:.6}#bmi .transition{transition:.3s all}#bmi .relative{position:relative}#bmi .vcenter{position:absolute;text-align:center;top:50%;transform:translate(0, -50%)}#bmi .flexcenter{justify-content:center;align-items:center}#bmi .shadow{box-shadow:2px 2px 5px rgba(0,0,0,0.35)}#bmi .inline{display:inline-block !important}#bmi .fullwidth{width:100%}#bmi .lh13{line-height:1.3}#bmi .lh14{line-height:1.4}#bmi .lh28{line-height:28px}#bmi .lh30{line-height:30px}#bmi .lh40{line-height:40px}#bmi .lh45{line-height:45px}#bmi .lh50{line-height:50px}#bmi .lh60{line-height:60px}#bmi .lh65{line-height:65px}#bmi .section-bmi{margin-bottom:25px}#bmi hr.section-bmi{margin-top:30px;margin-bottom:25px;border-top:2px solid #ddd}#bmi .secondary{color:#257671}#bmi .secondary-all,#bmi .secondary-all *{color:#257671}#bmi .rbb{border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi .rbt{border-top-left-radius:10px;border-top-right-radius:10px}#bmi .center{text-align:center}#bmi .center.block{margin:0 auto}#bmi .align-right{text-align:right}#bmi .align-left{text-align:left}#bmi button{border-radius:10px;background:#257671;line-height:46px;border:0;transition:.3s all;color:white;cursor:pointer}#bmi button:hover{background:#206662}#bmi button:active{transition:0 all;background:#1b5753;opacity:.4}#bmi button.centred{margin:0 auto;margin-bottom:20px;margin-top:25px}#bmi button.with-icon .for-img{display:inline-block;position:relative}#bmi button.with-icon img{position:absolute;left:0;top:8px;height:28px;width:28px}#bmi button.with-icon span{padding-left:35px}#bmi .mm{padding-left:45px;padding-right:45px}#bmi .ppr{padding-right:25px}#bmi .tml{margin-top:20px}#bmi .mo{padding:45px}#bmi .mt{padding-top:45px}#bmi .mb{padding-bottom:45px}#bmi .mtl{padding-top:25px}#bmi .mbl{padding-bottom:25px}#bmi .mtll{padding-top:15px}#bmi .mtlll{padding-top:7px}#bmi .mbll{padding-bottom:15px}#bmi .mblll{padding-bottom:7px}#bmi .nm{margin:0 !important}#bmi .mms{padding-left:20px;padding-right:20px}#bmi .mmm{padding-left:35px;padding-right:35px}#bmi .mm60{padding-left:60px;padding-right:60px}#bmi .mm30{padding-left:30px;padding-right:30px}#bmi .mm92{padding-left:76px !important;padding-right:76px !important}#bmi .text-grey{color:#373737}#bmi .text-muted{opacity:0.47}#bmi .red-text{color:red}#bmi .flex-here{display:flex;flex-direction:row}#bmi .flex-here div{flex:1}#bmi .nlink{text-decoration:none;color:#257671}#bmi .nplr{padding-left:0 !important;padding-right:0 !important}#bmi .flex{display:flex;flex-wrap:wrap}#bmi .rr{padding-left:32px}#bmi .np{padding:0}#bmi .npb{padding-bottom:0 !important}#bmi .npt{padding-top:0 !important}#bmi .pbl{padding-bottom:10px !important}#bmi .bg-second{background:#f8f8f8}#bmi .width50,#bmi .half{width:50% !important}#bmi .chhl{width:calc(50% - 80px) !important;margin:0 40px}#bmi .under{text-decoration:underline}#bmi .tilo{font-size:18px}#bmi .red-error-bg{background:#f9efef}#bmi .nodec{text-decoration:none !important}#bmi .mt30{margin-top:30px}#bmi .suc-buttns .a1,#bmi .suc-buttns .a2{width:calc(50% - 40px);margin:10px}#bmi .suc-buttns .a1 a,#bmi .suc-buttns .a2 a{padding:10px 30px}#bmi .suc-buttns .a1{margin-left:30px}#bmi .suc-buttns .a2{margin-right:30px}#bmi .nowrap{flex-wrap:nowrap !important}#bmi .fbcont{font-size:14px;text-align:left;padding-left:15px}#bmi .fbcont .fbhead{display:block;font-size:19px;margin-bottom:5px}#bmi .nmt{margin-top:0 !important}#bmi .fcentr{display:flex;justify-content:center}#bmi .autowidth{width:auto !important}#bmi .flex1{flex:1}#bmi .flex2{flex:2}#bmi .left-align{text-align:left}#bmi .right-align{text-align:right}#bmi .info-cursor{cursor:help}#bmi .wait-cursor{cursor:wait}#bmi .mrr{margin-right:20px !important}#bmi .orr{margin-right:10px}#bmi .oll{margin-left:10px}#bmi .ooo-to-pad .orr{padding-right:10px !important}#bmi .ooo-to-pad .oll{padding-left:10px !important}#bmi .mw850{max-width:850px}#bmi .bol{margin-left:100px}#bmi li.hasArrowRight{position:relative;padding-left:40px}#bmi li.hasArrowRight::before{content:'';position:absolute;border:solid #257671;border-width:0 3px 3px 0;display:inline-block;padding:3px;transform:rotate(-45deg);-webkit-transform:rotate(-45deg);left:20px;top:10px}#bmi .cron-a{line-height:77px;padding:0px 35px}#bmi .cron-b{border-top:2px solid #e2eceb;border-bottom:2px solid #e2eceb;background-color:#e6eeee;padding:0px 35px;overflow-x:auto;max-width:100%;max-height:78px;overflow-y:hidden}#bmi .cron-b table{height:72px}#bmi .cron-c{padding:0px 35px}#bmi .cron-c table{height:70px}#bmi .mr50{margin-right:50px}#bmi .mr20{margin-right:20px}#bmi .mw250{min-width:250px}#bmi .center-table{width:100%}#bmi .center-table td{text-align:center;padding-left:10px;padding-right:10px}#bmi .untab{box-shadow:none !important;outline:0 !important}#bmi .bc-locked-btn.forever{cursor:not-allowed !important}#bmi .hide_so_much{display:none !important}#bmi .modal.before-open{transition:0s all !important;opacity:0;display:block}#bmi .modal.before-open .modal-wrapper{left:-60px;transition:0s all !important;top:-30px;opacity:0}#bmi .modal.open{transition:0.4s all !important;opacity:1;display:block}#bmi .modal.open .modal-wrapper{top:60px;left:0px;transition:0.4s all !important;opacity:1}#bmi .modal.before-close{transition:0s all !important;opacity:1;display:block}#bmi .modal.before-close .modal-wrapper{transition:0s all !important;top:60px;left:0px;opacity:1}#bmi .modal.closed{transition:0.4s all !important;left:0px;opacity:0}#bmi .modal.closed .modal-wrapper{transition:0.4s all !important;top:120px;left:60px;opacity:0}#bmi .modal{top:0;left:0;display:none;position:fixed;width:100%;height:100vh;background:rgba(37,118,113,0.4);overflow:auto;z-index:999999}#bmi .modal .modal-close{position:absolute;top:25px;right:25px;font-size:35px !important;color:#555 !important;font-weight:500 !important;z-index:9999999 !important;text-decoration:none !important;line-height:1.1;transition:.3s all;opacity:1}#bmi .modal .modal-close.light{color:white !important}#bmi .modal .modal-close:hover{opacity:.7}#bmi .modal .modal-wrapper{top:60px;max-width:60vw;box-shadow:0px 10px 64px rgba(0,0,0,0.24);margin:0 auto;position:relative;background:#FBFBFF;border-radius:10px;padding:40px 40px;margin-bottom:35px;min-height:200px}#bmi .modal .modal-wrapper.no-hpad{padding-left:0;padding-right:0}#bmi .modal .modal-wrapper.no-vpad{padding-top:0;padding-bottom:0}#bmi .modal.modal-off-fixed{top:auto;left:auto;right:0px;bottom:0px;width:calc(100% - 160px);height:calc(100vh - 30px)}#bmi .modal.modal-no-background-center .modal-centered-items{display:flex;align-items:center;justify-content:center;height:100%}#bmi .modal.modal-no-background-center .modal-wrapper{top:0;box-shadow:none;background:transparent}#bmi .modal.modal-no-background-center .modal-content{margin-top:40px}#bmi .modal.modal-no-background-center b{color:white}#bmi .modal-freeze-loader{margin:0 auto;top:15px;border:8px solid #f3f3f3;border-top:8px solid #257671;border-radius:50%;width:60px;height:60px;animation:bmi-loader-spin 1s linear infinite}@keyframes bmi-loader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}#bmi .modal-closer{cursor:pointer}#bmi .modal-closer:hover{text-decoration:underline}#bmi .modal-underline-link{cursor:pointer}#bmi .modal-underline-link:hover{text-decoration:underline}#bmi .live-log{transition:.3s all;overflow:hidden;max-height:306px}#bmi .live-log.expanded-logs{max-height:0px}#bmi .red-warning{position:relative;display:inline-block;padding-left:60px;padding-right:60px}#bmi .red-warning::after,#bmi .red-warning::before{content:'';position:absolute;top:12px;height:41px;width:46px}#bmi .red-warning::after{left:0;background:url("../images/warning-red.png")}#bmi .red-warning::before{right:0;background:url("../images/warning-red.png")}#bmi .bmi-ask-for-review,#bmi .bmi-ask-for-review{background:#f5f5f5;margin-top:35px;margin-bottom:35px;height:170px}#bmi .bmi-positive-wrapper{position:relative;height:200px;width:200px;background:#206662;border-radius:20px;box-shadow:0px 0px 20px 0px rgba(0,0,0,0.4);margin-top:-17px}#bmi .bmi-positive-wrapper .bmi-positive-thumb{height:40%;width:40%;position:absolute;left:51%;top:47%;transform:translate(-50%, -50%)}#bmi .bmi-thumb-info{width:calc(100% - 200px)}#bmi .bmi-positive-wrapper::before{content:'';height:65%;width:65%;position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);background:white;border-radius:50%}#bmi .bmi-list-bullet li{list-style:disc;margin-bottom:20px}#bmi .bmi-ask-logs-btns .bmi-btn-logs-cont{width:calc(50% - 20px);margin:0 auto}#bmi a.bmi-send-troubleshooting-logs:not(.btn){color:black;font-weight:500;opacity:1;transition:all .3s}#bmi a.bmi-send-troubleshooting-logs:not(.btn):hover{color:#257671;opacity:0.8}#bmi a.bmi-send-troubleshooting-logs:not(.btn).disabled{opacity:0.6;pointer-events:none}#bmi .premium-wrapper{cursor:not-allowed}#bmi .premium-wrapper .premium{pointer-events:none}#bmi .premium-wrapper .premium-img{line-height:30px;padding-right:30px;position:relative}#bmi .premium-wrapper .premium-img::after{content:'';position:absolute;top:0;bottom:0;right:0;background:url("../images/premium.svg");margin-top:3px;height:24px;width:24px;background-repeat:no-repeat;background-size:cover}#bmi .premium-wrapper .premium-img.premium-nt::after{margin-top:0px !important;right:20px;top:1px}#bmi .premium-wrapper .premium-img.premium-ntt::after{margin-top:0px !important;top:-1px}#bmi .premium-function .premium-img{line-height:30px;padding-right:30px;position:relative}#bmi .premium-function .premium-img::after{content:'';position:absolute;top:0;bottom:0;right:0;background:url("../images/premium.svg");margin-top:3px;height:24px;width:24px;background-repeat:no-repeat;background-size:cover}#bmi .premium-function .premium-img.premium-nt::after{margin-top:0px !important;right:20px;top:1px}#bmi .premium-function .premium-img.premium-ntt::after{margin-top:0px !important;top:-1px}#bmi .bmi-notification-box{position:fixed;top:15px;right:15px;min-width:100px;max-width:40vw;z-index:1000000}#bmi .bmi-notification.is-info,#bmi .bmi-title.is-info{background-color:#0c96b7}#bmi .bmi-notification.is-danger,#bmi .bmi-title.is-danger{background-color:#e4706f}#bmi .bmi-notification.is-success,#bmi .bmi-title.is-success{background-color:#6db799}#bmi .bmi-alert-icon{height:100%;width:25px}#bmi .bmi-alert-icon .bmi-icon-bg{width:25px;height:25px}#bmi .bmi-alert-msg-title{padding-left:40px !important}#bmi .bmi-notification .bmi-icon-bg{background-position:center;background-repeat:no-repeat;position:absolute;height:calc(100% - 36px)}#bmi .bmi-notification.is-success .bmi-icon-bg{background-image:url("../images/alert_success-min.png")}#bmi .bmi-notification.is-warning .bmi-icon-bg{background-image:url("../images/alert_warning-min.png")}#bmi .bmi-notification.is-info .bmi-icon-bg{background-image:url("../images/alert_info-min.png")}#bmi .bmi-notification.is-danger .bmi-icon-bg{background-image:url("../images/alert_error-min.png")}#bmi .bmi-notification.is-warning,#bmi .bmi-title.is-warning{background-color:#ecb135}#bmi .bmi-title{margin-bottom:3px;font-weight:500;font-size:15px !important}#bmi .bmi-notification{border-radius:3px;padding:18px 36px 18px 20px !important;position:relative;margin-bottom:15px;padding-left:3px;font-family:'Montserrat', sans-serif !important;font-size:15px !important;font-weight:300;color:white}#bmi .bmi-times-button{top:2px;right:1px;position:absolute;background:none !important;border:none;font-size:24px;cursor:pointer;font-weight:500;color:white;opacity:0.6;transition:opacity 0.2s;padding:2px 9px !important}#bmi .bmi-times-button:hover{cursor:pointer;opacity:1}#bmi .bmi-noti-hide{display:none}#bmi .translations{display:none;visibility:hidden;height:0;width:0}#bmi .heading{padding-bottom:35px}#bmi .backup-creator .cron-backups-wrap{width:calc(100% - 225px);height:225px}#bmi .backup-creator .cron-backups{background-color:white;width:calc(100% - 15px);margin-left:15px;height:100%;border-radius:10px}#bmi .backup-creator .cron-backups .vcenter{width:100%}#bmi .backup-creator .cron-backups .turned-off{width:100%;height:100%;background:url("../images/big_bg_clock_white-min.png") no-repeat;background-size:cover;color:#257671}#bmi .backup-creator .cron-backups .turned-off:hover{background:url("../images/big_bg_clock_green-min.png") no-repeat;background-size:cover;color:white}#bmi .backup-creator .cron-backups .turned-off,#bmi .backup-creator .cron-backups .turned-on{width:100%;border-radius:10px;position:absolute;top:0;left:0;right:0;bottom:0;opacity:1;transition:.3s all}#bmi .backup-creator .cron-backups.disabled .cron-bc{opacity:.5;cursor:not-allowed}#bmi .backup-creator .cron-backups.disabled .cron-bc .cron-b{pointer-events:none}#bmi .backup-creator .cron-backups.disabled .cron-bc .cron-c{pointer-events:none}#bmi .trouble-section .shadow{border-radius:7px;background:#fff;color:black;cursor:pointer;transition:.3s all;min-height:185px;padding:0 20px}#bmi .trouble-section .shadow svg{color:#257671}#bmi .trouble-section .shadow:hover,#bmi .trouble-section .shadow.active{color:white;box-shadow:2px 2px 7px rgba(0,0,0,0.4);background:#257671}#bmi .trouble-section .shadow:hover svg,#bmi .trouble-section .shadow.active svg{color:white}#bmi .close-chapters:hover{text-decoration:underline !important}#bmi .hide-show-tr{display:none}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes spinreverse{100%{-moz-transform:rotate(-360deg)}}@-webkit-keyframes spinreverse{100%{-webkit-transform:rotate(-360deg)}}@keyframes spinreverse{100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}#bmi .spinning{-webkit-animation:spin 3s linear infinite;-moz-animation:spin 3s linear infinite;animation:spin 3s linear infinite}#bmi .spinning-reverse{-webkit-animation:spinreverse 3s linear infinite;-moz-animation:spinreverse 3s linear infinite;animation:spinreverse 3s linear infinite}#bmi #bmi-ongoing-backup{position:fixed;top:32px;right:50px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;height:78px;width:310px;background:#257671;color:white}#bmi #bmi-ongoing-backup .centered{position:absolute;left:85px;top:18px;line-height:22px}#bmi #bmi-ongoing-backup .nuts .nut{position:absolute}#bmi #bmi-ongoing-backup .nuts .nut-1{top:10px;left:30px}#bmi #bmi-ongoing-backup .nuts .nut-2{top:37px;left:15px}#bmi #bmi-ongoing-backup .nuts .nut-3{top:47px;left:37px}#bmi .ml50{margin-left:50px}#bmi .error-noticer{padding:25px 35px;border:1px solid red;border-radius:10px;background:#fbeded;color:red;position:relative;margin-bottom:25px}#bmi .error-noticer .error-header{font-weight:600;font-size:18px}#bmi .error-noticer .error-body{display:none;font-size:16px;padding-left:20px;padding-right:20px;padding-top:20px;line-height:25px}#bmi .error-noticer .error-body b{padding-top:10px;display:block}#bmi .lrn-mr-btn{line-height:70px}#bmi .learn_more_about_cron{background:white;padding:35px 55px 25px;border-radius:10px;font-size:17px;line-height:25px;min-width:calc(100% - 110px);margin-bottom:25px}#bmi .bmi-backup-btn{height:185px;width:185px;outline:none;display:flex;cursor:pointer;font-size:20px;background-color:#257671;position:relative;transition:all 0.7s ease;-webkit-transition:all 0.7s ease;-moz-transition:all 0.7s ease;-o-transition:all 0.7s ease;-ms-transition:all 0.7s ease;border-radius:10px;padding:20px}#bmi .bmi-backup-btn .vcenter{width:calc(100% - 40px)}#bmi .bmi-backup-btn .vcenter .text{margin-top:6px;line-height:1.2}#bmi .bmi-backup-btn.one{border-color:#fff;overflow:hidden;color:#fff}#bmi .bmi-backup-btn.one .insider{opacity:0.6;background-color:rgba(255,255,255,0.14);width:340px;height:162px;position:absolute;right:1px;bottom:86px;transform:rotateZ(-45deg);-webkit-transform:rotateZ(-45deg);-moz-transform:rotateZ(-45deg);-o-transform:rotateZ(-45deg);-ms-transform:rotateZ(-45deg);transition:all 0.3s ease;-webkit-transition:all 0.3s ease;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;-ms-transition:all 0.3s ease}#bmi .bmi-backup-btn.one .insider-2{opacity:0.6;background:linear-gradient(180deg, rgba(255,255,255,0.73) 0%, rgba(255,255,255,0.14) 55%);width:390px;height:318px;position:absolute;right:-308px;bottom:-267px;transform:rotateZ(-45deg);-webkit-transform:rotateZ(-45deg);-moz-transform:rotateZ(-45deg);-o-transform:rotateZ(-45deg);-ms-transform:rotateZ(-45deg);transition:all 0.3s ease;-webkit-transition:all 0.3s ease;-moz-transition:all 0.3s ease;-o-transition:all 0.3s ease;-ms-transition:all 0.3s ease}#bmi .bmi-backup-btn.one:hover .insider{transition:all 0.5s ease;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;-ms-transition:all 0.5s ease;right:108px;bottom:200px}#bmi .bmi-backup-btn.one:hover .insider-2{transition:all 0.6s ease;-webkit-transition:all 0.6s ease;-moz-transition:all 0.6s ease;-o-transition:all 0.6s ease;-ms-transition:all 0.6s ease;transition-delay:0.5s;right:19px;bottom:75px}#bmi .tab-wrapper{min-width:100%}#bmi .tabs{border:0 !important;background-color:white;margin-bottom:25px;border-top-left-radius:10px;border-top-right-radius:10px}#bmi .tabs .tab.active{cursor:not-allowed}#bmi .tabs .tab:first-child{border-top-left-radius:10px}#bmi .tabs .tab:last-child{border-top-right-radius:10px}#bmi .tabs .tab{padding-top:18px;width:calc(50% - 2px);border-left:1px solid rgba(176,69,46,0.12);text-align:center;padding-bottom:18px;color:#8e8e8e}#bmi .tabs .tab.active{position:relative;color:#257671}#bmi .tabs .tab.active:not(.active):hover::before{border-bottom:7px solid white !important}#bmi .tabs .tab.active::before{content:'';height:0px;width:0px;transition:.3s all;background:transparent;border-top:5px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #257671;position:absolute;bottom:0;left:0;right:0;margin:0 auto;transform:translateX(-50%)}#bmi .tabs .tab.active::after{content:'';position:absolute;bottom:0;left:0;right:0;width:100%;height:6px;border-bottom:2px solid #257671}#bmi .tabs .tab:first-child.active::after{border-bottom-left-radius:14px}#bmi .tabs .tab:last-child.active::after{border-bottom-right-radius:14px}#bmi .tabs .tab:first-child{width:calc(50% - 1px);border-left:0 !important}#bmi .tabs .tab:not(.active):hover{color:white;background:#257671}#bmi .collapser.active .header:not(.ignorehov){background:#257671;color:white}#bmi .collapser.active .header{border-bottom-left-radius:0px;border-bottom-right-radius:0px}#bmi .collapser.active .header:not(.ignorehov)::after{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.95 !important}#bmi .collapser.active .header::after{transform:rotate(180deg)}#bmi .collapser{border-radius:10px}#bmi .collapser .header{padding:21px 45px;background:white;border-radius:10px;position:relative}#bmi .collapser .header:not(.ignorehov):hover{background:#257671;color:white}#bmi .collapser .header::after{content:'';position:absolute;background:url("../images/arrow-min.png");background-size:cover;background-repeat:no-repeat;margin-top:4px;right:45px;width:19px;height:11px;transition:.3s all}#bmi .collapser .header:not(.ignorehov):hover::after{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.95 !important}#bmi .collapser .content{display:none;background:white;min-width:100%;border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi #manage-restore-wrapper .restore-wrapper{background-color:white;padding-top:40px;padding-bottom:40px;min-width:100%;margin-top:10px}#bmi #manage-restore-wrapper .m{margin-left:30px;margin-right:30px}#bmi #manage-restore-wrapper .header{background:#beeddf;background:linear-gradient(60deg, #beeddf 10%, #dffaf2 100%);height:18px}#bmi #manage-restore-wrapper .header::before{content:'';position:absolute;background:#beeddf;background:linear-gradient(60deg, #dffaf2 10%, #beeddf 100%);left:0;top:0;border-radius:10px;width:100%;height:100%;opacity:0 !important;transition:.3s all}#bmi #manage-restore-wrapper .bold{position:absolute}#bmi #manage-restore-wrapper .collapser.active .header::before{border-bottom-left-radius:0px;border-bottom-right-radius:0px;opacity:1 !important}#bmi #manage-restore-wrapper .header:hover::before{opacity:1 !important}#bmi #manage-restore-wrapper .content{min-width:calc(100% - 90px);position:relative;padding:10px 45px}#bmi #manage-restore-wrapper .content .bg-quick-migration{top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;border-bottom-left-radius:10px;border-bottom-right-radius:10px}#bmi #manage-restore-wrapper .content .content-above{position:relative}#bmi #manage-restore-wrapper .content .quick-migration{border-radius:10px}#bmi #manage-restore-wrapper .content .text-heading{padding:15px 0}#bmi #manage-restore-wrapper .content input{box-sizing:border-box;line-height:30px;border:1px solid #c6c9cf;width:100%;padding:11px;font-size:18px;border-radius:10px}#bmi #manage-restore-wrapper .content button{width:358px}#bmi #manage-restore-wrapper .heading-sq .bold{position:relative;padding-right:35px}#bmi #manage-restore-wrapper .heading-sq .bold::after{content:'';background:url("../images/next-icon-min.png");background-size:cover;height:24px;width:24px;position:absolute;top:0;right:0}#bmi #manage-restore-wrapper .valign-restore .a1{padding-top:6px;padding-right:6px}#bmi #manage-restore-wrapper .valign-restore .a2{padding-top:4px;padding-right:6px}#bmi #manage-restore-wrapper .table-wrapper{max-width:100%;overflow-y:auto}#bmi #manage-restore-wrapper .table-wrapper table{width:100%;min-width:400px;border-collapse:collapse;margin-bottom:10px}#bmi #manage-restore-wrapper .table-wrapper table .restore-btn{color:white;font-size:13px;font-weight:600;background:#0ec094;border-radius:5px;width:95px;height:25px;border:1px solid #0ec094;display:flex;justify-content:space-evenly;align-items:center}#bmi #manage-restore-wrapper .table-wrapper table th{font-size:19px;text-align:left;color:#111}#bmi #manage-restore-wrapper .table-wrapper table th.inactive{color:#c3c3c3}#bmi #manage-restore-wrapper .table-wrapper table tr{border-bottom:2px solid #e1dada}#bmi #manage-restore-wrapper .table-wrapper table tr th,#bmi #manage-restore-wrapper .table-wrapper table tr td{padding-top:15px;padding-bottom:14px}#bmi #manage-restore-wrapper .table-wrapper table tr td{font-size:18px;color:#333}#bmi .log-wrapper pre{max-height:200px;overflow:auto;line-height:1.2;font-size:13px;white-space:nowrap;text-align:left;background:#fbfbfb;border:1px solid #cececc;border-radius:10px;padding:30px}#bmi .log-wrapper pre .red{color:red}#bmi .log-wrapper pre .blue{color:blue}#bmi .log-wrapper pre .green{color:green}#bmi .log-wrapper pre .orange{color:#f59e00}#bmi .progress-bar-wrapper{line-height:1;margin-top:70px;margin-bottom:30px}#bmi .progress-bar-wrapper .progress-bar{position:relative;height:10px;width:100%;border-radius:10px;background:#f1f1f1}#bmi .progress-bar-wrapper .progress-active-bar{position:absolute;background:#257671;border-radius:10px;height:14px;width:40%;top:-2px;left:0;transition:0.1s all cubic-bezier(0, 0, 0.6, 1);box-shadow:0px 0px 10px rgba(0,0,0,0.4)}#bmi .progress-bar-wrapper .progress-active-bar::before{content:'';position:absolute;border-radius:10px;height:14px;width:20%;top:0;right:0;z-index:0}#bmi .progress-bar-wrapper .progress-percentage{position:absolute;background:#257671;width:32px;height:32px;border-radius:50%;transform:translate(calc(-50% - 3px), 0);bottom:26px;text-align:center;color:white;line-height:34px;font-size:11px;font-weight:800;transition:0.1s all cubic-bezier(0, 0, 0.6, 1)}#bmi .progress-bar-wrapper .progress-percentage::after{content:'';left:50%;position:absolute;background:#257671;width:6px;height:6px;border-radius:50%;transform:translate(-50%, 0);bottom:-10px}#bmi .deleteAllSelected{height:45px;width:265px;border-radius:10px;font-size:15px !important;font-weight:bold;padding-top:0 !important;padding-bottom:0 !important}#bmi .lds-spinner{color:#257671;display:inline-block;position:relative;width:20px;height:14px}#bmi .lds-spinner div{transform-origin:10px 10px;animation:lds-spinner 1.2s linear infinite}#bmi .lds-spinner div:after{content:" ";display:block;position:absolute;top:2px;left:9px;width:2px;height:4px;border-radius:20%;background:#257671}#bmi .lds-spinner div:nth-child(1){transform:rotate(0deg);animation-delay:-1.1s}#bmi .lds-spinner div:nth-child(2){transform:rotate(30deg);animation-delay:-1s}#bmi .lds-spinner div:nth-child(3){transform:rotate(60deg);animation-delay:-0.9s}#bmi .lds-spinner div:nth-child(4){transform:rotate(90deg);animation-delay:-0.8s}#bmi .lds-spinner div:nth-child(5){transform:rotate(120deg);animation-delay:-0.7s}#bmi .lds-spinner div:nth-child(6){transform:rotate(150deg);animation-delay:-0.6s}#bmi .lds-spinner div:nth-child(7){transform:rotate(180deg);animation-delay:-0.5s}#bmi .lds-spinner div:nth-child(8){transform:rotate(210deg);animation-delay:-0.4s}#bmi .lds-spinner div:nth-child(9){transform:rotate(240deg);animation-delay:-0.3s}#bmi .lds-spinner div:nth-child(10){transform:rotate(270deg);animation-delay:-0.2s}#bmi .lds-spinner div:nth-child(11){transform:rotate(300deg);animation-delay:-0.1s}#bmi .lds-spinner div:nth-child(12){transform:rotate(330deg);animation-delay:0s}@keyframes lds-spinner{0%{opacity:1}100%{opacity:0}}#bmi .prenotices{margin-top:45px;margin-bottom:45px}#bmi .prenotices .prenotice:first-child{border-top:1px solid #eeebeb}#bmi .prenotices .prenotice{position:relative;background:#fcfcfc;border-bottom:1px solid #eeebeb}#bmi .prenotices .prenotice .text{padding-top:25px;padding-bottom:25px;padding-left:155px;padding-right:60px;font-size:18px;line-height:1.2}#bmi .prenotices .prenotice.top{border-top-right-radius:10px;border-top-left-radius:10px}#bmi .prenotices .prenotice.top .text{padding-right:120px;padding-left:215px;font-size:20px;line-height:25px}#bmi .prenotices .prenotice::before{content:'';position:absolute;background:url("../images/warning-grey.png");width:46px;height:41px;top:50%;transform:translate(0, -50%);left:60px}#bmi .prenotices .prenotice.top::before{left:120px}#bmi .prenotices .prenotice.red{background:#feedee !important}#bmi .prenotices .prenotice.red::before{background:url("../images/warning-red.png")}#bmi .btn{display:block;background:#257671;box-shadow:0 10px 9px rgba(0,0,0,0.24);color:white;padding-top:18px;padding-bottom:18px;border-radius:10px;font-size:18px;line-height:1.2;transition:0.3s all;cursor:pointer;text-decoration:none}#bmi .btn .text{display:inline-block}#bmi .btn.btn-pad{padding-left:50px;padding-right:50px}#bmi .btn.btn-img-low-pad .text{padding-left:40px !important}#bmi .btn:hover{background:#206662;box-shadow:0 10px 15px rgba(0,0,0,0.34)}#bmi .btn:active{transition:0 all;background:#1b5753;box-shadow:0 10px 5px rgba(0,0,0,0.14)}#bmi .btn.red{background:#da2b2b}#bmi .btn.red:hover{background:#cd2424}#bmi .btn.red:active{background:#bb2121}#bmi .btn.lime{background:#4dbb84}#bmi .btn.lime:hover{background:#43b07a}#bmi .btn.lime:active{background:#3ea270}#bmi .btn.gray,#bmi .btn.grey{background:#b6b6b6}#bmi .btn.gray:hover,#bmi .btn.grey:hover{background:#acacac}#bmi .btn.gray:active,#bmi .btn.grey:active{background:#a2a2a2}#bmi .btn.btn-with-img .text{padding-left:60px;position:relative}#bmi .btn.btn-with-img img{position:absolute;top:50%;left:0;transform:translate(0, -50%)}#bmi input[type="checkbox"]{border-radius:4px;width:22px !important;height:22px !important;position:relative;transition:0.3s all}#bmi input[type="checkbox"],#bmi input[type="checkbox"]:active,#bmi input[type="checkbox"]:focus{outline:0 !important;box-shadow:none !important;border-color:#257671 !important}#bmi input[type="checkbox"]::before{content:'' !important;border-color:#257671 !important;border-radius:3px;transition:0.3s all;margin:0 !important;height:20px !important;width:20px !important;float:left;display:inline-block;vertical-align:middle;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#bmi input[type="checkbox"]:checked{background:#257671 !important}#bmi input[type="checkbox"]:checked::after{content:'';width:10px;height:5px;border-left:3px solid white;border-bottom:3px solid white;top:4px;left:4px;transform:rotate(-48deg);position:absolute}#bmi .success-copy-input input{width:calc(100% - 170px - 15px);margin-right:15px;line-height:44px;border-radius:10px;border:1px solid #d1d4d9;background:#fff}#bmi .success-copy-input a{line-height:10px;padding-left:40px !important;padding-right:40px !important;box-shadow:none !important;text-decoration:none}#bmi .grey-btn{background:#aaa;width:85%;line-height:13px}#bmi .save-btn{text-align:center;font-weight:700;width:450px;margin:0 auto;font-size:27px}#bmi .max300{max-width:300px;margin:0 auto}#bmi .max280{max-width:280px;margin:0 auto}#bmi label:hover input[type="checkbox"]{background:#dfdfdf}#bmi .btn.othersec{margin-top:6px;padding-top:13px;padding-bottom:13px}#bmi .backup-minimize.disabled{opacity:.2;box-shadow:none;pointer-events:none !important;background:#7d7d7d !important}#bmi .bmi-troubleshooting-btn-mm{background:rgba(255,0,0,0.16);padding:20px 45px;padding-bottom:5px;margin-bottom:15px}#bmi .bmi-troubleshooting-btn-section{line-height:60px}#bmi .bmi-troubleshooting-btn-text{display:inline-block}#bmi .bmi-troubleshooting-btn{background:#db2f2f;display:inline-block;transition:opacity .3s}#bmi .bmi-troubleshooting-btn:hover{background:#db2f2f;opacity:0.7}#bmi .bmi-troubleshooting-info-logs{line-height:25px;margin-top:20px}#bmi .bmi-support-code-section{padding:25px 15px;border:3px solid #206662;border-radius:5px;font-size:36px;font-weight:600}#bmi .bmi-support-code-section span{border:0;font-weight:800;-webkit-touch-callout:all;-webkit-user-select:all;-khtml-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}#bmi .bmi-send-troubleshooting-logs.disabled{background:grey;pointer-events:none}#bmi .file-checkboxes-wrapper{padding-left:32px}#bmi .file-checkboxes-wrapper .file-checkboxes label{display:block;width:50%;margin-bottom:10px}#bmi .file-checkboxes-wrapper div{margin-top:5px;margin-bottom:5px}#bmi .note{width:500px;margin:50px auto;font-size:1.1em;color:#333;text-align:justify}#bmi #drop-area{border:2px dashed #ccc;border-radius:20px;width:100%;height:340px;margin-top:10px;background:#f9f9f9}#bmi #drop-area:hover{background:linear-gradient(90deg, #d1efe6, #e5f6f1)}#bmi #drop-area.highlight{border-color:#257671}#bmi .my-form{margin-bottom:10px;margin-top:35px}#bmi #gallery{margin-top:10px}#bmi .img_upload{width:100px;height:75px;background-image:url("../images/upload.svg")}#bmi #gallery img{width:150px;margin-bottom:10px;margin-right:10px;vertical-align:middle}#bmi .button{display:inline-block;padding:10px;background:#ccc;cursor:pointer;border-radius:5px;border:1px solid #ccc}#bmi .button:hover{background:#ddd}#bmi #upid_input{position:absolute;left:2508px;top:3273px;opacity:0;z-index:9999;width:1px;height:1px;display:none}#bmi .ortext{font-size:18px;line-height:54px}#bmi .upload_button{font-size:18px;font-weight:800;padding:0;height:50px;line-height:50px;padding:0 20px}#bmi .upload-progress{border:2px dashed #ccc;padding-bottom:45px;border-radius:20px;margin-top:10px;margin-bottom:10px;overflow:hidden;position:relative}#bmi .upload-progress .upload-progress-bar{width:90%;margin:0 auto;background:#f1f1f1;height:10px;margin-top:65px;position:relative;border-radius:10px;margin-bottom:10px}#bmi .upload-progress .upload-progress-bar span{display:block;position:absolute;top:-2px;left:0;width:50%;background:#257671;height:14px;z-index:10;border-radius:10px;transition:0.1s all cubic-bezier(0, 0, 0.6, 1)}#bmi .upload-progress .upload-progress-bar .upload-percentage{position:absolute;bottom:calc(100% + 14px);right:-13px;color:white;background:#257671;border-radius:50%;width:30px;height:30px;font-size:12px;text-align:center;line-height:30px}#bmi .upload-progress .upload-progress-bar .upload-percentage::after{position:absolute;content:'';top:calc(100% + 4px);left:0;right:0;margin:0 auto;width:6px;height:6px;background:#257671;border-radius:50%}#bmi .upload-title{font-size:23px;font-weight:800}#bmi .bmi-txtar{padding:15px;border-radius:10px;font-size:18px;resize:none}#bmi .inline-radio{padding-right:20px}#bmi .exclude-row input{border-radius:5px;width:130px;height:44px;border:1px solid #d1d4d9;font-size:18px;margin:0 10px;text-align:center}#bmi .mbfieldlimit{font-size:20px;text-align:center;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9;border-radius:5px;width:85px;height:45px;justify-content:center;align-items:center}#bmi .overlay-premium{display:none}#bmi .clocks_container{display:none}#bmi .overlayed:hover{position:relative}#bmi .overlayed:hover .overlay-premium{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;background-image:url("../images/big_bg_clock_white-min.png");background-repeat:no-repeat;background-size:cover;align-items:center;justify-content:center;z-index:100000;border-top:1px solid #cdcdcd;border-bottom:1px solid #cdcdcd}#bmi .overlayed:hover .clocks_container{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.05);align-items:center;flex-direction:column;justify-content:center;height:100%;position:relative;font-size:18px}#bmi .tab2-item{position:relative;display:flex;justify-content:space-between;align-items:center;width:100%;background:#f6f6f6;border-radius:10px;height:70px;padding:0 30px;margin-top:15px;box-sizing:border-box}#bmi .tab2-item .container-40{margin:0 40px}#bmi .tab2-item .pb30{padding-bottom:30px}#bmi .tab2-item .bg_grey{background:#f8f8f8}#bmi .tab2-item .not-ready{position:absolute;left:0;width:100%;height:100%;background-color:#e5e5e5;opacity:0.7;border-radius:10px}#bmi .tab2-item .bg_clock_day2{display:none;background-image:url("../images/big_bg_clock_green-min.png");width:100%;height:100%;position:absolute;left:0;background-size:cover;background-repeat:no-repeat;z-index:3;color:white;border-radius:10px}#bmi .tab2-item .clock_img{flex-basis:5%}#bmi .tab2-item .d-flex{display:flex;flex:1}#bmi .tab2-item .ia-center{align-items:center}#bmi .tab2-item .switch{position:relative;width:70px;height:30px;overflow:hidden;border:none;padding:0;background:none}#bmi .tab2-item .switch.b2{border-radius:15px;border:none;background:none;padding:0}#bmi .tab2-item .switch.b2 .checkbox{position:relative;width:100% !important;height:100% !important;padding:0;margin:0;opacity:0;cursor:pointer;z-index:3;border:none}#bmi .tab2-item .knobs{z-index:2;position:absolute;top:0;right:0;bottom:0;left:0}#bmi .tab2-item .switch .knobs:before{content:'Off';left:7px}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after{color:white;z-index:1}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .switch .knobs:after{content:'On';right:17px}#bmi .tab2-item .switch .knobs:after{padding:0 12px}#bmi .tab2-item .switch .checkbox:checked+.knobs:before,#bmi .tab2-item .switch .checkbox:not(:checked)+.knobs:after{opacity:0}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after{color:white;z-index:1}#bmi .tab2-item .switch .knobs:after{padding:0 12px}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .layer,#bmi .tab2-item .layer_str{width:100%;background-color:#d5d5d5;transition:0.3s ease all;z-index:1}#bmi .tab2-item .button-cover,#bmi .tab2-item .knobs,#bmi .tab2-item .layer,#bmi .tab2-item .layer_str{position:absolute;top:0;right:0;bottom:0;left:0}#bmi .tab2-item .switch.b2 .checkbox{position:relative;width:100%;height:100%;padding:0;margin:0;opacity:0;cursor:pointer;z-index:3;border:none}#bmi .tab2-item .title_whereStored{font-size:20px;font-weight:bold}#bmi .tab2-item .ml25{margin-left:25px}#bmi .tab2-item .switch .knobs span{left:48px;background-color:white;z-index:2}#bmi .tab2-item .switch .knobs:before,#bmi .tab2-item .switch .knobs:after,#bmi .tab2-item .switch .knobs span{position:absolute;top:6px;width:17px;height:17px;font-size:18px;font-weight:bold;text-align:center;line-height:1;padding:0 3px;border-radius:2px;transition:0.4s ease all}#bmi .tab2-item .switch .knobs span{padding:0;border-radius:50%;top:6px}#bmi .tab2-item .not_ready{position:absolute;left:0;width:100%;height:100%;background-color:#e5e5e5;opacity:0.7;border-radius:10px}#bmi .tab2-item .link-white:hover{text-decoration:underline;color:white}#bmi .tab2-item .link-white{color:white;text-decoration:none}#bmi .tab2-item .crown2{width:20px;height:20px;margin-left:7px;z-index:1}#bmi .tab2-item .d-flex .w100 .input-locally_web_server{width:100%;height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black}#bmi .tab2-item .w270{min-width:270px}#bmi .tab2-item:hover .bg_clock_day2{display:flex;justify-content:center;align-items:center}#bmi .tab2-item.activeList{color:white;background:#257671 !important;border-bottom-left-radius:0;border-bottom-right-radius:0}#bmi .tab2-item.activeList .switch .checkbox:checked ~ .layer_str{background-color:#154e4b}#bmi .tab2-item.activeList .bg_grey{background:#f8f8f8}#bmi .tab2-item.activeList .switch .checkbox:checked+.knobs:before,#bmi .tab2-item.activeList .switch .checkbox:not(:checked)+.knobs:after{opacity:0}#bmi .tab2-item.activeList .switch .checkbox:checked+.knobs span{left:7px;background-color:white}#bmi .container-radio input{position:absolute;opacity:0;cursor:pointer}#bmi .checkmark-radio{position:absolute;top:0;left:0;height:25px;width:25px;background-color:#fff;border:1px solid;border-radius:50%}#bmi .container-radio:hover input ~ .checkmark-radio{background-color:#cecece}#bmi .container-radio input:checked ~ .checkmark-radio{background-color:white;border:1px solid #257671}#bmi .checkmark-radio:after{content:"";position:absolute;display:none}#bmi .container-radio input:checked ~ .checkmark-radio:after{display:block}#bmi .container-radio .checkmark-radio:after{top:5px;left:5px;width:10px;height:10px;border-radius:50%;background:#257671}#bmi .container-checkbox .checkmark-checkbox:after{left:9px;top:5px;width:5px;height:10px;border:solid white;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#bmi .input-mar{margin:30px 0}#bmi .container-40{margin:0 40px}#bmi .container-36{margin:0 36px 0 40px}#bmi .container-55{margin:0 55px}#bmi .d-flex{display:flex}#bmi .w270{min-width:270px}#bmi .w100{width:100%}#bmi .pos-r{position:relative}#bmi .mt20{margin-top:20px}#bmi .pb30{padding-bottom:30px}#bmi .pt30{padding-top:30px}#bmi .bg_grey{background:#f8f8f8}#bmi .storage_target{overflow:hidden;min-width:100%}#bmi .input-file{width:100%;height:55px}#bmi .input-file-user{position:relative;height:55px;width:525px;font-size:14px}#bmi .input-file-user::placeholder{font-size:14px}#bmi .input-label-file{color:#aaaeb3;width:525px;height:55px;border:1px solid #d1d4d9;border-radius:10px;display:flex;align-items:center;padding:0 30px}#bmi #copy-password{height:45px;width:410px;border-radius:10px;border:1px solid #d1d4d9;text-align:left}#bmi #copy-url{height:45px;width:480px;border-radius:10px;border:1px solid #d1d4d9}#bmi #copy-key{height:45px;width:230px;border-radius:10px;border:1px solid #d1d4d9}#bmi .input-other{height:45px;width:255px;border-radius:10px;border:1px solid #d1d4d9}#bmi #creatingBackUp{height:55px;border:1px solid #c6c9cf;border-radius:10px;padding:0 30px}#bmi .creatingBackUp input[type=text]{display:flex;font-size:20px;text-align:left;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9}#bmi #backupsfile{border:1px dashed #a9a9a9;border-radius:10px;display:flex;justify-content:center}#bmi .drop{height:300px;display:flex;align-items:center;justify-content:center}#bmi .drop .dz-default{display:none}#bmi #textAreaCopy{height:230px;padding:25px;box-sizing:border-box;font-size:14px;color:#aaaaaa}#bmi .inprogressCreate{height:130px;padding:30px 40px;border:1px solid #aaaaaa;border-radius:10px;color:black;font-size:13px;overflow-y:auto}#bmi #text-areaSomeHick{height:240px;padding:25px;box-sizing:border-box;font-size:14px;color:#aaaaaa}#bmi #backupIsNowAccessible{height:51px;width:99%;border-radius:10px;border:1px solid #d1d4d9;text-align:left;padding-left:10px}#bmi .backupSuccess_link_container{display:flex;align-items:center;position:relative;margin:15px 70px 0}#bmi .input-config_set{width:280px;height:45px;border-radius:10px;padding-left:10px;text-align:left !important}#bmi .link_duplicate{color:#6bd5a0;margin:0 13px;text-decoration:none}#bmi .link_export{color:#0e80c9;margin:0 13px;text-decoration:none}#bmi .link_delete{color:#c20000;margin:0 13px;text-decoration:none}#bmi .d-flex .w100 .input-locally_web_server{width:100%;height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black}#bmi div .dropzone{position:relative;cursor:pointer;margin:20px 0;height:340px;border:2px dashed rgba(0,0,0,0.3);padding:20px;border-radius:20px;color:gray;background-color:#f9f9f9}#bmi .dropzone:hover{background:linear-gradient(90deg, #d1efe6, #e5f6f1)}#bmi .input-file-dropzone{opacity:0;width:100%;height:340px;position:absolute;top:0;left:0;cursor:pointer}#bmi .mt25{margin-top:25px}#bmi .mt16{margin-top:16px}#bmi .container-input{display:block;position:relative;padding-left:5px;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#bmi .custom-input{width:65px;height:45px;justify-content:center;align-items:center;border-radius:5px;border:1px solid #d1d4d9}#bmi .bg_grey .d-flex input[type=text]{margin:8px 10px}#bmi .d-flex input[type=text],#bmi .d-flex input[type=number],#bmi .d-flex input[type=email]{font-size:20px;text-align:center;justify-content:center;margin:8px 5px;box-sizing:border-box;border:1px solid #d1d4d9;border-radius:5px}#bmi .d-flex input[type=email]{font-size:17px}#bmi .d-flex input[type=text]:focus,#bmi .d-flex input[type=number]:focus,#bmi .d-flex input[type=email]:focus{box-shadow:none}#bmi .container-radio{display:block;position:relative;padding-left:35px;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:25px;line-height:25px;margin-top:5px}#bmi .mtf2{margin-top:2px}#bmi .mtf3{margin-top:3px}#bmi .checkmark-radio{position:absolute;top:0;left:0;height:20px;width:20px;background-color:#fff;border:1px solid;border-radius:50%}#bmi .tab2-img{width:35px;height:40px}#bmi .container-radio{opacity:0.5 !important;transition:.3s all}#bmi .container-radio.active{opacity:1 !important}#bmi .bmi-text-input{height:55px;border-radius:10px;margin:8px 0 !important;text-align:left !important;padding:0 20px;color:black;min-width:500px;border:1px solid #d1d4d9;box-shadow:0 !important;box-shadow:none !important;font-size:20px;text-align:center !important}#bmi .bmi-text-input.small{height:45px;line-height:45px;min-width:255px}#bmi #format-tip-wrp{margin-bottom:60px}#bmi .bmi-dropdown{display:inline-block;position:relative;border-radius:5px;border:1px solid #d1d4d9;background:#fff;font-size:18px;line-height:22px}#bmi .bmi-dropdown .dropdown-title{position:relative;padding:10px 8px;padding-right:30px;text-align:center;cursor:pointer}#bmi .bmi-dropdown .dropdown-title::before{content:'';position:absolute;border:solid #257671;border-width:0 3px 3px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg);right:10px;top:calc(50% - 6px);transition:.3s all}#bmi .bmi-dropdown .dropdown-title::after{content:'';position:absolute;border-left:1px solid #37b0a9;opacity:.3;height:26px;top:8px;right:29px;transition:.3s all}#bmi .dropdown-options{font-size:18px;line-height:22px;display:none;position:absolute;background:white;text-align:center;z-index:1000;min-width:100%;border:1px solid #257671;top:calc(100% + 8px);right:0;left:-1px;border-radius:5px;box-shadow:0px 0px 20px -5px rgba(0,0,0,0.4);overflow:auto;max-height:300px}#bmi .dropdown-options .active-option{position:relative;opacity:.6}#bmi .dropdown-options .active-option::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;cursor:not-allowed}#bmi .dropdown-options .dropdown-option{padding:10px 8px;white-space:nowrap;text-overflow:ellipsis;transition:.3s all;cursor:pointer}#bmi .dropdown-options .dropdown-option:not(.active-option):hover{background:#257671;color:white}#bmi .dropdown-options::before{content:'';position:absolute;left:0;right:0;margin:0 auto;top:-5px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:5px solid #257671}#bmi .bmi-dropdown.active{border-color:#257671}#bmi .bmi-dropdown.active .dropdown-title::before{transform:rotate(-135deg);-webkit-transform:rotate(-135deg);top:calc(50% - 3px)}#bmi .bmi-switch{position:relative;display:inline-block;width:70px;height:30px}#bmi .bmi-switch input{display:none}#bmi .bmi-switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#257671;-webkit-transition:0.4s;transition:0.4s}#bmi .bmi-switch-slider:before{position:absolute;content:"";height:17px;width:17px;left:6px;bottom:7px;background-color:white;-webkit-transition:0.4s;transition:0.4s}#bmi input:checked+.bmi-switch-slider{background-color:#d5d5d5}#bmi input:checked+.bmi-switch-slider:before{-webkit-transform:translateX(40px);-ms-transform:translateX(40px);transform:translateX(40px)}#bmi .off{opacity:0}#bmi .off,#bmi .on{font-size:18px;font-weight:bold;color:white;position:absolute;transform:translate(0, -50%);top:50%;transition:.3s all}#bmi .off{left:10px}#bmi .on{right:10px}#bmi input:checked+.bmi-switch-slider .off{opacity:1}#bmi input:checked+.bmi-switch-slider .on{opacity:0}#bmi .bmi-switch-slider.round{border-radius:15px}#bmi .bmi-switch-slider.round:before{border-radius:50%}#bmi .label_e50._bottom_ea7{border-top-left-radius:8px !important;border-top-right-radius:34px !important;min-width:300px}#bmi .label_e50{position:fixed;z-index:2147483648;-webkit-backface-visibility:hidden;backface-visibility:hidden;height:40px;box-shadow:0 12px 14px 8px rgba(0,0,0,0.17);filter:blur(0)}#bmi jdiv{-webkit-animation:0s none;animation:0s none;-webkit-backface-visibility:visible;backface-visibility:visible;background:none;border:0;box-shadow:none;box-sizing:content-box;bottom:auto;caption-side:top;clear:none;clip:auto;cursor:auto;display:inline;direction:ltr;flex:none;height:auto;-webkit-hyphens:manual;-ms-hyphens:manual;hyphens:manual;image-rendering:auto;justify-content:flex-start;left:auto;letter-spacing:normal;line-height:normal;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;-o-object-fit:fill;object-fit:fill;opacity:1;order:1;orphans:2;outline:0 none;overflow:visible;padding:0;perspective:none;position:static;resize:none;right:auto;text-align:left;text-decoration:none;text-indent:0;text-overflow:clip;text-shadow:none;text-transform:none;top:auto;transform:none;transition:all 0s ease 0s;unicode-bidi:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:baseline;white-space:normal;width:auto;word-break:normal;word-spacing:normal;word-wrap:normal;z-index:auto;zoom:normal;filter:none !important;font-weight:400;-webkit-text-size-adjust:inherit;-webkit-font-smoothing:antialiased;-webkit-text-fill-color:currentColor}#bmi .hoverl_bc6{cursor:pointer}#bmi .label_e50._bottom_ea7 .text_468._noAd_b4d,#bmi .label_e50._left_bba .text_468._noAd_b4d,#bmi .label_e50._right_56b .text_468._noAd_b4d{margin:0 33px 0 16px}#bmi .label_e50._bottom_ea7 .text_468,#bmi .label_e50._left_bba .text_468,#bmi .label_e50._right_56b .text_468{transform:translateZ(0);margin:0 37px 0 16px;min-width:160px;visibility:visible}#bmi .label_e50 .text_468{font:inherit;text-indent:0;line-height:40px;vertical-align:top;white-space:nowrap;-webkit-font-smoothing:antialiased;visibility:visible;-webkit-backface-visibility:hidden;backface-visibility:hidden}#bmi .contentTransitionWrap_c73{-webkit-animation-name:fadeIn_d9b;animation-name:fadeIn_d9b;-webkit-animation-duration:0.15s;animation-duration:0.15s;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-timing-function:ease;animation-timing-function:ease}#bmi .leaf_2cc{position:absolute;width:32px;height:33px;z-index:6;overflow:hidden}#bmi .leaf_2cc._bottom_afb,#bmi .leaf_2cc._left_7af,#bmi .leaf_2cc._right_ff0{right:0;top:0;width:33px;border-radius:0 24px 0 0 !important}#bmi .cssLeaf_464{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2240%22%20viewBox%3D%220%200%2032%2040%22%3E%0A%20%20%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%20%20%20%20%3Cpath%20fill%3D%22%23424867%22%20d%3D%22M0%200h9.02L32%2033.196V40H0z%22%2F%3E%0A%20%20%20%20%20%20%20%20%3Cpath%20fill%3D%22%2318C139%22%20d%3D%22M9%200c3.581.05%2023%205.426%2023%2033.08v.03C18.922%2030.751%209%2019.311%209%205.554V0z%22%2F%3E%0A%20%20%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A");position:absolute;height:33px;width:33px;left:1px}#bmi #bmi_support_chat *{cursor:pointer !important}#bmi #bmi_support_chat{cursor:pointer !important;opacity:1;transition:0.3s all}#bmi #bmi_support_chat:hover{opacity:0.9}#bmi *{outline:0}#bmi-preload{width:calc(50%);margin:0 auto;padding-right:20px;margin-top:50px}#bmi-preload .progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;background-clip:padding-box;margin:0.5rem 0 1rem 0;overflow:hidden}#bmi-preload .progress .determinate{position:absolute;background-color:inherit;top:0;bottom:0;background-color:#26a69a;transition:width .3s linear}#bmi-preload .progress .indeterminate{background-color:#26a69a}#bmi-preload .progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}#bmi-preload .progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.tooltipster-fall,.tooltipster-grow.tooltipster-show{-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);-moz-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-ms-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-o-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-base{display:flex;pointer-events:none;position:absolute}.tooltipster-box{flex:1 1 auto}.tooltipster-content{color:#333;box-sizing:border-box;max-height:100%;max-width:100%;overflow:hidden;line-height:21px !important}.tooltipster-ruler{bottom:0;left:0;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden}.tooltipster-fade{opacity:0;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;-ms-transition-property:opacity;transition-property:opacity}.tooltipster-fade.tooltipster-show{opacity:1}.tooltipster-grow{-webkit-transform:scale(0, 0);-moz-transform:scale(0, 0);-o-transform:scale(0, 0);-ms-transform:scale(0, 0);transform:scale(0, 0);-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-backface-visibility:hidden}.tooltipster-grow.tooltipster-show{-webkit-transform:scale(1, 1);-moz-transform:scale(1, 1);-o-transform:scale(1, 1);-ms-transform:scale(1, 1);transform:scale(1, 1);-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-swing{opacity:0;-webkit-transform:rotateZ(4deg);-moz-transform:rotateZ(4deg);-o-transform:rotateZ(4deg);-ms-transform:rotateZ(4deg);transform:rotateZ(4deg);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform}.tooltipster-swing.tooltipster-show{opacity:1;-webkit-transform:rotateZ(0);-moz-transform:rotateZ(0);-o-transform:rotateZ(0);-ms-transform:rotateZ(0);transform:rotateZ(0);-webkit-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 1);-webkit-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-moz-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-ms-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);-o-transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4);transition-timing-function:cubic-bezier(0.23, 0.635, 0.495, 2.4)}.tooltipster-fall{-webkit-transition-property:top;-moz-transition-property:top;-o-transition-property:top;-ms-transition-property:top;transition-property:top;-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-fall.tooltipster-initial{top:0 !important}.tooltipster-fall.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;top:0 !important;opacity:0}.tooltipster-slide{-webkit-transition-property:left;-moz-transition-property:left;-o-transition-property:left;-ms-transition-property:left;transition-property:left;-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);-webkit-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-moz-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-ms-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);-o-transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15);transition-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1.15)}.tooltipster-slide.tooltipster-initial{left:-40px !important}.tooltipster-slide.tooltipster-dying{-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;-ms-transition-property:all;transition-property:all;left:0 !important;opacity:0}@keyframes tooltipster-fading{0%{opacity:0}100%{opacity:1}}.tooltipster-update-fade{animation:tooltipster-fading 0.4s}@keyframes tooltipster-rotating{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}100%{transform:rotate(0)}}.tooltipster-update-rotate{animation:tooltipster-rotating 0.6s}@keyframes tooltipster-scaling{50%{transform:scale(1.1)}100%{transform:scale(1)}}.tooltipster-update-scale{animation:tooltipster-scaling 0.6s}.tooltipster-sidetip .tooltipster-box{background:#fff;border-radius:10px}.tooltipster-sidetip.tooltipster-bottom .tooltipster-box{margin-top:8px}.tooltipster-sidetip.tooltipster-left .tooltipster-box{margin-right:8px}.tooltipster-sidetip.tooltipster-right .tooltipster-box{margin-left:8px}.tooltipster-sidetip.tooltipster-top .tooltipster-box{margin-bottom:8px}.tooltipster-sidetip .tooltipster-content{border-radius:10px !important;font-size:15px;line-height:18px;padding:16px 20px !important;font-family:'Montserrat', sans-serif !important}.tooltipster-sidetip .tooltipster-arrow{overflow:hidden;position:absolute}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow{height:10px;margin-left:-10px;top:0;width:20px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow{height:20px;margin-top:-10px;right:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow{height:20px;margin-top:-10px;left:0;top:0;width:10px}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow{bottom:0;height:10px;margin-left:-10px;width:20px}.tooltipster-sidetip .tooltipster-arrow-background,.tooltipster-sidetip .tooltipster-arrow-border{height:0;position:absolute;width:0}.tooltipster-sidetip .tooltipster-arrow-background{border:10px solid transparent}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#fff;left:0;top:3px}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background{border-left-color:#fff;left:-3px;top:0}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background{border-right-color:#fff;left:3px;top:0}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background{border-top-color:#fff;left:0;top:-3px}.tooltipster-sidetip .tooltipster-arrow-border{border:10px solid transparent;left:0;top:0}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#fff}.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border{border-left-color:#fff}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border{border-right-color:#fff}.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border{border-top-color:#fff}.tooltipster-sidetip .tooltipster-arrow-uncropped{position:relative}.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped{top:-10px}.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped{left:-10px}.bmi-tt-default-customized .tooltipster-box{background:#2b8984 !important}.bmi-tt-default-customized .tooltipster-content{background:#2b8984 !important;color:white;padding:16px 20px !important;font-weight:500}.bmi-tt-default-customized.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-left .tooltipster-arrow-background{border-left-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-right .tooltipster-arrow-background{border-right-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-top .tooltipster-arrow-background{border-top-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-top .tooltipster-arrow-border{border-top-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-bottom .tooltipster-arrow-border{border-bottom-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-right .tooltipster-arrow-border{border-right-color:#2b8984 !important}.bmi-tt-default-customized.tooltipster-left .tooltipster-arrow-border{border-left-color:#2b8984 !important}.bmi-tooltip-premium-css{text-align:center;width:350px}.bmi-premium-element *{cursor:not-allowed !important;border-color:rgba(198,201,206,0.5) !important}.bmi-tt-default a{color:white !important}.bmi-tt-banner{width:350px}.bmi-tt-center{text-align:center}.bmi-info-icon{position:absolute;top:calc(50% - 8px);width:16px;height:16px;background:url("../images/info-min.png");display:inline-block;line-height:16px;background-repeat:no-repeat;background-position:center;background-size:cover;margin:0;margin-left:3px;cursor:help}#toplevel_page_backup-migration.current .wp-menu-image img{filter:brightness(0) invert(1) grayscale(1) !important;opacity:0.85 !important}
|
admin/images/alert_error-min.png
CHANGED
File without changes
|
admin/images/alert_info-min.png
CHANGED
File without changes
|
admin/images/alert_success-min.png
CHANGED
File without changes
|
admin/images/alert_warning-min.png
CHANGED
File without changes
|
admin/images/arrow-min.png
CHANGED
File without changes
|
admin/images/backup-min.svg
CHANGED
File without changes
|
admin/images/big_bg_clock_green-min.png
CHANGED
File without changes
|
admin/images/big_bg_clock_white-min.png
CHANGED
File without changes
|
admin/images/clocks-min.png
CHANGED
File without changes
|
admin/images/close-min.png
CHANGED
File without changes
|
admin/images/copy-icon.png
CHANGED
File without changes
|
admin/images/download-min.png
CHANGED
File without changes
|
admin/images/happy-smile.png
CHANGED
File without changes
|
admin/images/info-min.png
CHANGED
File without changes
|
admin/images/link-min.png
CHANGED
File without changes
|
admin/images/lock-experimental.png
CHANGED
File without changes
|
admin/images/lock-min.svg
CHANGED
File without changes
|
admin/images/log-min.svg
CHANGED
File without changes
|
admin/images/logo-min.png
CHANGED
File without changes
|
admin/images/logo.png
CHANGED
File without changes
|
admin/images/minimize-min.png
CHANGED
File without changes
|
admin/images/next-icon-min.png
CHANGED
File without changes
|
admin/images/premium.png
CHANGED
File without changes
|
admin/images/red-close-min.svg
CHANGED
File without changes
|
admin/images/restore-icon-min.png
CHANGED
File without changes
|
admin/images/restore-min.svg
CHANGED
File without changes
|
admin/images/search-min.png
CHANGED
File without changes
|
admin/images/stars.gif
CHANGED
File without changes
|
admin/images/timemachine.svg
CHANGED
File without changes
|
admin/images/unlocked-min.svg
CHANGED
File without changes
|
admin/images/upload-min.png
CHANGED
File without changes
|
admin/images/warning-grey.png
CHANGED
File without changes
|
admin/images/warning-red.png
CHANGED
File without changes
|
admin/js/backup-migration.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(t,e){"function"==typeof define&&define.amd?define(["jquery"],function(t){return e(t)}):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(0,function(t){var e={animation:"fade",animationDuration:350,content:null,contentAsHTML:!1,contentCloning:!1,debug:!0,delay:300,delayTouch:[300,500],functionInit:null,functionBefore:null,functionReady:null,functionAfter:null,functionFormat:null,IEmin:6,interactive:!1,multiple:!1,parent:null,plugins:["sideTip"],repositionOnScroll:!1,restoration:"none",selfDestruction:!0,theme:[],timer:0,trackerInterval:500,trackOrigin:!1,trackTooltip:!1,trigger:"hover",triggerClose:{click:!1,mouseleave:!1,originClick:!1,scroll:!1,tap:!1,touchleave:!1},triggerOpen:{click:!1,mouseenter:!1,tap:!1,touchstart:!1},updateAnimation:"rotate",zIndex:9999999},i="undefined"!=typeof window?window:null,o={hasTouchCapability:!(!i||!("ontouchstart"in i||i.DocumentTouch&&i.document instanceof i.DocumentTouch||i.navigator.maxTouchPoints)),hasTransitions:function(){if(!i)return!1;var t=(i.document.body||i.document.documentElement).style,e="transition",o=["Moz","Webkit","Khtml","O","ms"];if("string"==typeof t[e])return!0;e=e.charAt(0).toUpperCase()+e.substr(1);for(var n=0;n<o.length;n++)if("string"==typeof t[o[n]+e])return!0;return!1}(),IE:!1,semVer:"4.2.8",window:i},n=function(){this.__$emitterPrivate=t({}),this.__$emitterPublic=t({}),this.__instancesLatestArr=[],this.__plugins={},this._env=o};function s(t){this.$container,this.constraints=null,this.__$tooltip,this.__init(t)}function r(e,i){var o=!0;return t.each(e,function(t,n){if(void 0===i[t]||e[t]!==i[t])return o=!1,!1}),o}function a(e){var i=e.attr("id"),n=i?o.window.document.getElementById(i):null;return n?n===e[0]:t.contains(o.window.document.body,e[0])}n.prototype={__bridge:function(e,i,o){if(!i[o]){var n=function(){};n.prototype=e;var s=new n;s.__init&&s.__init(i),t.each(e,function(t,e){0!=t.indexOf("__")&&(i[t]||(i[t]=function(){return s[t].apply(s,Array.prototype.slice.apply(arguments))},i[t].bridged=s))}),i[o]=s}return this},__setWindow:function(t){return o.window=t,this},_getRuler:function(t){return new s(t)},_off:function(){return this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_on:function(){return this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_one:function(){return this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_plugin:function(e){if("string"==typeof e){var i=e,o=null;return i.indexOf(".")>0?o=this.__plugins[i]:t.each(this.__plugins,function(t,e){if(e.name.substring(e.name.length-i.length-1)=="."+i)return o=e,!1}),o}if(e.name.indexOf(".")<0)throw new Error("Plugins must be namespaced");return this.__plugins[e.name]=e,e.core&&this.__bridge(e.core,this,e.name),this},_trigger:function(){var t=Array.prototype.slice.apply(arguments);return"string"==typeof t[0]&&(t[0]={type:t[0]}),this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,t),this.__$emitterPublic.trigger.apply(this.__$emitterPublic,t),this},instances:function(e){var i=[];return t(e||".tooltipstered").each(function(){var e=t(this),o=e.data("tooltipster-ns");o&&t.each(o,function(t,o){i.push(e.data(o))})}),i},instancesLatest:function(){return this.__instancesLatestArr},off:function(){return this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},on:function(){return this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},one:function(){return this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},origins:function(e){return t((e?e+" ":"")+".tooltipstered").toArray()},setDefaults:function(i){return t.extend(e,i),this},triggerHandler:function(){return this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this}},t.tooltipster=new n,t.Tooltipster=function(e,i){this.__callbacks={close:[],open:[]},this.__closingTime,this.__Content,this.__contentBcr,this.__destroyed=!1,this.__$emitterPrivate=t({}),this.__$emitterPublic=t({}),this.__enabled=!0,this.__garbageCollector,this.__Geometry,this.__lastPosition,this.__namespace="tooltipster-"+Math.round(1e6*Math.random()),this.__options,this.__$originParents,this.__pointerIsOverOrigin=!1,this.__previousThemes=[],this.__state="closed",this.__timeouts={close:[],open:null},this.__touchEvents=[],this.__tracker=null,this._$origin,this._$tooltip,this.__init(e,i)},t.Tooltipster.prototype={__init:function(i,n){var s=this;if(s._$origin=t(i),s.__options=t.extend(!0,{},e,n),s.__optionsFormat(),!o.IE||o.IE>=s.__options.IEmin){var r=null;if(void 0===s._$origin.data("tooltipster-initialTitle")&&(void 0===(r=s._$origin.attr("title"))&&(r=null),s._$origin.data("tooltipster-initialTitle",r)),null!==s.__options.content)s.__contentSet(s.__options.content);else{var a,l=s._$origin.attr("data-tooltip-content");l&&(a=t(l)),a&&a[0]?s.__contentSet(a.first()):s.__contentSet(r)}s._$origin.removeAttr("title").addClass("tooltipstered"),s.__prepareOrigin(),s.__prepareGC(),t.each(s.__options.plugins,function(t,e){s._plug(e)}),o.hasTouchCapability&&t(o.window.document.body).on("touchmove."+s.__namespace+"-triggerOpen",function(t){s._touchRecordEvent(t)}),s._on("created",function(){s.__prepareTooltip()})._on("repositioned",function(t){s.__lastPosition=t.position})}else s.__options.disabled=!0},__contentInsert:function(){var t=this._$tooltip.find(".tooltipster-content"),e=this.__Content;return this._trigger({type:"format",content:this.__Content,format:function(t){e=t}}),this.__options.functionFormat&&(e=this.__options.functionFormat.call(this,this,{origin:this._$origin[0]},this.__Content)),"string"!=typeof e||this.__options.contentAsHTML?t.empty().append(e):t.text(e),this},__contentSet:function(e){return e instanceof t&&this.__options.contentCloning&&(e=e.clone(!0)),this.__Content=e,this._trigger({type:"updated",content:e}),this},__destroyError:function(){throw new Error("This tooltip has been destroyed and cannot execute your method call.")},__geometry:function(){var e=this._$origin,i=this._$origin.is("area");if(i){var n=this._$origin.parent().attr("name");e=t('img[usemap="#'+n+'"]')}var s=e[0].getBoundingClientRect(),r=t(o.window.document),a=t(o.window),l=e,c={available:{document:null,window:null},document:{size:{height:r.height(),width:r.width()}},window:{scroll:{left:o.window.scrollX||o.window.document.documentElement.scrollLeft,top:o.window.scrollY||o.window.document.documentElement.scrollTop},size:{height:a.height(),width:a.width()}},origin:{fixedLineage:!1,offset:{},size:{height:s.bottom-s.top,width:s.right-s.left},usemapImage:i?e[0]:null,windowOffset:{bottom:s.bottom,left:s.left,right:s.right,top:s.top}}};if(i){var u=this._$origin.attr("shape"),p=this._$origin.attr("coords");if(p&&(p=p.split(","),t.map(p,function(t,e){p[e]=parseInt(t)})),"default"!=u)switch(u){case"circle":var d=p[0],_=p[1],f=p[2],h=_-f,m=d-f;c.origin.size.height=2*f,c.origin.size.width=c.origin.size.height,c.origin.windowOffset.left+=m,c.origin.windowOffset.top+=h;break;case"rect":var g=p[0],b=p[1],w=p[2],v=p[3];c.origin.size.height=v-b,c.origin.size.width=w-g,c.origin.windowOffset.left+=g,c.origin.windowOffset.top+=b;break;case"poly":for(var y=0,k=0,x=0,C=0,$="even",T=0;T<p.length;T++){var I=p[T];"even"==$?(I>x&&(x=I,0===T&&(y=x)),I<y&&(y=I),$="odd"):(I>C&&(C=I,1==T&&(k=C)),I<k&&(k=I),$="even")}c.origin.size.height=C-k,c.origin.size.width=x-y,c.origin.windowOffset.left+=y,c.origin.windowOffset.top+=k}}for(this._trigger({type:"geometry",edit:function(t){c.origin.size.height=t.height,c.origin.windowOffset.left=t.left,c.origin.windowOffset.top=t.top,c.origin.size.width=t.width},geometry:{height:c.origin.size.height,left:c.origin.windowOffset.left,top:c.origin.windowOffset.top,width:c.origin.size.width}}),c.origin.windowOffset.right=c.origin.windowOffset.left+c.origin.size.width,c.origin.windowOffset.bottom=c.origin.windowOffset.top+c.origin.size.height,c.origin.offset.left=c.origin.windowOffset.left+c.window.scroll.left,c.origin.offset.top=c.origin.windowOffset.top+c.window.scroll.top,c.origin.offset.bottom=c.origin.offset.top+c.origin.size.height,c.origin.offset.right=c.origin.offset.left+c.origin.size.width,c.available.document={bottom:{height:c.document.size.height-c.origin.offset.bottom,width:c.document.size.width},left:{height:c.document.size.height,width:c.origin.offset.left},right:{height:c.document.size.height,width:c.document.size.width-c.origin.offset.right},top:{height:c.origin.offset.top,width:c.document.size.width}},c.available.window={bottom:{height:Math.max(c.window.size.height-Math.max(c.origin.windowOffset.bottom,0),0),width:c.window.size.width},left:{height:c.window.size.height,width:Math.max(c.origin.windowOffset.left,0)},right:{height:c.window.size.height,width:Math.max(c.window.size.width-Math.max(c.origin.windowOffset.right,0),0)},top:{height:Math.max(c.origin.windowOffset.top,0),width:c.window.size.width}};"html"!=l[0].tagName.toLowerCase();){if("fixed"==l.css("position")){c.origin.fixedLineage=!0;break}l=l.parent()}return c},__optionsFormat:function(){return"number"==typeof this.__options.animationDuration&&(this.__options.animationDuration=[this.__options.animationDuration,this.__options.animationDuration]),"number"==typeof this.__options.delay&&(this.__options.delay=[this.__options.delay,this.__options.delay]),"number"==typeof this.__options.delayTouch&&(this.__options.delayTouch=[this.__options.delayTouch,this.__options.delayTouch]),"string"==typeof this.__options.theme&&(this.__options.theme=[this.__options.theme]),null===this.__options.parent?this.__options.parent=t(o.window.document.body):"string"==typeof this.__options.parent&&(this.__options.parent=t(this.__options.parent)),"hover"==this.__options.trigger?(this.__options.triggerOpen={mouseenter:!0,touchstart:!0},this.__options.triggerClose={mouseleave:!0,originClick:!0,touchleave:!0}):"click"==this.__options.trigger&&(this.__options.triggerOpen={click:!0,tap:!0},this.__options.triggerClose={click:!0,tap:!0}),this._trigger("options"),this},__prepareGC:function(){var e=this;return e.__options.selfDestruction?e.__garbageCollector=setInterval(function(){var i=(new Date).getTime();e.__touchEvents=t.grep(e.__touchEvents,function(t,e){return i-t.time>6e4}),a(e._$origin)||e.close(function(){e.destroy()})},2e4):clearInterval(e.__garbageCollector),e},__prepareOrigin:function(){var t=this;if(t._$origin.off("."+t.__namespace+"-triggerOpen"),o.hasTouchCapability&&t._$origin.on("touchstart."+t.__namespace+"-triggerOpen touchend."+t.__namespace+"-triggerOpen touchcancel."+t.__namespace+"-triggerOpen",function(e){t._touchRecordEvent(e)}),t.__options.triggerOpen.click||t.__options.triggerOpen.tap&&o.hasTouchCapability){var e="";t.__options.triggerOpen.click&&(e+="click."+t.__namespace+"-triggerOpen "),t.__options.triggerOpen.tap&&o.hasTouchCapability&&(e+="touchend."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){t._touchIsMeaningfulEvent(e)&&t._open(e)})}if(t.__options.triggerOpen.mouseenter||t.__options.triggerOpen.touchstart&&o.hasTouchCapability){e="";t.__options.triggerOpen.mouseenter&&(e+="mouseenter."+t.__namespace+"-triggerOpen "),t.__options.triggerOpen.touchstart&&o.hasTouchCapability&&(e+="touchstart."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){!t._touchIsTouchEvent(e)&&t._touchIsEmulatedEvent(e)||(t.__pointerIsOverOrigin=!0,t._openShortly(e))})}if(t.__options.triggerClose.mouseleave||t.__options.triggerClose.touchleave&&o.hasTouchCapability){e="";t.__options.triggerClose.mouseleave&&(e+="mouseleave."+t.__namespace+"-triggerOpen "),t.__options.triggerClose.touchleave&&o.hasTouchCapability&&(e+="touchend."+t.__namespace+"-triggerOpen touchcancel."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){t._touchIsMeaningfulEvent(e)&&(t.__pointerIsOverOrigin=!1)})}return t},__prepareTooltip:function(){var e=this,i=e.__options.interactive?"auto":"";return e._$tooltip.attr("id",e.__namespace).css({"pointer-events":i,zIndex:e.__options.zIndex}),t.each(e.__previousThemes,function(t,i){e._$tooltip.removeClass(i)}),t.each(e.__options.theme,function(t,i){e._$tooltip.addClass(i)}),e.__previousThemes=t.merge([],e.__options.theme),e},__scrollHandler:function(e){if(this.__options.triggerClose.scroll)this._close(e);else if(a(this._$origin)&&a(this._$tooltip)){var i=null;if(e.target===o.window.document)this.__Geometry.origin.fixedLineage||this.__options.repositionOnScroll&&this.reposition(e);else{i=this.__geometry();var n=!1;if("fixed"!=this._$origin.css("position")&&this.__$originParents.each(function(e,o){var s=t(o),r=s.css("overflow-x"),a=s.css("overflow-y");if("visible"!=r||"visible"!=a){var l=o.getBoundingClientRect();if("visible"!=r&&(i.origin.windowOffset.left<l.left||i.origin.windowOffset.right>l.right))return n=!0,!1;if("visible"!=a&&(i.origin.windowOffset.top<l.top||i.origin.windowOffset.bottom>l.bottom))return n=!0,!1}if("fixed"==s.css("position"))return!1}),n)this._$tooltip.css("visibility","hidden");else if(this._$tooltip.css("visibility","visible"),this.__options.repositionOnScroll)this.reposition(e);else{var s=i.origin.offset.left-this.__Geometry.origin.offset.left,r=i.origin.offset.top-this.__Geometry.origin.offset.top;this._$tooltip.css({left:this.__lastPosition.coord.left+s,top:this.__lastPosition.coord.top+r})}}this._trigger({type:"scroll",event:e,geo:i})}return this},__stateSet:function(t){return this.__state=t,this._trigger({type:"state",state:t}),this},__timeoutsClear:function(){return clearTimeout(this.__timeouts.open),this.__timeouts.open=null,t.each(this.__timeouts.close,function(t,e){clearTimeout(e)}),this.__timeouts.close=[],this},__trackerStart:function(){var t=this,e=t._$tooltip.find(".tooltipster-content");return t.__options.trackTooltip&&(t.__contentBcr=e[0].getBoundingClientRect()),t.__tracker=setInterval(function(){if(a(t._$origin)&&a(t._$tooltip)){if(t.__options.trackOrigin){var i=t.__geometry(),o=!1;r(i.origin.size,t.__Geometry.origin.size)&&(t.__Geometry.origin.fixedLineage?r(i.origin.windowOffset,t.__Geometry.origin.windowOffset)&&(o=!0):r(i.origin.offset,t.__Geometry.origin.offset)&&(o=!0)),o||(t.__options.triggerClose.mouseleave?t._close():t.reposition())}if(t.__options.trackTooltip){var n=e[0].getBoundingClientRect();n.height===t.__contentBcr.height&&n.width===t.__contentBcr.width||(t.reposition(),t.__contentBcr=n)}}else t._close()},t.__options.trackerInterval),t},_close:function(e,i,n){var s=this,r=!0;if(s._trigger({type:"close",event:e,stop:function(){r=!1}}),r||n){i&&s.__callbacks.close.push(i),s.__callbacks.open=[],s.__timeoutsClear();var a=function(){t.each(s.__callbacks.close,function(t,i){i.call(s,s,{event:e,origin:s._$origin[0]})}),s.__callbacks.close=[]};if("closed"!=s.__state){var l=!0,c=(new Date).getTime()+s.__options.animationDuration[1];if("disappearing"==s.__state&&c>s.__closingTime&&s.__options.animationDuration[1]>0&&(l=!1),l){s.__closingTime=c,"disappearing"!=s.__state&&s.__stateSet("disappearing");var u=function(){clearInterval(s.__tracker),s._trigger({type:"closing",event:e}),s._$tooltip.off("."+s.__namespace+"-triggerClose").removeClass("tooltipster-dying"),t(o.window).off("."+s.__namespace+"-triggerClose"),s.__$originParents.each(function(e,i){t(i).off("scroll."+s.__namespace+"-triggerClose")}),s.__$originParents=null,t(o.window.document.body).off("."+s.__namespace+"-triggerClose"),s._$origin.off("."+s.__namespace+"-triggerClose"),s._off("dismissable"),s.__stateSet("closed"),s._trigger({type:"after",event:e}),s.__options.functionAfter&&s.__options.functionAfter.call(s,s,{event:e,origin:s._$origin[0]}),a()};o.hasTransitions?(s._$tooltip.css({"-moz-animation-duration":s.__options.animationDuration[1]+"ms","-ms-animation-duration":s.__options.animationDuration[1]+"ms","-o-animation-duration":s.__options.animationDuration[1]+"ms","-webkit-animation-duration":s.__options.animationDuration[1]+"ms","animation-duration":s.__options.animationDuration[1]+"ms","transition-duration":s.__options.animationDuration[1]+"ms"}),s._$tooltip.clearQueue().removeClass("tooltipster-show").addClass("tooltipster-dying"),s.__options.animationDuration[1]>0&&s._$tooltip.delay(s.__options.animationDuration[1]),s._$tooltip.queue(u)):s._$tooltip.stop().fadeOut(s.__options.animationDuration[1],u)}}else a()}return s},_off:function(){return this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_on:function(){return this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_one:function(){return this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_open:function(e,i){var n=this;if(!n.__destroying&&a(n._$origin)&&n.__enabled){var s=!0;if("closed"==n.__state&&(n._trigger({type:"before",event:e,stop:function(){s=!1}}),s&&n.__options.functionBefore&&(s=n.__options.functionBefore.call(n,n,{event:e,origin:n._$origin[0]}))),!1!==s&&null!==n.__Content){i&&n.__callbacks.open.push(i),n.__callbacks.close=[],n.__timeoutsClear();var r,l=function(){"stable"!=n.__state&&n.__stateSet("stable"),t.each(n.__callbacks.open,function(t,e){e.call(n,n,{origin:n._$origin[0],tooltip:n._$tooltip[0]})}),n.__callbacks.open=[]};if("closed"!==n.__state)r=0,"disappearing"===n.__state?(n.__stateSet("appearing"),o.hasTransitions?(n._$tooltip.clearQueue().removeClass("tooltipster-dying").addClass("tooltipster-show"),n.__options.animationDuration[0]>0&&n._$tooltip.delay(n.__options.animationDuration[0]),n._$tooltip.queue(l)):n._$tooltip.stop().fadeIn(l)):"stable"==n.__state&&l();else{if(n.__stateSet("appearing"),r=n.__options.animationDuration[0],n.__contentInsert(),n.reposition(e,!0),o.hasTransitions?(n._$tooltip.addClass("tooltipster-"+n.__options.animation).addClass("tooltipster-initial").css({"-moz-animation-duration":n.__options.animationDuration[0]+"ms","-ms-animation-duration":n.__options.animationDuration[0]+"ms","-o-animation-duration":n.__options.animationDuration[0]+"ms","-webkit-animation-duration":n.__options.animationDuration[0]+"ms","animation-duration":n.__options.animationDuration[0]+"ms","transition-duration":n.__options.animationDuration[0]+"ms"}),setTimeout(function(){"closed"!=n.__state&&(n._$tooltip.addClass("tooltipster-show").removeClass("tooltipster-initial"),n.__options.animationDuration[0]>0&&n._$tooltip.delay(n.__options.animationDuration[0]),n._$tooltip.queue(l))},0)):n._$tooltip.css("display","none").fadeIn(n.__options.animationDuration[0],l),n.__trackerStart(),t(o.window).on("resize."+n.__namespace+"-triggerClose",function(e){var i=t(document.activeElement);(i.is("input")||i.is("textarea"))&&t.contains(n._$tooltip[0],i[0])||n.reposition(e)}).on("scroll."+n.__namespace+"-triggerClose",function(t){n.__scrollHandler(t)}),n.__$originParents=n._$origin.parents(),n.__$originParents.each(function(e,i){t(i).on("scroll."+n.__namespace+"-triggerClose",function(t){n.__scrollHandler(t)})}),n.__options.triggerClose.mouseleave||n.__options.triggerClose.touchleave&&o.hasTouchCapability){n._on("dismissable",function(t){t.dismissable?t.delay?(d=setTimeout(function(){n._close(t.event)},t.delay),n.__timeouts.close.push(d)):n._close(t):clearTimeout(d)});var c=n._$origin,u="",p="",d=null;n.__options.interactive&&(c=c.add(n._$tooltip)),n.__options.triggerClose.mouseleave&&(u+="mouseenter."+n.__namespace+"-triggerClose ",p+="mouseleave."+n.__namespace+"-triggerClose "),n.__options.triggerClose.touchleave&&o.hasTouchCapability&&(u+="touchstart."+n.__namespace+"-triggerClose",p+="touchend."+n.__namespace+"-triggerClose touchcancel."+n.__namespace+"-triggerClose"),c.on(p,function(t){if(n._touchIsTouchEvent(t)||!n._touchIsEmulatedEvent(t)){var e="mouseleave"==t.type?n.__options.delay:n.__options.delayTouch;n._trigger({delay:e[1],dismissable:!0,event:t,type:"dismissable"})}}).on(u,function(t){!n._touchIsTouchEvent(t)&&n._touchIsEmulatedEvent(t)||n._trigger({dismissable:!1,event:t,type:"dismissable"})})}n.__options.triggerClose.originClick&&n._$origin.on("click."+n.__namespace+"-triggerClose",function(t){n._touchIsTouchEvent(t)||n._touchIsEmulatedEvent(t)||n._close(t)}),(n.__options.triggerClose.click||n.__options.triggerClose.tap&&o.hasTouchCapability)&&setTimeout(function(){if("closed"!=n.__state){var e="",i=t(o.window.document.body);n.__options.triggerClose.click&&(e+="click."+n.__namespace+"-triggerClose "),n.__options.triggerClose.tap&&o.hasTouchCapability&&(e+="touchend."+n.__namespace+"-triggerClose"),i.on(e,function(e){n._touchIsMeaningfulEvent(e)&&(n._touchRecordEvent(e),n.__options.interactive&&t.contains(n._$tooltip[0],e.target)||n._close(e))}),n.__options.triggerClose.tap&&o.hasTouchCapability&&i.on("touchstart."+n.__namespace+"-triggerClose",function(t){n._touchRecordEvent(t)})}},0),n._trigger("ready"),n.__options.functionReady&&n.__options.functionReady.call(n,n,{origin:n._$origin[0],tooltip:n._$tooltip[0]})}if(n.__options.timer>0){d=setTimeout(function(){n._close()},n.__options.timer+r);n.__timeouts.close.push(d)}}}return n},_openShortly:function(t){var e=this,i=!0;if("stable"!=e.__state&&"appearing"!=e.__state&&!e.__timeouts.open&&(e._trigger({type:"start",event:t,stop:function(){i=!1}}),i)){var o=0==t.type.indexOf("touch")?e.__options.delayTouch:e.__options.delay;o[0]?e.__timeouts.open=setTimeout(function(){e.__timeouts.open=null,e.__pointerIsOverOrigin&&e._touchIsMeaningfulEvent(t)?(e._trigger("startend"),e._open(t)):e._trigger("startcancel")},o[0]):(e._trigger("startend"),e._open(t))}return e},_optionsExtract:function(e,i){var o=this,n=t.extend(!0,{},i),s=o.__options[e];return s||(s={},t.each(i,function(t,e){var i=o.__options[t];void 0!==i&&(s[t]=i)})),t.each(n,function(e,i){void 0!==s[e]&&("object"!=typeof i||i instanceof Array||null==i||"object"!=typeof s[e]||s[e]instanceof Array||null==s[e]?n[e]=s[e]:t.extend(n[e],s[e]))}),n},_plug:function(e){var i=t.tooltipster._plugin(e);if(!i)throw new Error('The "'+e+'" plugin is not defined');return i.instance&&t.tooltipster.__bridge(i.instance,this,i.name),this},_touchIsEmulatedEvent:function(t){for(var e=!1,i=(new Date).getTime(),o=this.__touchEvents.length-1;o>=0;o--){var n=this.__touchEvents[o];if(!(i-n.time<500))break;n.target===t.target&&(e=!0)}return e},_touchIsMeaningfulEvent:function(t){return this._touchIsTouchEvent(t)&&!this._touchSwiped(t.target)||!this._touchIsTouchEvent(t)&&!this._touchIsEmulatedEvent(t)},_touchIsTouchEvent:function(t){return 0==t.type.indexOf("touch")},_touchRecordEvent:function(t){return this._touchIsTouchEvent(t)&&(t.time=(new Date).getTime(),this.__touchEvents.push(t)),this},_touchSwiped:function(t){for(var e=!1,i=this.__touchEvents.length-1;i>=0;i--){var o=this.__touchEvents[i];if("touchmove"==o.type){e=!0;break}if("touchstart"==o.type&&t===o.target)break}return e},_trigger:function(){var e=Array.prototype.slice.apply(arguments);return"string"==typeof e[0]&&(e[0]={type:e[0]}),e[0].instance=this,e[0].origin=this._$origin?this._$origin[0]:null,e[0].tooltip=this._$tooltip?this._$tooltip[0]:null,this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,e),t.tooltipster._trigger.apply(t.tooltipster,e),this.__$emitterPublic.trigger.apply(this.__$emitterPublic,e),this},_unplug:function(e){var i=this;if(i[e]){var o=t.tooltipster._plugin(e);o.instance&&t.each(o.instance,function(t,o){i[t]&&i[t].bridged===i[e]&&delete i[t]}),i[e].__destroy&&i[e].__destroy(),delete i[e]}return i},close:function(t){return this.__destroyed?this.__destroyError():this._close(null,t),this},content:function(t){var e=this;if(void 0===t)return e.__Content;if(e.__destroyed)e.__destroyError();else if(e.__contentSet(t),null!==e.__Content){if("closed"!==e.__state&&(e.__contentInsert(),e.reposition(),e.__options.updateAnimation))if(o.hasTransitions){var i=e.__options.updateAnimation;e._$tooltip.addClass("tooltipster-update-"+i),setTimeout(function(){"closed"!=e.__state&&e._$tooltip.removeClass("tooltipster-update-"+i)},1e3)}else e._$tooltip.fadeTo(200,.5,function(){"closed"!=e.__state&&e._$tooltip.fadeTo(200,1)})}else e._close();return e},destroy:function(){var e=this;if(e.__destroyed)e.__destroyError();else{"closed"!=e.__state?e.option("animationDuration",0)._close(null,null,!0):e.__timeoutsClear(),e._trigger("destroy"),e.__destroyed=!0,e._$origin.removeData(e.__namespace).off("."+e.__namespace+"-triggerOpen"),t(o.window.document.body).off("."+e.__namespace+"-triggerOpen");var i=e._$origin.data("tooltipster-ns");if(i)if(1===i.length){var n=null;"previous"==e.__options.restoration?n=e._$origin.data("tooltipster-initialTitle"):"current"==e.__options.restoration&&(n="string"==typeof e.__Content?e.__Content:t("<div></div>").append(e.__Content).html()),n&&e._$origin.attr("title",n),e._$origin.removeClass("tooltipstered"),e._$origin.removeData("tooltipster-ns").removeData("tooltipster-initialTitle")}else i=t.grep(i,function(t,i){return t!==e.__namespace}),e._$origin.data("tooltipster-ns",i);e._trigger("destroyed"),e._off(),e.off(),e.__Content=null,e.__$emitterPrivate=null,e.__$emitterPublic=null,e.__options.parent=null,e._$origin=null,e._$tooltip=null,t.tooltipster.__instancesLatestArr=t.grep(t.tooltipster.__instancesLatestArr,function(t,i){return e!==t}),clearInterval(e.__garbageCollector)}return e},disable:function(){return this.__destroyed?(this.__destroyError(),this):(this._close(),this.__enabled=!1,this)},elementOrigin:function(){if(!this.__destroyed)return this._$origin[0];this.__destroyError()},elementTooltip:function(){return this._$tooltip?this._$tooltip[0]:null},enable:function(){return this.__enabled=!0,this},hide:function(t){return this.close(t)},instance:function(){return this},off:function(){return this.__destroyed||this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},on:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},one:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},open:function(t){return this.__destroyed?this.__destroyError():this._open(null,t),this},option:function(e,i){return void 0===i?this.__options[e]:(this.__destroyed?this.__destroyError():(this.__options[e]=i,this.__optionsFormat(),t.inArray(e,["trigger","triggerClose","triggerOpen"])>=0&&this.__prepareOrigin(),"selfDestruction"===e&&this.__prepareGC()),this)},reposition:function(t,e){return this.__destroyed?this.__destroyError():"closed"!=this.__state&&a(this._$origin)&&(e||a(this._$tooltip))&&(e||this._$tooltip.detach(),this.__Geometry=this.__geometry(),this._trigger({type:"reposition",event:t,helper:{geo:this.__Geometry}})),this},show:function(t){return this.open(t)},status:function(){return{destroyed:this.__destroyed,enabled:this.__enabled,open:"closed"!==this.__state,state:this.__state}},triggerHandler:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this}},t.fn.tooltipster=function(){var i=Array.prototype.slice.apply(arguments);if(0===this.length)return this;if("string"==typeof i[0]){var o="#*$~&";return this.each(function(){var e=t(this).data("tooltipster-ns"),n=e?t(this).data(e[0]):null;if(!n)throw new Error("You called Tooltipster's \""+i[0]+'" method on an uninitialized element');if("function"!=typeof n[i[0]])throw new Error('Unknown method "'+i[0]+'"');this.length>1&&"content"==i[0]&&(i[1]instanceof t||"object"==typeof i[1]&&null!=i[1]&&i[1].tagName)&&!n.__options.contentCloning&&n.__options.debug;var s=n[i[0]](i[1],i[2]);if(s!==n||"instance"===i[0])return o=s,!1}),"#*$~&"!==o?o:this}t.tooltipster.__instancesLatestArr=[];var n=i[0]&&void 0!==i[0].multiple,s=n&&i[0].multiple||!n&&e.multiple,r=i[0]&&void 0!==i[0].content,a=r&&i[0].content||!r&&e.content,l=i[0]&&void 0!==i[0].contentCloning,c=(l&&i[0].contentCloning,i[0]&&void 0!==i[0].debug);c&&i[0].debug;return this.length>1&&(a instanceof t||"object"==typeof a&&null!=a&&a.tagName),this.each(function(){var e=!1,o=t(this),n=o.data("tooltipster-ns"),r=null;n?s&&(e=!0):e=!0,e&&(r=new t.Tooltipster(this,i[0]),n||(n=[]),n.push(r.__namespace),o.data("tooltipster-ns",n),o.data(r.__namespace,r),r.__options.functionInit&&r.__options.functionInit.call(r,r,{origin:this}),r._trigger("init")),t.tooltipster.__instancesLatestArr.push(r)}),this},s.prototype={__init:function(e){this.__$tooltip=e,this.__$tooltip.css({left:0,overflow:"hidden",position:"absolute",top:0}).find(".tooltipster-content").css("overflow","auto"),this.$container=t('<div class="tooltipster-ruler"></div>').append(this.__$tooltip).appendTo(o.window.document.body)},__forceRedraw:function(){var t=this.__$tooltip.parent();this.__$tooltip.detach(),this.__$tooltip.appendTo(t)},constrain:function(t,e){return this.constraints={width:t,height:e},this.__$tooltip.css({display:"block",height:"",overflow:"auto",width:t}),this},destroy:function(){this.__$tooltip.detach().find(".tooltipster-content").css({display:"",overflow:""}),this.$container.remove()},free:function(){return this.constraints=null,this.__$tooltip.css({display:"",height:"",overflow:"visible",width:""}),this},measure:function(){this.__forceRedraw();var t=this.__$tooltip[0].getBoundingClientRect(),e={size:{height:t.height||t.bottom-t.top,width:t.width||t.right-t.left}};if(this.constraints){var i=this.__$tooltip.find(".tooltipster-content"),n=this.__$tooltip.outerHeight(),s=i[0].getBoundingClientRect(),r={height:n<=this.constraints.height,width:t.width<=this.constraints.width&&s.width>=i[0].scrollWidth-1};e.fits=r.height&&r.width}return o.IE&&o.IE<=11&&e.size.width!==o.window.document.documentElement.clientWidth&&(e.size.width=Math.ceil(e.size.width)+1),e}};var l=navigator.userAgent.toLowerCase();-1!=l.indexOf("msie")?o.IE=parseInt(l.split("msie")[1]):-1!==l.toLowerCase().indexOf("trident")&&-1!==l.indexOf(" rv:11")?o.IE=11:-1!=l.toLowerCase().indexOf("edge/")&&(o.IE=parseInt(l.toLowerCase().split("edge/")[1])),t.tooltipster._plugin({name:"tooltipster.sideTip",instance:{__defaults:function(){return{arrow:!0,distance:6,functionPosition:null,maxWidth:null,minIntersection:16,minWidth:0,position:null,side:"top",viewportAware:!0}},__init:function(t){var e=this;e.__instance=t,e.__namespace="tooltipster-sideTip-"+Math.round(1e6*Math.random()),e.__previousState="closed",e.__options,e.__optionsFormat(),e.__instance._on("state."+e.__namespace,function(t){"closed"==t.state?e.__close():"appearing"==t.state&&"closed"==e.__previousState&&e.__create(),e.__previousState=t.state}),e.__instance._on("options."+e.__namespace,function(){e.__optionsFormat()}),e.__instance._on("reposition."+e.__namespace,function(t){e.__reposition(t.event,t.helper)})},__close:function(){this.__instance.content()instanceof t&&this.__instance.content().detach(),this.__instance._$tooltip.remove(),this.__instance._$tooltip=null},__create:function(){var e=t('<div class="tooltipster-base tooltipster-sidetip"><div class="tooltipster-box"><div class="tooltipster-content"></div></div><div class="tooltipster-arrow"><div class="tooltipster-arrow-uncropped"><div class="tooltipster-arrow-border"></div><div class="tooltipster-arrow-background"></div></div></div></div>');this.__options.arrow||e.find(".tooltipster-box").css("margin",0).end().find(".tooltipster-arrow").hide(),this.__options.minWidth&&e.css("min-width",this.__options.minWidth+"px"),this.__options.maxWidth&&e.css("max-width",this.__options.maxWidth+"px"),this.__instance._$tooltip=e,this.__instance._trigger("created")},__destroy:function(){this.__instance._off("."+self.__namespace)},__optionsFormat:function(){if(this.__options=this.__instance._optionsExtract("tooltipster.sideTip",this.__defaults()),this.__options.position&&(this.__options.side=this.__options.position),"object"!=typeof this.__options.distance&&(this.__options.distance=[this.__options.distance]),this.__options.distance.length<4&&(void 0===this.__options.distance[1]&&(this.__options.distance[1]=this.__options.distance[0]),void 0===this.__options.distance[2]&&(this.__options.distance[2]=this.__options.distance[0]),void 0===this.__options.distance[3]&&(this.__options.distance[3]=this.__options.distance[1])),this.__options.distance={top:this.__options.distance[0],right:this.__options.distance[1],bottom:this.__options.distance[2],left:this.__options.distance[3]},"string"==typeof this.__options.side){this.__options.side=[this.__options.side,{top:"bottom",right:"left",bottom:"top",left:"right"}[this.__options.side]],"left"==this.__options.side[0]||"right"==this.__options.side[0]?this.__options.side.push("top","bottom"):this.__options.side.push("right","left")}6===t.tooltipster._env.IE&&!0!==this.__options.arrow&&(this.__options.arrow=!1)},__reposition:function(e,i){var o,n=this,s=n.__targetFind(i),r=[];n.__instance._$tooltip.detach();var a=n.__instance._$tooltip.clone(),l=t.tooltipster._getRuler(a),c=!1,u=n.__instance.option("animation");switch(u&&a.removeClass("tooltipster-"+u),t.each(["window","document"],function(o,u){var p=null;if(n.__instance._trigger({container:u,helper:i,satisfied:c,takeTest:function(t){p=t},results:r,type:"positionTest"}),1==p||0!=p&&0==c&&("window"!=u||n.__options.viewportAware))for(o=0;o<n.__options.side.length;o++){var d={horizontal:0,vertical:0},_=n.__options.side[o];"top"==_||"bottom"==_?d.vertical=n.__options.distance[_]:d.horizontal=n.__options.distance[_],n.__sideChange(a,_),t.each(["natural","constrained"],function(t,o){if(p=null,n.__instance._trigger({container:u,event:e,helper:i,mode:o,results:r,satisfied:c,side:_,takeTest:function(t){p=t},type:"positionTest"}),1==p||0!=p&&0==c){var a={container:u,distance:d,fits:null,mode:o,outerSize:null,side:_,size:null,target:s[_],whole:null},f=("natural"==o?l.free():l.constrain(i.geo.available[u][_].width-d.horizontal,i.geo.available[u][_].height-d.vertical)).measure();if(a.size=f.size,a.outerSize={height:f.size.height+d.vertical,width:f.size.width+d.horizontal},"natural"==o?i.geo.available[u][_].width>=a.outerSize.width&&i.geo.available[u][_].height>=a.outerSize.height?a.fits=!0:a.fits=!1:a.fits=f.fits,"window"==u&&(a.fits?a.whole="top"==_||"bottom"==_?i.geo.origin.windowOffset.right>=n.__options.minIntersection&&i.geo.window.size.width-i.geo.origin.windowOffset.left>=n.__options.minIntersection:i.geo.origin.windowOffset.bottom>=n.__options.minIntersection&&i.geo.window.size.height-i.geo.origin.windowOffset.top>=n.__options.minIntersection:a.whole=!1),r.push(a),a.whole)c=!0;else if("natural"==a.mode&&(a.fits||a.size.width<=i.geo.available[u][_].width))return!1}})}}),n.__instance._trigger({edit:function(t){r=t},event:e,helper:i,results:r,type:"positionTested"}),r.sort(function(t,e){return t.whole&&!e.whole?-1:!t.whole&&e.whole?1:t.whole&&e.whole?(i=n.__options.side.indexOf(t.side))<(o=n.__options.side.indexOf(e.side))?-1:i>o?1:"natural"==t.mode?-1:1:t.fits&&!e.fits?-1:!t.fits&&e.fits?1:t.fits&&e.fits?(i=n.__options.side.indexOf(t.side))<(o=n.__options.side.indexOf(e.side))?-1:i>o?1:"natural"==t.mode?-1:1:"document"==t.container&&"bottom"==t.side&&"natural"==t.mode?-1:1;var i,o}),(o=r[0]).coord={},o.side){case"left":case"right":o.coord.top=Math.floor(o.target-o.size.height/2);break;case"bottom":case"top":o.coord.left=Math.floor(o.target-o.size.width/2)}switch(o.side){case"left":o.coord.left=i.geo.origin.windowOffset.left-o.outerSize.width;break;case"right":o.coord.left=i.geo.origin.windowOffset.right+o.distance.horizontal;break;case"top":o.coord.top=i.geo.origin.windowOffset.top-o.outerSize.height;break;case"bottom":o.coord.top=i.geo.origin.windowOffset.bottom+o.distance.vertical}"window"==o.container?"top"==o.side||"bottom"==o.side?o.coord.left<0?i.geo.origin.windowOffset.right-this.__options.minIntersection>=0?o.coord.left=0:o.coord.left=i.geo.origin.windowOffset.right-this.__options.minIntersection-1:o.coord.left>i.geo.window.size.width-o.size.width&&(i.geo.origin.windowOffset.left+this.__options.minIntersection<=i.geo.window.size.width?o.coord.left=i.geo.window.size.width-o.size.width:o.coord.left=i.geo.origin.windowOffset.left+this.__options.minIntersection+1-o.size.width):o.coord.top<0?i.geo.origin.windowOffset.bottom-this.__options.minIntersection>=0?o.coord.top=0:o.coord.top=i.geo.origin.windowOffset.bottom-this.__options.minIntersection-1:o.coord.top>i.geo.window.size.height-o.size.height&&(i.geo.origin.windowOffset.top+this.__options.minIntersection<=i.geo.window.size.height?o.coord.top=i.geo.window.size.height-o.size.height:o.coord.top=i.geo.origin.windowOffset.top+this.__options.minIntersection+1-o.size.height):(o.coord.left>i.geo.window.size.width-o.size.width&&(o.coord.left=i.geo.window.size.width-o.size.width),o.coord.left<0&&(o.coord.left=0)),n.__sideChange(a,o.side),i.tooltipClone=a[0],i.tooltipParent=n.__instance.option("parent").parent[0],i.mode=o.mode,i.whole=o.whole,i.origin=n.__instance._$origin[0],i.tooltip=n.__instance._$tooltip[0],delete o.container,delete o.fits,delete o.mode,delete o.outerSize,delete o.whole,o.distance=o.distance.horizontal||o.distance.vertical;var p,d,_,f=t.extend(!0,{},o);if(n.__instance._trigger({edit:function(t){o=t},event:e,helper:i,position:f,type:"position"}),n.__options.functionPosition){var h=n.__options.functionPosition.call(n,n.__instance,i,f);h&&(o=h)}l.destroy(),"top"==o.side||"bottom"==o.side?(p={prop:"left",val:o.target-o.coord.left},d=o.size.width-this.__options.minIntersection):(p={prop:"top",val:o.target-o.coord.top},d=o.size.height-this.__options.minIntersection),p.val<this.__options.minIntersection?p.val=this.__options.minIntersection:p.val>d&&(p.val=d),_=i.geo.origin.fixedLineage?i.geo.origin.windowOffset:{left:i.geo.origin.windowOffset.left+i.geo.window.scroll.left,top:i.geo.origin.windowOffset.top+i.geo.window.scroll.top},o.coord={left:_.left+(o.coord.left-i.geo.origin.windowOffset.left),top:_.top+(o.coord.top-i.geo.origin.windowOffset.top)},n.__sideChange(n.__instance._$tooltip,o.side),i.geo.origin.fixedLineage?n.__instance._$tooltip.css("position","fixed"):n.__instance._$tooltip.css("position",""),n.__instance._$tooltip.css({left:o.coord.left,top:o.coord.top,height:o.size.height,width:o.size.width}).find(".tooltipster-arrow").css({left:"",top:""}).css(p.prop,p.val),n.__instance._$tooltip.appendTo(n.__instance.option("parent")),n.__instance._trigger({type:"repositioned",event:e,position:o})},__sideChange:function(t,e){t.removeClass("tooltipster-bottom").removeClass("tooltipster-left").removeClass("tooltipster-right").removeClass("tooltipster-top").addClass("tooltipster-"+e)},__targetFind:function(t){var e={},i=this.__instance._$origin[0].getClientRects();i.length>1&&(1==this.__instance._$origin.css("opacity")&&(this.__instance._$origin.css("opacity",.99),i=this.__instance._$origin[0].getClientRects(),this.__instance._$origin.css("opacity",1)));if(i.length<2)e.top=Math.floor(t.geo.origin.windowOffset.left+t.geo.origin.size.width/2),e.bottom=e.top,e.left=Math.floor(t.geo.origin.windowOffset.top+t.geo.origin.size.height/2),e.right=e.left;else{var o=i[0];e.top=Math.floor(o.left+(o.right-o.left)/2),o=i.length>2?i[Math.ceil(i.length/2)-1]:i[0],e.right=Math.floor(o.top+(o.bottom-o.top)/2),o=i[i.length-1],e.bottom=Math.floor(o.left+(o.right-o.left)/2),o=i.length>2?i[Math.ceil((i.length+1)/2)-1]:i[i.length-1],e.left=Math.floor(o.top+(o.bottom-o.top)/2)}return e}}})}),jQuery(document).ready(function($){var fchunker_upload={fchunker:function(t){$.extend(t),$.upId&&$.upUrl&&($.domHtml=$("#"+$.upId).html(),$.upInputId=$.upId+"_input")},fchunker_limitFileSize:function(t,e){for(var i=["KB","MB","GB"],o=e.toUpperCase(),n=0,s=0;s<i.length;s++){var r=o.indexOf(i[s]);if(r>-1){n=parseInt(o.substr(0,r))*Math.pow(1024,s+1);break}}return!(t.size>n)},upErrorMsg:function(t){$.upError=t},upStop:function(t){$.upError=t},upStatus:function(){return!$.upError||("function"==typeof $.upStop&&$.upStop($.upError),!1)},fchunker_getPercent:function(t,e){if(t=parseFloat(t),e=parseFloat(e),isNaN(t)||isNaN(e))return"-";return e<=0?0:Math.round(t/e*1e4)/100},fchunker_upload:function(t,e){$.upError="",$.tempFile=$("#"+$.upInputId)[0].files[0],"file"==t&&($.tempFile=e);var i=$.tempFile;if(!i)return!1;"function"==typeof $.upStart&&$.upStart();var o=i.name,n=o.lastIndexOf("."),s=o.length,r=o.substring(n+1,s);if($.upType&&(uptype=$.upType.split(","),-1==$.inArray(r,uptype)&&($.upError="Type error: Error-"+r)),$.upMaxSize&&($.fchunker_limitFileSize(i,$.upMaxSize+"MB")||($.upError="Error")),0==$.upStatus())return!1;$.taskStart=+new Date,setTimeout("jQuery.fchunker_upload_core()","100")},fchunker_upload_core:function(){var file=$.tempFile;if(!file)return!1;$.upShardSize||($.upShardSize=2);for(var filename=file.name,size=file.size,index1=filename.lastIndexOf("."),index2=filename.length,suffix=filename.substring(index1+1,index2),shardSize=1024*$.upShardSize*1024,succeed=0,shardCount=Math.ceil(size/shardSize),re=[],start,end=0,i=0;i<shardCount;++i)re[i]=[],start=i*shardSize,end=Math.min(size,start+shardSize),re[i].file_data=file.slice(start,end),re[i].file_name=filename,re[i].file_size=size;const URL=$.upUrl;var i2=0,i3=1,fcs=Array(),xhr=new XMLHttpRequest;function ajaxStack(stack){if(0!=$.upStatus()){var form=new FormData;stack[i2]&&(fcs=stack[i2],form.append("file_data",fcs.file_data),form.append("file_name",fcs.file_name),form.append("file_size",fcs.file_size),form.append("file_total",shardCount),form.append("file_index",i3),form.append("taskStart",$.taskStart),form.append("action","backup_migration"),form.append("token","bmi"),form.append("f","upload-backup"),xhr.open("POST",URL,!0),xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),xhr.setRequestHeader("HTTP_X_REQUESTED_WITH","XMLHttpRequest"),xhr.onload=function(){ajaxStack(stack)},xhr.onreadystatechange=function(){if(0!=$.upStatus()&&4==xhr.readyState&&200==xhr.status){var data=xhr.responseText?eval("("+xhr.responseText+")"):"";++succeed;var cent=$.fchunker_getPercent(succeed,shardCount);"function"==typeof $.upEvent&&$.upEvent(cent),100==cent?setTimeout(function(){"function"==typeof $.upCallBack&&$.upCallBack(data)},500):"function"==typeof $.upCallBack&&$.upCallBack(data)}},xhr.send(form),i2++,i3++,form.delete("file_data"),form.delete("file_name"),form.delete("file_size"),form.delete("file_total"),form.delete("taskStart"),form.delete("file_index"),form.delete("action"),form.delete("token"),form.delete("f"))}}ajaxStack(re),re=null,file=null}};$.extend(fchunker_upload)}),jQuery(window).on("load",function(){setTimeout(function(){jQuery("#bmi").css({opacity:0}),jQuery("#bmi-preload").css({opacity:1}),jQuery("#bmi-preload").animate({opacity:0},150,function(){jQuery("#bmi-preload").remove(),jQuery("#bmi").css({display:"block"}),jQuery.bmi.dropdowns.init(),setTimeout(function(){jQuery("#bmi").animate({opacity:1},350),jQuery("#bmi_carrousel").show(200)},100)})},50)}),jQuery(document).ready(function(t){let e=!1;t.extend({bmi:{clipboard:function(e){try{const i=document.createElement("textarea");return i.value=e,i.setAttribute("readonly",""),i.style.position="absolute",i.style.left="-9999px",document.body.appendChild(i),i.select(),document.execCommand("copy"),document.body.removeChild(i),t.bmi.alert("success",t("#bmi-success-copy").text(),3e3),!0}catch(e){return console.log(e),t.bmi.alert("warning",t("#bmi-failed-copy").text(),3e3),!1}},alert:function(e="default",i="---",o=7e3){t(".bmi-notification-box").length<=0&&t("body").find("#bmi").prepend(t('<div class="bmi-notification-box"></div>')),e="default"==e?"":"success"==e?" is-success":"warning"==e?" is-warning":"error"==e?" is-danger":" is-info";let n=Math.floor(Math.random()*Math.floor(64e3)),s=`<div style="display: none;" id="ntf-${n}" class="bmi-notification${e}">\n <button class="bmi-times-button" onclick="jQuery.bmi.hideAlert(this)">×</button>\n <div class="bmi-cf">\n <div class="bmi-left bmi-alert-icon"><div class="bmi-icon-bg"></div></div>\n <div class="bmi-left bmi-alert-msg-title">\n <div class="bmi-title${e}">Backup Migration</div>\n <div>${i}</div>\n </div>\n </div>\n </div>`;t(".bmi-notification-box").prepend(s);let r=t(`#ntf-${n}`);r.css({opacity:0,display:"block"});let a=r.outerWidth();r.outerHeight();r.css({right:"-35vw","font-size":"0px",width:0,padding:0,opacity:"0"}),r.animate({right:"15px",width:a,padding:"1rem 2rem 1rem 1.5rem",opacity:"1"},{duration:200,queue:!1}),r.animate({"font-size":"16px"},{duration:300,queue:!1}),setTimeout(()=>{t(`#ntf-${n}`).css({width:""})},250),setTimeout(()=>{r.animate({"font-size":"0px"},{duration:200,queue:!1}),r.animate({right:"-35vw",height:0,width:0,margin:0,padding:0,opacity:"0"},300,function(){r.remove()})},o)},_msg:function(e){"msg"==e.status&&(void 0===e.level&&(e.level="info"),t.bmi.alert(e.level,e.why,3e3),console.log("Backup-migration: ","["+e.level.toUpperCase()+"]",e.why))},hideAlert:function(e){let i=t(e).parents(".bmi-notification");i.animate({"font-size":"0px"},{duration:200,queue:!1}),i.animate({right:"-35vw",height:0,width:0,margin:0,padding:0,opacity:"0"},300,function(){i.remove()})},modal:function(e=!1){let i=!1;return 0!=e&&(i=document.getElementById(e)),{clearModal:function(){i.querySelectorAll(".customselect").forEach(function(t){t.classList.remove("active")}),i.querySelectorAll('input[type="text"]').forEach(function(t){t.value="",t.setAttribute("value","")})},open:function(e=function(){}){i.classList.add("before-open"),setTimeout(function(){i.classList.add("open"),t("html")[0].style.overflowY="hidden",setTimeout(e,410)},10)},close:function(e=function(){}){i.offsetWidth>0&&i.offsetHeight>0?(i.classList.add("before-close"),setTimeout(function(){i.classList.add("closed"),setTimeout(function(){i.classList.remove("before-open"),i.classList.remove("open"),i.classList.remove("before-close"),i.classList.remove("closed"),t.bmi.modal(i.id).clearModal(),e()},410)},10)):(i.classList.remove("before-open"),i.classList.remove("open"),i.classList.remove("before-close"),i.classList.remove("closed"),e()),t("html")[0].style.overflowY="auto"},closeAll:function(){document.querySelectorAll(".modal").forEach(function(e){t.bmi.modal(e.id).close()}),t("html")[0].style.overflowY="auto"}}},json:function(e){return new Promise(function(i,o){try{return i(JSON.parse(e))}catch(n){if("string"!=typeof e)return o(!1);{let n=t.bmi.reverse(e).indexOf("}");n=0==n?e.length:-n,e=e.slice(e.indexOf("{"),n);try{return i(JSON.parse(e))}catch(t){return o(!1)}}}})},reverse:function(e){return"string"==typeof e?""===e?"":t.bmi.reverse(e.substr(1))+e.charAt(0):e},ajax:function(e,i={}){return new Promise(function(o,n){function s(t,i){i||(i=t),console.log("------- BACKUP MIGRATION ERROR START -------"),!1===t?(console.log("Call: ",e),console.log("Status: ",i.status),console.log("Error: ",i.responseText)):console.log(i),console.log("-------- BACKUP MIGRATION ERROR END --------\n\n"),n(t,i.responseText)}i.action="backup_migration",i.token="bmi",i.f=e,t.post(ajaxurl,i).done(e=>{t.bmi.json(e).then(function(t){o(t)}).catch(function(t){s("json")})}).fail(t=>{s(!1,t)})})},tooltips:{init:function(){let e={delay:200,debug:!1,delayTouch:[100,200],interactive:!1,distance:0,side:"top",contentAsHTML:!1,maxWidth:460,triggerOpen:{mouseenter:!0,touchstart:!0},triggerClose:{mouseleave:!0,click:!0,tap:!0},theme:["bmi-tooltip","bmi-tt-default","bmi-tt-default-customized"],repositionOnScroll:!0,functionReady:function(){setTimeout(()=>{let e=t.tooltipster.instances();for(instance in e)e[instance].reposition()},10)}},i=t(".tooltip"),o=t(".tooltip-html"),n=t(".premium-wrapper"),s=JSON.parse(JSON.stringify(e));s.contentAsHTML=!0,s.interactive=!0;for(let o=0;o<i.length;++o){let n=i[o],s=n.getAttribute("data-top"),r=n.getAttribute("side"),a=JSON.parse(JSON.stringify(e));a.content=n.getAttribute("tooltip"),s&&(a.distance=parseInt(s)),r&&r.trim().length>0&&(a.side=r),t(n).tooltipster(a)}for(let e=0;e<o.length;++e){let i=o[e],n=i.getAttribute("side"),r=JSON.parse(JSON.stringify(s));r.content=i.getAttribute("tooltip"),n&&n.trim().length>0&&(r.side=n),t(i).tooltipster(r)}for(let i=0;i<n.length;++i){let o=n[i],s=JSON.parse(JSON.stringify(e));s.contentAsHTML=!0,s.interactive=!0,s.maxWidth=500,o.getAttribute("tooltip")?s.content=o.getAttribute("tooltip"):o.getAttribute("data-ready")?s.content=t("#premium-tooltip-pre")[0].innerHTML.trim()+" "+o.getAttribute("data-ready").trim()+" "+t("#premium-tooltip-r")[0].innerHTML.trim():s.content=t("#premium-tooltip")[0].innerHTML,o.getAttribute("side")&&(s.side=o.getAttribute("side")),t(o).tooltipster(s)}},hideAll:function(e=!1){function i(){let e=t.tooltipster.instances();for(instance in e)e[instance].close()}e?i():setTimeout(i,10)}},collapsers:{toggle:function(i){if(!0===e)return;e=!0;let o=i.getAttribute("group");i.classList.contains("active")?t.bmi.collapsers.close(i):t.bmi.collapsers.open(i,o)},open:function(i,o){t.bmi.collapsers.closeGroup(o),t(i).addClass("active"),t(i).find(".content").show(300),setTimeout(function(){e=!1},300)},close:function(i){t(i).removeClass("active"),t(i).find(".content").hide(300),setTimeout(function(){e=!1},300)},closeGroup:function(i){t('.collapser[group="'+i+'"]').removeClass("active"),t('.collapser[group="'+i+'"]').find(".content").hide(300),setTimeout(function(){e=!1},300)},closeAll:function(){t(".collapser").removeClass("active"),t(".collapser").find(".content").hide(300),setTimeout(function(){e=!1},300)}},isUrlValid:function(t){return!!new RegExp("^(?:(?:(?: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-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$","i").test(t)},bytesToHuman:function(t,e,i,o,n){return(e=Math,i=e.log,o=1024,n=i(t)/i(o)|0,t/e.pow(o,n)).toFixed(2)+" "+(n?"KMGTPEZY"[--n]+"B":"Bytes")},getCurrentBackups:function(e=function(){}){t("#reloading-bm-list").length>0&&"none"==t("#reloading-bm-list")[0].style.display&&(t("#reloading-bm-list").show(),t.bmi.ajax("get-current-backups",{}).then(function(i){t("#reloading-bm-list").hide(),e(i)}).catch(function(t){console.log(t)}))},fillWithNewBackups:function(e,i=function(){}){backups={},t("#bmi_restore_tbody").html("");let o=t("#bmi-manual-locked").text().trim(),n=Object.keys(e).sort(function(t,i){return+new Date(e[t][1].replace(/\-/g,"/"))-+new Date(e[i][1].replace(/\-/g,"/"))}),s=0;for(;s<n.length;++s){let i=n[s],r="locked"===e[i][5];i=(i=i.replace(/ /g,"")).trim();let a="bmi_br_backup_"+s,l=t(".br_tr_template").clone();l.removeClass("br_tr_template"),l[0].style.display="none",l.find(".br_label").attr("for",a),l.find(".br_checkbox").attr("id",a),l.find(".bc-download-btn").attr("href",t("#BMI_BLOG_URL").text().trim()+"/?backup-migration=BMI_BACKUP&backup-id="+i),l.find(".bc-logs-btn").attr("href",t("#BMI_BLOG_URL").text().trim()+"/?backup-migration=BMI_BACKUP_LOGS&backup-id="+i),l.find(".br_date").text(e[i][1]),l.find(".br_name").text(i),l.find(".br_size").text(t.bmi.bytesToHuman(e[i][4])+" ("+e[i][2]+")"),0!=(""+e[i][6]).trim().length&&e[i][6]+""!="false"||(l.find(".bc-locked-btn").addClass("forever"),l.find(".bc-locked-btn").attr("tooltip",o),r=!0),r?l.find(".bc-unlocked-btn").hide():l.find(".bc-locked-btn").hide(),l.prependTo("#bmi_restore_tbody"),e[i].push(i),backups[a]=e[i]}if(0==s){let e=t("#bmi_restore_tbody").data("empty");t("#bmi_restore_tbody").html('<tr><td class="center text-muted" colspan="100%">'+e+"</td></tr>")}t.bmi.tooltips.init(),t.bmi.showMoreBackups(),i()},showMoreBackups:function(e){backups={};let i=t("#bmi_restore_tbody").find("tr:hidden");for(let e=0;e<i.length&&e<10;++e)setTimeout(function(){t(i[e]).show(300)},50*e);i.length-10<=0?t("#load-more-backups-wrp").hide(300):t("#load-more-backups-wrp").show(300)},reloadBackups:function(e=function(){}){t.bmi.getCurrentBackups(function(i){t.bmi.fillWithNewBackups(i.backups,function(){e(),t("#backups-select-all").prop("checked",!1),t(".del-all-btn-wrp").hide(300)})})},hideAllLists:function(){let e=t(".dropdown-open");if(!(e.length<=0))for(let i=0;i<e.length;++i){let o=t(e[i]);o.hasClass("ignored-open")?o.removeClass("ignored-open"):(o.hide(300),o.removeClass("dropdown-open"),t(o[0].closest(".bmi-dropdown")).removeClass("active"))}},setOption:function(e,i=null,o=!1){let n=e.find(".dropdown-options");e.attr("data-optioner")&&(n=t(".optioner-"+e.attr("data-optioner"))),n.find(".active-option").removeClass("active-option"),!1!==o&&(i=n.find('.dropdown-option[data-value="'+o+'"]')),t(i).hasClass("active-option")||(e.find(".dropdown-title").text(i.text()),e.attr("data-selected",i.data("value")),i.addClass("active-option"),!1===o&&e.change(),t.bmi.hideAllLists())},prepareFile:function(e,i){let o=document.createElement("a");o.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(i)),o.setAttribute("download",e),o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),t.bmi.alert("success",t("#bmi-download-should-start").text(),3e3)}}})}),jQuery(document).ready(function(t){t(".collapser .header").on("click",function(e){e.preventDefault();let i=t(this).parent(".collapser")[0];t.bmi.collapsers.toggle(i)}),t(".bmi_will_collapse").on("change",function(e){e.preventDefault();let i=!1;"radio"==this.getAttribute("type")&&"false"==this.getAttribute("value")&&(i=!0),$child=t(this).data("if-checked"),!0!==this.checked||i?t("#"+$child).hide(300):t("#"+$child).show(300)}),t(".collapser-openner").on("click",function(e){e.preventDefault();let i="configuration",o=t(this).data("el");t(this).data("group")&&(i=t(this).data("group")),t.bmi.collapsers.open(o,i),setTimeout(function(){t([document.documentElement,document.body]).animate({scrollTop:t(o).offset().top-50+"px"},300)},300)}),function(){let e=t(".bmi_will_collapse");for(let i=0;i<e.length;++i){let o=!1;$trigger=e[i],$child=t($trigger).data("if-checked"),"radio"==$trigger.getAttribute("type")&&"false"==$trigger.getAttribute("value")&&(o=!0),!0===$trigger.checked?t("#"+$child).show():t("#"+$child).hide()}}()}),jQuery(document).ready(function(t){var e=!0,i=!1;t.bmi.crons=function(){function o(){!function(e,i){t.bmi.ajax("calculate-cron",e).then(function(e){"success"==e.status?i(e):(i(!1),t.bmi._msg(e))}).catch(function(t){i(!1),console.log(t)})}({type:t('[data-id="cron-period"]').attr("data-selected"),day:t('[data-id="cron-day"]').attr("data-selected"),week:t('[data-id="cron-week"]').attr("data-selected"),hour:t('[data-id="cron-hour"]').attr("data-selected"),minute:t('[data-id="cron-minute"]').attr("data-selected"),keep:t('[data-id="cron-keep-backups"]').attr("data-selected"),enabled:!0==!t("#cron-btn-toggle")[0].checked},function(i){"success"===i.status&&!1!==i?(t(".cron-time-server").tooltipster("option","interactive",!1),t(".cron-time-server").tooltipster("option","contentAsHTML",!0),!0===t("#cron-btn-toggle")[0].checked&&(i.data="---"),t(".cron-time-server").tooltipster("content","<b>"+t("#bmi-next-cron").text()+"</b>"+i.data+"<br><b>"+t("#bmi-current-time").text()+"</b>"+i.currdata),e?e=!1:t.bmi.alert("success",t("#bmi-cron-updated").text(),1500)):e?e=!1:t.bmi.alert("error",t("#bmi-cron-updated-fail").text(),2500)})}function n(e){"month"==e?(t(".cron-the").show(),t('[data-id="cron-day"]').show(),t('[data-id="cron-week"]').hide(),t("#cron-on-word").show()):"week"==e?(t(".cron-the").hide(),t('[data-id="cron-day"]').hide(),t('[data-id="cron-week"]').show(),t("#cron-on-word").show()):(t(".cron-the").hide(),t('[data-id="cron-day"]').hide(),t('[data-id="cron-week"]').hide(),t("#cron-on-word").hide())}!0!==i&&(i=!0,t("#bmi").on("change",'[data-id="cron-period"]',function(t){o(),n(t.target.getAttribute("data-selected"))}),t("#bmi").on("change",'[data-id="cron-day"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-week"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-hour"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-minute"]',function(t){t.target.getAttribute("data-selected");o()}),t("#bmi").on("change",'[data-id="cron-keep-backups"]',function(t){t.target.getAttribute("data-selected");o()}),t("#i-backup-cron").on("click",function(){t(".cron-backups").find(".turned-off").is(":visible")&&(t("#cron-btn-toggle").prop("checked",!1),t(".cron-backups").removeClass("disabled"),o(),t(".cron-backups").find(".turned-on").css({opacity:0}),t(".cron-backups").find(".turned-off").css({opacity:0}),t(".cron-backups").find(".turned-on").show(),t(".cron-backups").find(".turned-on").css({opacity:1}),setTimeout(function(){t(".cron-backups").find(".turned-off").hide()},300))}),t("#cron-btn-toggle").on("change",function(){this.checked?t(".cron-backups").addClass("disabled"):t(".cron-backups").removeClass("disabled"),o()}),n(t('[data-id="cron-period"]')[0].getAttribute("data-selected")),o())}}),jQuery(document).ready(function(t){t.bmi.dropdowns={init:function(){let e=t("#bmi");function i(e="null",i="---"){let o=t(".option-template").clone();return o.removeClass("option-template"),o.attr("data-value",e),o.text(i),o}function o(o){if("none"!=o.style.display){o.style.display="none";let n=t(o),s=n.find("option"),r=function(e="---"){let i=t(".dropdown-template").clone();return i.removeClass("dropdown-template"),i.find(".dropdown-title").text(e),i}(function(t){let e="";for(let i=0;i<t.length;++i){let o=t[i].innerText;e.length<o.length&&(e=o)}return e}(s));r=function(e,o){let n=t(e).find(".dropdown-options");t(e).attr("data-optioner")&&(n=t(".optioner-"+t(e).attr("data-optioner")));for(let t=0;t<o.length;++t){let e=o[t];n.append(i(e.value,e.innerText))}return e}(r,s);let a=s[0].value,l=o.getAttribute("data-parent"),c=o.getAttribute("data-classes"),u="true"===o.getAttribute("data-hide");if(n.attr("data-def")&&(a=n.attr("data-def")),t(r).attr("data-id",o.id),t(r).attr("class",((null!=c?c:"")+" bmi-dropdown").trim()),t(r).insertBefore(n),null!==l){let e=parseInt(864197532*Math.random()+123456789);t(r).attr("data-optioner",e),t(r).find(".dropdown-options").attr("data-oparent",e),t(r).find(".dropdown-options").addClass("optioner-"+e),t(r).find(".dropdown-options").appendTo(l),t(l).css({position:"relative"})}let p=t(r).clone();if(!p)return;p[0].style.visibility="hidden",e.append(p);let d=p.width();p.remove(),t.bmi.setOption(t(r),null,a),t(r).find(".dropdown-title")[0].style.minWidth=d+10+"px",u&&t(r).hide()}}!function(){let t=e.find("select");for(let e=0;e<t.length;++e)o(t[e])}(),t.bmi.crons(),e.on("click",function(e){t(e.target).hasClass("bmi-dropdown")||e.target.closest(".bmi-dropdown")||t.bmi.hideAllLists()}),e.on("click",".dropdown-title",function(e){$dropdown=t(e.target.closest(".bmi-dropdown")),function(e){let i=e.find(".dropdown-options");if(e.attr("data-optioner")){(i=t(".optioner-"+e.attr("data-optioner"))).css({position:"absolute"});let o=e[0].offsetWidth,n=e[0].offsetLeft+240,s=e[0].offsetTop+e[0].offsetHeight+5;i.css({maxWidth:o+"px",minWidth:o+"px",top:s+"px",left:n+"px"})}i.hasClass("dropdown-open")?(e.removeClass("active"),i.removeClass("dropdown-open"),i.hide(300)):(e.addClass("active"),i.addClass("dropdown-open"),i.addClass("ignored-open"),i.show(300))}($dropdown),t.bmi.hideAllLists()}),e.on("click",".dropdown-option",function(e){t(e.target.closest(".dropdown-options")).attr("data-oparent")?($dropdown=t('.bmi-dropdown[data-optioner="'+t(e.target.closest(".dropdown-options")).attr("data-oparent")+'"]'),$option=t(e.target),t.bmi.setOption($dropdown,$option)):($dropdown=t(e.target.closest(".bmi-dropdown")),$option=t(e.target),t.bmi.setOption($dropdown,$option))})}}}),jQuery(document).ready(function(t){var e,i,o=!1,n=!1,s=0;let r=0,a=0,l=null,c=null,u=null,p=!1,d=!1,_=4500,f=!1,h=!1,m=null,g=!1,b=!1,w=!1,v={};function y(e){return $cb=t("#"+e).is(":checked"),!0===$cb?"true":"false"}function k(){return size=0,t("#files-group-plugins").is(":checked")&&(size+=parseInt(t('label[for="files-group-plugins"]').find(".value").attr("bytes"))),t("#files-group-uploads").is(":checked")&&(size+=parseInt(t('label[for="files-group-uploads"]').find(".value").attr("bytes"))),t("#files-group-themes").is(":checked")&&(size+=parseInt(t('label[for="files-group-themes"]').find(".value").attr("bytes"))),t("#files-group-other-contents").is(":checked")&&(size+=parseInt(t('label[for="files-group-other-contents"]').find(".value").attr("bytes"))),t("#files-group-wp-install").is(":checked")&&(size+=parseInt(t('label[for="files-group-wp-install"]').find(".value").attr("bytes"))),size}function x(e,i){if(a+=1,r+=parseInt(i.bytes),i.bytes<=1e4)t("#bmi-scan-"+e).find(".value").text("(0 MB)");else{let o=(parseInt(i.bytes)/1024/1024).toFixed(2);t("#bmi-scan-"+e).find(".value").text("("+o+" MB)")}t("#bmi-scan-"+e).find(".value").attr("bytes",parseInt(i.bytes)),5==a&&(t("#bmi-scan-total").find(".value").text("("+t.bmi.bytesToHuman(r)+")"),t("#bmi-scan-total").find(".value").attr("bytes",parseInt(r)),T())}function C(e){t.bmi.ajax("scan-directory",{folder:e}).then(function(t){x(e,t)}).catch(function(t){x(t,{bytes:"0",readable:"0 B"})})}function $(e=!1,i=function(){}){t.bmi.ajax("is-running-backup",{}).then(function(o){"success"==o.status?i(!1):1==e?i(!0):t.bmi._msg(o)}).catch(function(t){i(!1),console.log(t)})}function T(){let e=parseInt(t("#bmi-scan-total").find(".value").attr("bytes")),i=parseInt(k());t("#files-group-backup").is(":checked")||(e=0,i=0);let o=((e-i)/1024/1024).toFixed(2),n=(i/1024/1024).toFixed(2);"0.00"==o&&(o="0"),"0.00"==n&&(n="0"),t("#esta-exclude").text(o+" MB"),t("#esta-size-for").text(n+" MB")}function I(){t("#prenotice-modal .prenotice").hide(),t("#prenotice-size").text(t.bmi.bytesToHuman(k())),t(".prenotic-3").show(),"true"!==y("database-group-backup")||"true"!==y("database-group-backup")||"true"===y("files-group-backup")&&("true"!==y("files-group-plugins")&&"true"!==y("files-group-themes")&&"true"!==y("files-group-uploads")&&"true"!==y("files-group-wp-install")&&y("files-group-other-contents"),1)||t(".prenotic-6").show(),"true"===y("database-group-backup")||"true"===y("database-group-backup")||"true"!==y("files-group-backup")||"true"!==y("files-group-plugins")&&"true"!==y("files-group-themes")&&"true"!==y("files-group-uploads")&&"true"!==y("files-group-wp-install")&&"true"!==y("files-group-other-contents")||t(".prenotic-5").show(),"true"===y("database-group-backup")&&"true"===y("files-group-backup")&&"true"===y("files-group-plugins")&&"true"===y("files-group-themes")&&"true"===y("files-group-uploads")&&"true"===y("files-group-other-contents")||t(".prenotic-4").show(),t("#prenotice-modal .prenotice:visible").css({background:""});let e=t("#prenotice-modal .prenotice"),i=[];for(let t=0;t<e.length;++t)"none"!==e[t].style.display&&i.push(e[t]);for(let t=0;t<i.length;t+=2)i[t].style.background="#f8f8f8"}function O(t,e=function(){}){let i=window.location.protocol.includes("https");t=t.includes("https")?t.slice(5):t.slice(4),t=i?"https"+t:"http"+t;try{window.XMLHttpRequest?xmlhttp=new XMLHttpRequest:xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"),xmlhttp.onloadend=function(){4==xmlhttp.readyState&&200==xmlhttp.status?e(xmlhttp.responseText):e(!1)},xmlhttp.open("GET",t),xmlhttp.send()}catch(t){e(!1)}}function E(i,r){if(!1===i)return;let a=i.split("\n"),l=s;s=a.length,l>0&&l--;for(let i=l;i<a.length;++i){let l=a[i],c=document.createElement("DIV"),u="";if("[INFO]"==l.substr(0,6))u="blue";else if("[SUCCESS]"==l.substr(0,9))u="green";else if("[WARN]"==l.substr(0,6))u="orange";else if("[ERROR]"==l.substr(0,7))u="red";else if("[END-CODE]"==l.substr(0,10))u="hide_so_much";else if("[STEP]"==l.substr(0,6))c.classList.add("bold"),c.classList.add("step"),t("#restore-progress-modal").hasClass("open")?t("#restore_current_step").text(l.slice(29)):t("#current_step").text(l.slice(29));else if(l&&l.trim().length>0&&"["!=l[0]){s--;continue}u.length>0&&c.classList.add(u),c.style.display="none",c.innerText=l,setTimeout(function(){if(r.appendChild(c),l&&l.trim().includes("[END-CODE]")&&(!0===h||!0===w||!0===b)){let i=l;!0===b?i.includes("205")?(b=!1,t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%",J(!0)):Q():!0===w?(i.includes("001")?setTimeout(function(){W()},1e3):Q(),d=!1,w=!1):(h=!1,i.includes("001")&&(o=!0,n=!0,clearTimeout(e),p=!1,D({filename:m},!0)),i.includes("002")&&P(),i.includes("003")&&(t.bmi.modal("backup-progress-modal").close(),t.bmi.alert("info",t("#bmi-aborted-al").text(),3e3)),i.includes("100")&&(t.bmi.modal("backup-progress-modal").close(),j(),t.bmi.modal("backup-progress-modal").close()))}t(c).show(55),r.scrollTop=r.scrollHeight},55*i)}setTimeout(function(){r.scrollTop=r.scrollHeight},110)}function z(e=0,s=1e3,r=null){if(c==e)return;c=e,clearInterval(i);let a=parseFloat(t(".progress-percentage")[0].style.left)-1;if(t("#restore-progress-modal").hasClass("open")&&(a=parseFloat(t("#restore-progress-modal .progress-percentage")[0].style.left)-1),a>e&&0!=e)return;let l=e-a,u=a,d=Math.abs(Math.floor(s/l));i=setInterval(function(){if(u+=1,t("#restore-progress-modal").hasClass("open")?(t("#restore-progress-modal .progress-active-bar")[0].style.width=u.toFixed(2)+"%",t("#restore-progress-modal .progress-percentage")[0].style.left=u.toFixed(2)+"%",t("#restore-progress-modal .progress-percentage")[0].innerText=u.toFixed(0)+"%"):(t(".progress-active-bar")[0].style.width=u.toFixed(2)+"%",t(".progress-percentage")[0].style.left=u.toFixed(2)+"%",t(".progress-percentage")[0].innerText=u.toFixed(0)+"%"),u>=100&&clearInterval(i),u>=100&&null!=r&&(c=null,t("#backup-progress-modal").hasClass("open"))){o=!0,n=!0,D(r,0==p)}u>e&&clearInterval(i)},d)}t("#live-log-toggle").on("click",function(){t(".expanded-logs").length>0?t(this).text(t(this).data("hide")):t(this).text(t(this).data("show")),t("#live-log-wrapper").toggleClass("expanded-logs")}),t("#backup-stop").on("click",function(){t.bmi.ajax("stop-backup",{}).then(function(e){"success"==e.status?t.bmi.alert("success",t("#bmi-abort-soon").text(),3e3):t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#bmi-force-backup-to-stop").on("click",function(e){e.preventDefault(),t.bmi.alert("info",t("#bmi-force-stop-in-progress").text(),3e3),t.bmi.ajax("force-backup-to-stop").then(function(e){t.bmi.alert("success",t("#bmi-force-stop-success").text(),6e3)}).catch(function(e){t.bmi.alert("error",t("#failed-to-stop").text(),6e3),console.log(e)})}),t("#bmi-force-restore-to-stop").on("click",function(e){e.preventDefault(),t.bmi.alert("info",t("#bmi-force-stop-in-progress").text(),3e3),t.bmi.ajax("force-restore-to-stop").then(function(e){t.bmi.alert("success",t("#bmi-force-stop-success").text(),6e3)}).catch(function(e){t.bmi.alert("error",t("#failed-to-stop").text(),6e3),console.log(e)})}),t("#bmi_restore_tbody").on("click",".bc-unlocked-btn",function(e){e.preventDefault();let i=e.target,o=i.closest("tr").querySelector(".br_name").innerText.trim();t.bmi.ajax("lock-backup",{filename:o}).then(function(e){"success"==e.status?(t.bmi.alert("success",t("#bmi-lock-success").text(),6e3),t(i.closest("tr").querySelector(".bc-unlocked-btn")).hide(),t(i.closest("tr").querySelector(".bc-locked-btn")).show()):(t.bmi.alert("error",t("#bmi-lock-error").text(),8e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t("#files-group-backup").on("change",T),t(".basic-file-exlusion").on("change",'input[type="checkbox"]',T),t("#bmi_restore_tbody").on("click",".bc-locked-btn",function(e){if(e.preventDefault(),t(e.target).hasClass("forever"))return;let i=e.target,o=i.closest("tr").querySelector(".br_name").innerText.trim();t.bmi.ajax("unlock-backup",{filename:o}).then(function(e){"success"==e.status?(t.bmi.alert("success",t("#bmi-unlock-success").text(),3e3),t(i.closest("tr").querySelector(".bc-locked-btn")).hide(),t(i.closest("tr").querySelector(".bc-unlocked-btn")).show()):(t.bmi.alert("error",t("#bmi-unlock-error").text(),3e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t("#bmi_restore_tbody").on("click",".bc-url-btn",function(e){let i=e.target.closest("tr").querySelector(".bc-download-btn").getAttribute("href");t.bmi.clipboard(i)}),t("#bmi_restore_tbody").on("click",".bc-remove-btn",function(e){let i=e.target.closest("tr").querySelector(".br_name").innerText.trim();u=[i],t("#delete-confirm-modal").find(".text2").hide(),t("#delete-confirm-modal").find(".text1").show(),t.bmi.modal("delete-confirm-modal").open()}),t("#sure_delete").on("click",function(){t.bmi.ajax("delete-backup",{filenames:u}).then(function(e){u=null,"success"==e.status?(t.bmi.reloadBackups(),t.bmi.modal("delete-confirm-modal").close(),t.bmi.alert("success",t("#bmi-remove-success").text(),3e3)):(t.bmi.alert("warning",t("#bmi-remove-error").text(),3e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t("#add-exclusion-rule").on("click",function(e){e.preventDefault();let i=t(".exclusion_template").clone();i[0].classList.remove("exclusion_template"),i[0].style.display="none",t("#bmi_exclusion_rules").append(i),i.show(300)}),t("#bmi_exclusion_rules").on("click",".kill-exclusion-rule",function(e){e.preventDefault(),$el=e.target,$parent=$el.closest(".exclude-row"),$parent&&(t($parent).hide(300),setTimeout(function(){$parent.remove()},320))}),t("#i-backup-creator").on("click",function(){if(!isNaN(k()))return k()/1024/1024>1e3*parseInt(t("#BMI_REV").text().trim())?j():void("true"===y("database-group-backup")||"true"===y("files-group-backup")&&("true"===y("files-group-plugins")||"true"===y("files-group-themes")||"true"===y("files-group-uploads")||"true"===y("files-group-wp-install")||"true"===y("files-group-other-contents"))?(I(),$(!1,function(){t.bmi.modal("prenotice-modal").open()})):t.bmi.alert("warning",t("#bmi-no-selected").text(),3e3));t.bmi.alert("warning",t("#bmi-preb-processing").text(),3e3)}),t("#BFFSIN").on("change",function(t){let e=parseInt(this.value);isNaN(e)?this.value=1:this.value=e>9999?9999:e<=0?1:e}),t(".save-btn").on("click",function(e){e.preventDefault();let i={},o=t(this.closest(".save-action")).data("save");if(o){if("save-storage"==o)i.directory=t("#bmi_path_storage_default").val(),i.access="true"===t('[name="radioAccessViaLink"]:checked').val()?"true":"false";else if("save-file-config"==o){if(i.database_group=y("database-group-backup"),i.files_group=y("files-group-backup"),t("#bmi-pro-db-tables-exclusion").length>0){i["db-exclude-tables-group"]=y("bmi-pro-db-tables-exclusion"),i["db-excluded-tables"]=["empty"];let e=t(".bmi_pro_tables_display").find("input:checked");if(e.length>0){i["db-excluded-tables"]=[];for(let t=0;t<e.length;++t)i["db-excluded-tables"].push(e[t].value)}else i["db-exclude-tables-group"]="false"}else i["db-exclude-tables-group"]="false",i["db-excluded-tables"]=["empty"];i["files-group-plugins"]=y("files-group-plugins"),i["files-group-uploads"]=y("files-group-uploads"),i["files-group-themes"]=y("files-group-themes"),i["files-group-other-contents"]=y("files-group-other-contents"),i["files-group-wp-install"]=y("files-group-wp-install"),i.files_by_filters=y("files_by_filters"),i.ex_b_fs=y("ex_b_fs"),i.BFFSIN=t("#BFFSIN").val()?t("#BFFSIN").val():"1",i.ex_b_names=y("ex_b_names"),i.ex_b_fpaths=y("ex_b_fpaths"),i.ex_b_dpaths=y("ex_b_dpaths");let e=[],o=t("#bmi_exclusion_rules").find(".exclude-row");for(let i=0;i<o.length;++i){let n=t(o[i]),s=n.find(".exclusion_txt").val(),r=n.find(".exclusion_position").find(".bmi-dropdown").data("selected")+"",a=n.find(".exclusion_where").find(".bmi-dropdown").data("selected")+"";e.push({txt:s,pos:r,whr:a})}i["dynamic-names"]=e,i["dynamic-fpaths-names"]=t("#dynamic-fpaths-names").val().split("\n"),i["dynamic-dpaths-names"]=t("#dynamic-dpaths-names").val().split("\n")}else if("store-config"==o)i.name=t("#backup_filename").val().trim();else{if("save-other-options"!=o)return;i.email=t("#email-for-notices").val().trim(),i.email_title=t("#email-title-for-notices").val().trim(),i.schedule_issues=y("scheduled-issues"),i.experiment_timeout=y("experimental-timeout"),i.experimental_hard_timeout=y("experimental-hard-timeout"),i.php_cli_disable_others=y("cli-disable-others"),i.php_cli_manual_path=t("#cli-manual-path").val().trim(),i.download_technique=y("download-technique"),i.uninstall_config=y("uninstalling-configs"),i.uninstall_backups=y("uninstalling-backups"),i.normal_timeout=y("normal-timeout"),i.db_queries_amount=t("#db_queries_amount").val().trim(),i["bmi-restore-splitting"]=y("bmi-restore-splitting"),i["bmi-db-v3-restore-engine"]=y("bmi-db-v3-restore-engine"),i["remove-assets-before-restore"]=y("remove-assets-before-restore"),i["bmi-db-single-file-backup"]=y("bmi-db-single-file-backup")}t.bmi.ajax(o,i).then(function(e){"success"==e.status?e.errors<=0?(t.bmi.alert("success",t("#bmi-save-success").text(),3e3),t.bmi.collapsers.closeAll()):t.bmi.alert("warning",t("#bmi-save-issues").text(),3e3):t.bmi._msg(e)}).catch(function(t){console.log(t)})}}),t(".close-chapters").on("click",function(e){e.preventDefault(),t.bmi.collapsers.closeAll()}),t("#rescan-for-backups").on("click",function(){t.bmi.reloadBackups()}),t(".storage-checkbox").on("click",function(){let e=t(this).attr("data-toggle"),i=t(t(this)[0].closest(".tab2-item"));t(this).is(":checked")?(t("#"+e).show(300),i.addClass("activeList")):(t("#"+e).hide(300),i.removeClass("activeList"))});var S=0;function A(e=function(){}){let i=t("#BMI_BLOG_URL").text().trim();"/"!==i.slice(-i.length)&&(i+="/"),O(i+"?backup-migration=PROGRESS_LOGS&progress-id=latest_full.log&backup-id=current&t="+ +new Date,function(i){if(!i)return e();let o=i.split("\n").slice(0,1)[0];""===o.trim()?(o=i.split("\n").slice(0,2)[1],i=i.split("\n").slice(2).join("\n")):i=i.split("\n").slice(1).join("\n");let n=t(".log-wrapper").find("pre")[0],s=t("#bmi-making-archive").text().trim();if(o&&0!=o&&void 0!==o&&t("#current_step").text().trim().slice(0,s.length)==s){let e=document.getElementById("bmi_counter_magic");if(e){let i=parseInt(e.innerText);S=parseInt(o.split("/")[0]),isNaN(i)||isNaN(S)||(z(parseInt(o.split("/")[0])/parseInt(o.split("/")[1])*100),async function(t,e,i,o){let n=null,s=function(r){if(S>i)return;n||(n=r);let a=Math.min((r-n)/o,1);t.innerText=Math.floor(a*(i-e)+e),a<1&&window.requestAnimationFrame(s)};window.requestAnimationFrame(s)}(e,i,S,2e3),"---"===t("#bmi_magic_max_count").text()&&100!=parseInt(o.split("/")[1])&&(t("#bmi_magic_max_count").text(parseInt(o.split("/")[1])),t("#entire_magic_counter").is(":hidden")&&t("#entire_magic_counter").show()))}else{let e=parseInt(o.split("/")[1]);100==e&&(e="---"),t("#current_step").html(s+' <span id="entire_magic_counter">(<span id="bmi_counter_magic">0</span>/<span id="bmi_magic_max_count">'+e+"</span>)</span>"),(isNaN(parseInt(e))||"---"==e)&&t("#entire_magic_counter").hide()}}i&&0!=i&&void 0!==i&&E(i,n),e()})}function L(){t(".log-wrapper").find("pre")[0].innerText="",z(0),setTimeout(function(){A(function(){!function t(){A(function(){clearTimeout(e),e=setTimeout(function(){!0===p&&t()},1500)})}()})},300)}function R(i=!0){!0===i&&(t(".log-wrapper").find("pre")[0].innerText="",z(0)),N(function(){clearTimeout(e),function t(){N(function(){e=setTimeout(function(){!0!==d&&!0!==b||t()},800)})}()})}function B(t=function(){}){$(!0,function(e){t(e)})}function M(e=!1,i=function(){}){t.bmi.ajax("reset-latest",{}).then(function(o){!0===e?i():"success"==o.status?(i(),t.bmi.modal("backup-progress-modal").open()):t.bmi._msg(o)}).catch(function(t){console.log(t)})}function D(s,r=!1){(o&&n||r)&&setTimeout(function(){p=!1,t("#backup-progress-modal").hasClass("open")&&(t.bmi.modal("backup-progress-modal").close(),"true"==t('[name="radioAccessViaLink"]:checked').val()?t("#accessible-at-section").show():t("#accessible-at-section").hide(),t.bmi.modal("backup-success-modal").open()),clearInterval(i),clearTimeout(e);let o=t("#BMI_BLOG_URL").text().trim();"/"!==o.slice(-o.length)&&(o+="/");let n=o+"?backup-migration=BMI_BACKUP&backup-id="+s.filename+"&t="+ +new Date,r=o+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date;t("#text-input-copy")[0].value=n,t("#download-backup-url").attr("href",n),t("#download-backup-log-url").attr("href",r),t.bmi.reloadBackups(),setTimeout(function(){clearInterval(i),t(".log-wrapper").find("pre")[0].innerText="",t(".progress-active-bar")[0].style.width="0%",t(".progress-percentage")[0].style.left="0%",t(".progress-percentage")[0].innerText="0%"},300)},700)}function P(i=!1){setTimeout(function(){$(!0,function(o){if(!0===o)return;t.bmi.modal("backup-progress-modal").close(),clearTimeout(e),t.bmi.modal("backup-progress-modal").close(),t("#backup-error-pre").text(t("#bmi-loading-translation").text().trim()),t.bmi.modal("backup-error-modal").open();let n=t("#BMI_BLOG_URL").text().trim();"/"!==n.slice(-n.length)&&(n+="/"),O(n+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date,function(o){if(clearTimeout(e),0!=o||i){let e=t("#backup-error-pre")[0];t("#backup-error-pre").text(""),s=0,E(o,e)}else P(!0)})})},2e3)}function j(){t.bmi.modal("bfs-modal").open()}function q(e){let i=e.status,o=parseInt(e.errors),n=parseInt(e.iteratio),s=parseInt(e.sf);if(!0===i&&-1===n)return g=!1,window.onbeforeunload=null,t(".backup-minimize").removeClass("disabled"),D({filename:m},!0);if(!isNaN(s)&&s>-1&&(g.filessofar=s),!isNaN(n)&&n>-1&&(g.iteratio+=1),isNaN(o)||o>0||0==i){if(!isNaN(o)&&o>4)return h=!1,m=!1,g=!1,window.onbeforeunload=null,t(".backup-minimize").removeClass("disabled"),P();setTimeout(function(){return H(g,o)},1500)}else H(g,o)}function H(t,e=0){!1===g&&(t.iteratio=0,g=t),function(t,e,i=0){let o=new XMLHttpRequest;o.open("POST",t.url,!0),o.setRequestHeader("Content-Type","application/json"),o.setRequestHeader("Content-Accept","*/*"),o.setRequestHeader("Access-Control-Allow-Origin","*"),o.setRequestHeader("Content-ConfigDir",t.config_dir),o.setRequestHeader("Content-Content",t.content_dir),o.setRequestHeader("Content-Backups",t.backup_dir),o.setRequestHeader("Content-Identy",t.identy),o.setRequestHeader("Content-Url",t.url),o.setRequestHeader("Content-Abs",t.abs_dir),o.setRequestHeader("Content-Dir",t.root_dir),o.setRequestHeader("Content-Manifest",t.manifest),o.setRequestHeader("Content-Name",t.backupname),o.setRequestHeader("Content-Safelimit",t.safelimit),o.setRequestHeader("Content-Start",t.start),o.setRequestHeader("Content-Filessofar",t.filessofar),o.setRequestHeader("Content-Total",t.total_files),o.setRequestHeader("Content-Rev",t.rev),o.setRequestHeader("Content-It",t.iteratio),o.setRequestHeader("Content-Browser",!0),o.onload=function(){if(200===o.status){let t=o.getResponseHeader("Content-Finished");if(void 0!==t&&t&&"true"==t)return e({status:!0,iteratio:-1,sf:-1,errors:i=0});let n=o.getResponseHeader("Content-It"),s=o.getResponseHeader("Content-Filessofar");return e(void 0!==n&&n?{status:!0,iteratio:n,sf:s,errors:i}:{status:!1,iteratio:-1,sf:-1,errors:++i})}return e({status:!1,iteratio:-1,sf:-1,errors:++i})},o.onerror=function(){return e({status:!1,iteratio:-1,sf:-1,errors:++i})},o.send()}(g,q,e)}function F(e=function(){}){B(function(i){!0===i?t("#backup-progress-modal").hasClass("open")||(!1===p&&(o=!1,p=!0,f=!0),t("#bmi-ongoing-backup").show(300)):(t("#bmi-ongoing-backup").is(":visible")&&t("#bmi-ongoing-backup").hide(300),t("#backup-progress-modal").hasClass("open")&&!0===f?(!0===p&&(p=!1),f=!1,t.bmi.getCurrentBackups(function(e){t.bmi.fillWithNewBackups(e.backups,function(){!function(){let e=t("#BMI_BLOG_URL").text().trim();"/"!==e.slice(-e.length)&&(e+="/"),O(e+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date,function(e){if(!1===e)t.bmi.modal("backup-progress-modal").close();else{let i="Backup process aborted",o="[ERROR]";if((e=e.split("\n"))[e.length-1].includes(i)||e[e.length-2].includes(i))t.bmi.modal("backup-progress-modal").close(),t.bmi.alert("info",t("#bmi-aborted-al").text(),3e3);else if(e[e.length-1].includes(o)||e[e.length-2].includes(o))P();else{t.bmi.modal("backup-progress-modal").close(),t.bmi.modal("backup-success-modal").open();let e=t(t("#bmi_restore_tbody").find("tr")[0]).find(".bc-download-btn").attr("href");t("#download-backup-url").attr({href:e}),t("#text-input-copy").val(e)}}})}()})})):!0!==p||t("#backup-progress-modal").hasClass("open")||(p=!1,t.bmi.reloadBackups())),e()})}function N(e=function(){}){let i=t("#BMI_BLOG_URL").text().trim();"/"!==i.slice(-i.length)&&(i+="/"),O(i+"?backup-migration=PROGRESS_LOGS&progress-id=latest_migration_full.log&backup-id=current&t="+ +new Date,function(i){if(!i)return e();let o=i.split("\n").slice(0,1)[0];if(i=i.split("\n").slice(1).join("\n"),!1===o||isNaN(parseFloat(o)))return e();let n=t("#restore-live-log-wrapper").find("pre")[0];i.includes("<")||i.includes(">")||i&&0!=i&&void 0!==i&&E(i,n),z(o),e()})}function G(e=function(){}){t.bmi.ajax("htaccess-litespeed",{}).then(function(t){setTimeout(function(){e(!0)},400)}).catch(function(t){e(!1),console.log(t)})}function U(e=function(){},i=!1){t.bmi.ajax("migration-locked",{}).then(function(o){"success"==o.status?e(!0):(i||t.bmi._msg(o),e(!1))}).catch(function(t){console.log(t)})}function Q(e=""){U(function(e){e&&setTimeout(function(){if(!t("#restore-progress-modal").hasClass("open"))return;d=!1,b=!1,t("#restore-error-pre").text(t("#bmi-loading-translation").text().trim());let e=t("#BMI_BLOG_URL").text().trim();"/"!==e.slice(-e.length)&&(e+="/"),O(e+"?backup-migration=PROGRESS_LOGS&progress-id=latest_migration.log&backup-id=current&t="+ +new Date,function(e){if(0==e)setTimeout(function(){Q()},1500);else{let i=t("#restore-error-pre")[0];t("#restore-error-pre").text(""),s=0,E(e,i)}}),t.bmi.modal("restore-progress-modal").close(),t.bmi.modal("restore-error-modal").open()},1e3)},!0)}function W(){t.bmi.modal("restore-progress-modal").close(),t.bmi.modal("restore-success-modal").open(),setTimeout(function(){t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%"},500),w=!1}function J(o=!1,n=null){let r=l;if(!r||r.trim().length<=0)return t.bmi.alert("warning",t("#bmi-no-file").text(),3e3);t("#pre-restore-modal").hasClass("open")&&t.bmi.modal("pre-restore-modal").close(),t("#restore-progress-modal").hasClass("open")||t.bmi.modal("restore-progress-modal").open(),o||(t("#restore-live-log-wrapper").find("pre")[0].innerText=""),null==n&&(s=0,d=!0,clearTimeout(e),M(!0,function(){G(function(){N(function(){!function o(n,s,r,a=!1,l="false",c={}){null==r&&R(!0);t.bmi.ajax("restore-backup",{file:n,remote:s,secret:r,ignoreRunning:l,tmpname:a,options:c}).then(function(r){if("cli"===r.status){v={l:r.login,u:r.url},w=!0;let t=document.querySelector(".hide_so_much");if(t){let e=t.innerText;e.includes("001")?setTimeout(function(){W(),d=!1,w=!1},1e3):Q()}}else"success"===r.status?(v={l:r.login,u:r.url},N(function(){setTimeout(function(){clearInterval(i),clearTimeout(e),d=!1,t.bmi.modal("restore-progress-modal").close(),t.bmi.modal("restore-success-modal").open(),setTimeout(function(){t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%"},500)},1500)})):"secret"===r.status?(r.options.step=parseInt(r.options.step)+1,o(n,s,r.secret,r.tmp,"true",r.options)):"restore_ongoing"===r.status?(void 0!==r.options.firstDB&&(r.options.firstDB=!1),void 0!==r.options.dbFinished?!0!==r.options.dbFinished&&"true"!==r.options.dbFinished&&"1"!==r.options.dbFinished||(r.options.step=parseInt(r.options.step)+1):void 0!==r.options.dbConvertionFinished?"true"!==r.options.dbConvertionFinished&&!0!==r.options.dbConvertionFinished||(r.options.step=parseInt(r.options.step)+1):(r.options.step=parseInt(r.options.step)+1,4!=r.options.step&&"4"!=r.options.step||void 0===r.options.repeat_export||!0!==r.options.repeat_export&&"true"!==r.options.repeat_export&&"1"!==r.options.repeat_export||(r.options.step=3,r.options.firstExtract="false")),o(n,s,r.secret,r.tmp,"true",r.options)):"error"===r.status?setTimeout(function(){clearInterval(i),clearTimeout(e),Q()},1e3):(t.bmi.modal("pre-restore-modal").close(),t.bmi.modal("restore-progress-modal").close(),t.bmi._msg(r))}).catch(function(t,e){Q(e),console.log(t)})}(r,o,n)})})}))}function X(){return t("#bmi_restore_tbody").find('input[type="checkbox"]:checked')}function K(e){e.preventDefault(),t("#format-tip-wrp")[0].style.minWidth="calc(100% - 120px)","none"===t("#format-tip-wrp")[0].style.display?t("#format-tip-wrp").show(300):t("#format-tip-wrp").hide(300)}t("#configuration-reset-absolute").on("click",function(e){e.preventDefault(),t.bmi.ajax("reset-configuration",{}).then(function(e){"success"==e.status?window.location.reload():t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#download-site-infos").on("click",function(e){e.preventDefault(),t.bmi.ajax("get-site-data",{}).then(function(e){"success"==e.status?t.bmi.prepareFile("site_details_troubleshooting.txt",JSON.stringify(e.data)):t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#start-entire-backup").on("click",function(){t.bmi.modal("prenotice-modal").close(),t(".backup-minimize").removeClass("disabled"),clearTimeout(e),M(!1,function(){G(function(){f=!1,o=!1,p=!0,t.bmi.ajax("create-backup",{estaminated_size:k()}).then(function(s){if("success"==s.status)o=!0,clearTimeout(e),p=!1,A(function(){setTimeout(function(){D(s,!0)},350)});else if("background"==s.status){h=!0,m=s.filename;let i=document.querySelector(".hide_so_much");if(i){let s=i.innerText;s.includes("001")&&(o=!0,n=!0,clearTimeout(e),p=!1,D({filename:m},!0)),s.includes("002")&&P(),s.includes("003")&&(t.bmi.modal("backup-progress-modal").close(),t.bmi.alert("info",t("#bmi-aborted-al").text(),3e3))}}else"background_hard"==s.status?(h=!0,m=s.filename,s.settings.url=s.url,t.bmi.alert("success",t("#bmi-received-hard").text(),3e3),t(".backup-minimize").addClass("disabled"),t("#backup-progress-modal").hasClass("open")||t.bmi.modal("backup-progress-modal").open(),window.onbeforeunload=function(){return"Backup in progress..."},H(s.settings)):(p=!1,setTimeout(function(){clearInterval(i),t(".log-wrapper").find("pre")[0].innerText="",t(".progress-active-bar")[0].style.width="0%",t(".progress-percentage")[0].style.left="0%",t(".progress-percentage")[0].innerText="0%"},300),t.bmi._msg(s),t("#backup-progress-modal").hasClass("open")&&(t.bmi.modal("backup-progress-modal").close(),void 0!==s.bfs?j():P()))}).catch(function(e){t("#backup-progress-modal").hasClass("open")&&P(),console.log(e)}),s=0,p=!0,L()})})}),t("#open_trouble_extenstion").on("click",function(){t("#trouble_extenstion").hasClass("openned")?(t("#trouble_extenstion").hide(300),t("#trouble_extenstion").removeClass("openned"),t(this).removeClass("active")):(t("#trouble_extenstion").show(300),t("#trouble_extenstion").addClass("openned"),t(this).addClass("active"))}),t("#switch-show-trs").on("click",function(){let e=this.dataset.see,i=this.dataset.hide,o=t(".hide-show-tr");t(this).hasClass("shown")?(o.hide(300),t(this).removeClass("shown"),this.innerText=e):(o.show(300),t(this).addClass("shown"),this.innerText=i)}),t("#ex_b_fs").on("change",function(){t("#ex_b_fs").is(":checked")?t("#bmi__collon").show():t("#bmi__collon").hide()}),t("#show-upload-area").on("click",function(){t(".upload_area").hasClass("hidden")?(t(".upload_area").show(300),t(".upload_area").removeClass("hidden"),t([document.documentElement,document.body]).animate({scrollTop:t(this).offset().top-50+"px"},300)):(t(".upload_area").hide(300),t(".upload_area").addClass("hidden"))}),t(".bmi-copper").on("click",function(e){e.preventDefault();let i=t("#"+this.getAttribute("data-copy"))[0];i.value&&i.value.length>0?t.bmi.clipboard(i.value):t.bmi.clipboard(i.innerText)}),t("#bmi_restore_tbody").on("click",".restore-btn",function(e){U(function(i){if(i){let i=e.target.closest("tr").querySelector(".br_name").innerText;if(l=i,!i||i.trim().length<=0)return t.bmi.alert("warning",t("#bmi-no-file").text(),3e3);t("#restore-ok").prop("checked",!1),t.bmi.modal("pre-restore-modal").open()}})}),t("#quick-download-migration").on("click",function(){let e=t("#bm-d-url").val();t.bmi.isUrlValid(e)?U(function(i){i&&(e.length>0?(l=-100,t("#restore-ok").prop("checked",!1),t.bmi.modal("pre-restore-modal").open()):t.bmi.alert("warning",t("#bmi-invalid-url").text(),5e3))}):t.bmi.alert("warning",t("#bmi-invalid-url").text(),5e3)}),t("#restore-start-sure").on("click",function(){t("#restore-ok").is(":checked")?-100===l?(l=null,t("#restore-live-log-wrapper").find("pre")[0].innerText="",U(function(o){M(!0,function(){G(function(){if(o){let o=t("#bm-d-url").val();t("#restore_current_step").text(t("#bmi-downloading-remote").text()),t.bmi.ajax("download-backup",{url:o}).then(function(o){clearInterval(i),clearTimeout(e),"success"===o.status?(b=!0,R(!1),t.bmi.reloadBackups(),l=o.name,setTimeout(function(){clearInterval(i),t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%",t("#restore_current_step").text(t("#bmi-restoring-prepare").text())},600)):"cli_download"==o.status?(l=".cli_download",b=!0,R(!1)):"error"===o.status?Q():(t.bmi._msg(o),Q())}).catch(function(t,e){Q(e),console.log(t)}),t("#restore-live-log-wrapper").find("pre")[0].innerText="",s=0,d=!0,b=!0,R(),t.bmi.modal("pre-restore-modal").close(),t.bmi.modal("restore-progress-modal").open()}})})})):J():t.bmi.alert("warning",t("#bmi-restore-require-checkmark").text(),3e3)}),t(".backup-minimize").on("click",function(){B(function(e){!0===e?t("#bmi-ongoing-backup").show(300):t("#bmi-ongoing-backup").hide()})}),function t(){F(function(){setTimeout(function(){t()},_)})}(),t("#bmi-ongoing-backup").on("click",function(){B(function(e){!0===e?(s=0,L(),t.bmi.modal("backup-progress-modal").open()):(t.bmi.alert("info",t("#bmi-bc-ended").text(),3e3),t.bmi.reloadBackups()),t("#bmi-ongoing-backup").hide(300)})}),t("#bmi_support_chat").on("click",function(){if(0===t("#support-bmi").length){t("#bmi").append('<script id="support-bmi" src="'+t("#bmi-support-url-translation").val()+'" async><\/script>'),setTimeout(function(){t("#bmi_support_chat").hide()},100);var e=!1;let i=setInterval(function(){1==e&&clearInterval(i),void 0!==window.jivo_api&&(window.jivo_api.open(),e=!0)},30)}}),t("#bmi_restore_tbody").on("change",'input[type="checkbox"]',function(e){let i=X().length;i>0?t(".del-all-btn-wrp").show(300):t(".del-all-btn-wrp").hide(300),i==t("#bmi_restore_tbody").find('input[type="checkbox"]').length?t("#backups-select-all").prop("checked",!0):t("#backups-select-all").prop("checked",!1)}),t("#fix-uname-issues").on("click",function(e){e.preventDefault(),t.bmi.ajax("fix_uname_issues",{}).then(function(e){t.bmi.alert("success",t("#bmi-default-success").text(),3e3)}).catch(function(e){t.bmi.alert("error",t("#bmi-default-fail").text(),3e3)})}),t("#revert-uname-issues").on("click",function(e){e.preventDefault(),t.bmi.ajax("revert_uname_issues",{}).then(function(e){t.bmi.alert("success",t("#bmi-default-success").text(),3e3)}).catch(function(e){t.bmi.alert("error",t("#bmi-default-fail").text(),3e3)})}),t("#backups-select-all").on("change",function(){!0===this.checked?t("#bmi_restore_tbody").find('input[type="checkbox"]').prop("checked",!0):t("#bmi_restore_tbody").find('input[type="checkbox"]').prop("checked",!1),X().length>0?t(".del-all-btn-wrp").show(300):t(".del-all-btn-wrp").hide(300)}),t(".lrn-mr-btn, .closer-learn-more").on("click",function(){t(".learn_more_about_cron").hasClass("open")?(t(".learn_more_about_cron").removeClass("open"),t(".learn_more_about_cron").hide(300),t(".lrn-mr-btn").show(),t(".lrn-mr-btn").css({opacity:0}),t(".lrn-mr-btn").animate({opacity:1},300)):(t(".learn_more_about_cron").addClass("open"),t(".learn_more_about_cron").show(300),t(".lrn-mr-btn").css({opacity:1}),t(".lrn-mr-btn").animate({opacity:0},300,function(){t(".lrn-mr-btn").hide()}))}),t("#bmi-error-toggle").on("click",function(){t(".error-body").hasClass("open")?(t(".error-body").hide(300),t(".error-body").removeClass("open"),t("#bmi-error-toggle").text(t("#bmi-error-toggle").data("expand"))):(t(".error-body").show(300),t(".error-body").addClass("open"),t("#bmi-error-toggle").text(t("#bmi-error-toggle").data("collapse")))}),t("#bmi_send_test_mail").on("click",function(e){e.preventDefault(),t.bmi.ajax("send-test-mail",{}).then(function(e){t.bmi.alert("success",t("#bmi-email-success").text(),3e3)}).catch(function(e){t.bmi.alert("error",t("#bmi-email-fail").text(),3e3)})}),t("#bmi-error-dismiss").on("click",function(){t(".error-noticer").hide(300),setTimeout(function(){t(".error-noticer").remove()},330),t.bmi.ajax("dismiss-error-notice",{}).then(function(t){}).catch(function(t){})}),t(".deleteAllSelected").on("click",function(){let e=X(),i=[];for(let t=0;t<e.length;++t){let o=e[t].closest("tr");i.push(o.querySelector(".br_name").innerText)}t("#delete-confirm-modal").find(".text1").hide(),t("#delete-confirm-modal").find(".text2").show();let o=i.length;o<=0||(t("#backup-multiple-del-count").text(o),o>1?(t("#del-only-one").hide(),t("#del-more-than-one").show()):(t("#del-more-than-one").hide(),t("#del-only-one").show()),u=i,t.bmi.modal("delete-confirm-modal").open())}),t("#load-more-backups").on("click",function(e){e.preventDefault(),t.bmi.showMoreBackups()}),t("#show-format-tip").on("click",K),t("#hide-format-tip").on("click",K),t(".go-to-marbs").on("click",function(e){e.preventDefault(),document.getElementById("marbs").click(),t.bmi.modal().closeAll()}),t(".site-reloader").on("click",function(){let t=v.u;"/"!==t.slice(-t.length)&&(t+="/");let e=t+"?backup-migration=AFTER_RESTORE&backup-id="+v.l+"&progress-id=4u70L051n&t="+ +new Date;window.location=e}),async function(){C("plugins"),C("uploads"),C("themes"),C("contents_others"),C("wordpress")}(),t.bmi.ajax("get-dynamic-names",{}).then(function(e){let i=e.data;if(t("#bmi_exclusion_rules").text(""),void 0!==i&&void 0!==i.length){for(let e=0;e<i.length;++e){let o=t(".exclusion_template").clone();o.removeClass("exclusion_template"),o.find(".exclusion_txt").val(i[e].txt);let n=o.find(".exclusion_position").find("select"),s=o.find(".exclusion_where").find("select");n&&(n[0].setAttribute("data-def",i[e].pos),s&&(s[0].setAttribute("data-def",i[e].whr),t("#bmi_exclusion_rules").append(o),o.find(".exclusion_position").find(".bmi-dropdown").length>0&&t.bmi.setOption(o.find(".exclusion_position").find(".bmi-dropdown"),null,i[e].pos),o.find(".exclusion_where").find(".bmi-dropdown").length>0&&t.bmi.setOption(o.find(".exclusion_where").find(".bmi-dropdown"),null,i[e].whr)))}t("#dynamic-fpaths-names").text(e["dynamic-fpaths-names"].join("\n")),t("#dynamic-dpaths-names").text(e["dynamic-dpaths-names"].join("\n"))}}).catch(function(t){console.log(t)}),t.bmi.reloadBackups(),function(){let e=1e3*parseInt(t("#server-time-auto").attr("data-time")),i=new Date(e);t("#server-time-auto").text(i.toUTCString()),setInterval(function(){e+=1e3,i=new Date(e),t("#server-time-auto").text(i.toUTCString())},1e3),t("#ex_b_fs").is(":checked")?t("#bmi__collon").show():t("#bmi__collon").hide()}()}),jQuery(document).ready(function(t){t(".modal-opener").on("click",function(e){this.getAttribute("data-modal")&&""!=this.getAttribute("data-modal")&&(e.preventDefault(),this.getAttribute("data-close")&&t.bmi.modal(this.getAttribute("data-close")).close(),t.bmi.modal(this.getAttribute("data-modal")).open())}),t(".modal-closer").on("click",function(e){this.getAttribute("data-close")&&""!=this.getAttribute("data-close")?(e.preventDefault(),t.bmi.modal(this.getAttribute("data-close")).close()):this.closest(".modal")&&(e.preventDefault(),t("#"+this.closest(".modal").getAttribute("id")).length>0&&t.bmi.modal(this.closest(".modal").getAttribute("id")).close())}),t(".modal-close").on("click",function(e){this.closest(".modal")&&(e.preventDefault(),t.bmi.modal(this.closest(".modal").id).close())}),t(".modal").on("click",function(e){e.target!=this||t(e.target).hasClass("modal-no-close")||t.bmi.modal(this.id).close()})}),jQuery(document).ready(function(t){t.bmi.tooltips.init();let e,i=-1,o=!1,n="";for(let t=0;t<12;++t)n+="<div></div>";function s(o){clearInterval(e),0==o?(t(".upload-progress-bar").find("span")[0].style.width=o+"%",t(".upload-percentage").text(o+"%")):100==o?(t(".upload-progress-bar").find("span")[0].style.width=o+"%",t(".upload-percentage").text(o+"%")):function(o=0,n=1e3){if(i==o)return;i=o,clearInterval(e);let s=parseInt(t(".upload-percentage").text())-1;if(s>o&&0!=o)return;let r=o-s,a=s,l=Math.abs(Math.floor(n/r));e=setInterval(function(){a+=1,t(".upload-progress-bar").find("span")[0].style.width=a+"%",t(".upload-percentage").text(a+"%"),a>=100&&(clearInterval(e),i=null)},l)}(o,1e3)}t(".spinner-loader").html(n).addClass("lds-spinner"),t.fchunker({upId:"upid",upShardSize:"5",upMaxSize:"2000",upUrl:ajaxurl,upType:"zip",upCallBack:function(e){var i=e.status,n=e.message;e.url,Math.random();2==i&&(setTimeout(function(){t("#drop-area").show(300),t(".upload-progress").hide(300)},100),t.bmi.alert("success",t("#bmi-upload-end").text(),3e3),t.bmi.modal("upload-success-modal").open(),t.bmi.reloadBackups()),1==i&&(o||(t.bmi.alert("success",t("#bmi-upload-start").text(),3e3),o=!0)),0==i&&(t.upErrorMsg(n),t("#drop-area").show(300),t(".upload-progress").hide(300)),5==i&&(t.bmi.modal("upload-invalid-manifest-modal").open(),t("#drop-area").show(300),t(".upload-progress").hide(300)),3==i&&(s(100),t.upErrorMsg(n),t("#drop-area").show(300),t(".upload-progress").hide(300))},upEvent:function(t){s(t)},upStop:function(e){s(0),setTimeout(function(){t("#drop-area").show(300),t(".upload-progress").hide(300)},100),e.includes("Type error")?(t.bmi.modal("upload-wrong-file-modal").open(),t.bmi.alert("warning",t("#bmi-upload-wrong").text(),3e3)):e.includes("File already exists")?(t.bmi.modal("upload-exist-file-modal").open(),t.bmi.alert("warning",t("#bmi-upload-exists").text(),3e3)):(t.bmi.alert("error",t("#bmi-upload-error").text(),3e3),console.error(e))},upStart:function(){o=!1,i=-1,s(0),setTimeout(function(){t("#drop-area").hide(300),t(".upload-progress").show(300)},100)}})}),jQuery(document).ready(function(t){function e(t){for(let e=0;e<t.length;++e){let i=t[e].closest(".container-radio");i&&void 0!=typeof i.classList&&(i.classList.remove("active"),!0===t[e].checked&&i.classList.add("active"))}}t('input[type="radio"]').on("change",function(){let t=this.getAttribute("name");this.closest(".container-radio");e(document.querySelectorAll('[name="'+t+'"]'))}),e(document.getElementById("bmi").querySelectorAll('input[type="radio"]'))}),jQuery(document).ready(function(t){let e=!1;t(".tabs").on("click",".tab",function(i){if(this.classList.contains("active"))return;if(!0===e)return;e=!0,t.bmi.collapsers.closeAll();let o=this.getAttribute("data-point");"manage-restore-wrapper"==o?(t("#create-backup-wrapper").hide(300),t('[data-point="create-backup-wrapper"]').removeClass("active")):"create-backup-wrapper"==o&&(t("#manage-restore-wrapper").hide(300),t('[data-point="manage-restore-wrapper"]').removeClass("active")),t("#"+o).show(300),t(this).addClass("active"),setTimeout(function(){e=!1},320)})}),jQuery(document).ready(function(t){let e=document.getElementById("drop-area");function i(t){t.preventDefault(),t.stopPropagation()}function o(t){e.classList.add("highlight")}function n(t){e.classList.remove("highlight")}e&&(["dragenter","dragover","dragleave","drop"].forEach(t=>{e.addEventListener(t,i,!1)}),["dragenter","dragover"].forEach(t=>{e.addEventListener(t,o,!1),document.querySelector("body").addEventListener(t,o,!1)}),["dragleave","drop","mouseleave"].forEach(t=>{e.addEventListener(t,n,!1)}),t("body, #drop-area").on("mouseleave dragleave drop",function(){n()}),e.addEventListener("drop",function(t){!function(t){t=[...t],jQuery.fchunker_upload("file",t[0])}(t.dataTransfer.files)},!1))});
|
1 |
+
!function(t,e){"function"==typeof define&&define.amd?define(["jquery"],function(t){return e(t)}):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(0,function(t){var e={animation:"fade",animationDuration:350,content:null,contentAsHTML:!1,contentCloning:!1,debug:!0,delay:300,delayTouch:[300,500],functionInit:null,functionBefore:null,functionReady:null,functionAfter:null,functionFormat:null,IEmin:6,interactive:!1,multiple:!1,parent:null,plugins:["sideTip"],repositionOnScroll:!1,restoration:"none",selfDestruction:!0,theme:[],timer:0,trackerInterval:500,trackOrigin:!1,trackTooltip:!1,trigger:"hover",triggerClose:{click:!1,mouseleave:!1,originClick:!1,scroll:!1,tap:!1,touchleave:!1},triggerOpen:{click:!1,mouseenter:!1,tap:!1,touchstart:!1},updateAnimation:"rotate",zIndex:9999999},o="undefined"!=typeof window?window:null,i={hasTouchCapability:!(!o||!("ontouchstart"in o||o.DocumentTouch&&o.document instanceof o.DocumentTouch||o.navigator.maxTouchPoints)),hasTransitions:function(){if(!o)return!1;var t=(o.document.body||o.document.documentElement).style,e="transition",i=["Moz","Webkit","Khtml","O","ms"];if("string"==typeof t[e])return!0;e=e.charAt(0).toUpperCase()+e.substr(1);for(var n=0;n<i.length;n++)if("string"==typeof t[i[n]+e])return!0;return!1}(),IE:!1,semVer:"4.2.8",window:o},n=function(){this.__$emitterPrivate=t({}),this.__$emitterPublic=t({}),this.__instancesLatestArr=[],this.__plugins={},this._env=i};function s(t){this.$container,this.constraints=null,this.__$tooltip,this.__init(t)}function r(e,o){var i=!0;return t.each(e,function(t,n){if(void 0===o[t]||e[t]!==o[t])return i=!1,!1}),i}function a(e){var o=e.attr("id"),n=o?i.window.document.getElementById(o):null;return n?n===e[0]:t.contains(i.window.document.body,e[0])}n.prototype={__bridge:function(e,o,i){if(!o[i]){var n=function(){};n.prototype=e;var s=new n;s.__init&&s.__init(o),t.each(e,function(t,e){0!=t.indexOf("__")&&(o[t]||(o[t]=function(){return s[t].apply(s,Array.prototype.slice.apply(arguments))},o[t].bridged=s))}),o[i]=s}return this},__setWindow:function(t){return i.window=t,this},_getRuler:function(t){return new s(t)},_off:function(){return this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_on:function(){return this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_one:function(){return this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_plugin:function(e){if("string"==typeof e){var o=e,i=null;return o.indexOf(".")>0?i=this.__plugins[o]:t.each(this.__plugins,function(t,e){if(e.name.substring(e.name.length-o.length-1)=="."+o)return i=e,!1}),i}if(e.name.indexOf(".")<0)throw new Error("Plugins must be namespaced");return this.__plugins[e.name]=e,e.core&&this.__bridge(e.core,this,e.name),this},_trigger:function(){var t=Array.prototype.slice.apply(arguments);return"string"==typeof t[0]&&(t[0]={type:t[0]}),this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,t),this.__$emitterPublic.trigger.apply(this.__$emitterPublic,t),this},instances:function(e){var o=[];return t(e||".tooltipstered").each(function(){var e=t(this),i=e.data("tooltipster-ns");i&&t.each(i,function(t,i){o.push(e.data(i))})}),o},instancesLatest:function(){return this.__instancesLatestArr},off:function(){return this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},on:function(){return this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},one:function(){return this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},origins:function(e){return t((e?e+" ":"")+".tooltipstered").toArray()},setDefaults:function(o){return t.extend(e,o),this},triggerHandler:function(){return this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this}},t.tooltipster=new n,t.Tooltipster=function(e,o){this.__callbacks={close:[],open:[]},this.__closingTime,this.__Content,this.__contentBcr,this.__destroyed=!1,this.__$emitterPrivate=t({}),this.__$emitterPublic=t({}),this.__enabled=!0,this.__garbageCollector,this.__Geometry,this.__lastPosition,this.__namespace="tooltipster-"+Math.round(1e6*Math.random()),this.__options,this.__$originParents,this.__pointerIsOverOrigin=!1,this.__previousThemes=[],this.__state="closed",this.__timeouts={close:[],open:null},this.__touchEvents=[],this.__tracker=null,this._$origin,this._$tooltip,this.__init(e,o)},t.Tooltipster.prototype={__init:function(o,n){var s=this;if(s._$origin=t(o),s.__options=t.extend(!0,{},e,n),s.__optionsFormat(),!i.IE||i.IE>=s.__options.IEmin){var r=null;if(void 0===s._$origin.data("tooltipster-initialTitle")&&(void 0===(r=s._$origin.attr("title"))&&(r=null),s._$origin.data("tooltipster-initialTitle",r)),null!==s.__options.content)s.__contentSet(s.__options.content);else{var a,l=s._$origin.attr("data-tooltip-content");l&&(a=t(l)),a&&a[0]?s.__contentSet(a.first()):s.__contentSet(r)}s._$origin.removeAttr("title").addClass("tooltipstered"),s.__prepareOrigin(),s.__prepareGC(),t.each(s.__options.plugins,function(t,e){s._plug(e)}),i.hasTouchCapability&&t(i.window.document.body).on("touchmove."+s.__namespace+"-triggerOpen",function(t){s._touchRecordEvent(t)}),s._on("created",function(){s.__prepareTooltip()})._on("repositioned",function(t){s.__lastPosition=t.position})}else s.__options.disabled=!0},__contentInsert:function(){var t=this._$tooltip.find(".tooltipster-content"),e=this.__Content;return this._trigger({type:"format",content:this.__Content,format:function(t){e=t}}),this.__options.functionFormat&&(e=this.__options.functionFormat.call(this,this,{origin:this._$origin[0]},this.__Content)),"string"!=typeof e||this.__options.contentAsHTML?t.empty().append(e):t.text(e),this},__contentSet:function(e){return e instanceof t&&this.__options.contentCloning&&(e=e.clone(!0)),this.__Content=e,this._trigger({type:"updated",content:e}),this},__destroyError:function(){throw new Error("This tooltip has been destroyed and cannot execute your method call.")},__geometry:function(){var e=this._$origin,o=this._$origin.is("area");if(o){var n=this._$origin.parent().attr("name");e=t('img[usemap="#'+n+'"]')}var s=e[0].getBoundingClientRect(),r=t(i.window.document),a=t(i.window),l=e,c={available:{document:null,window:null},document:{size:{height:r.height(),width:r.width()}},window:{scroll:{left:i.window.scrollX||i.window.document.documentElement.scrollLeft,top:i.window.scrollY||i.window.document.documentElement.scrollTop},size:{height:a.height(),width:a.width()}},origin:{fixedLineage:!1,offset:{},size:{height:s.bottom-s.top,width:s.right-s.left},usemapImage:o?e[0]:null,windowOffset:{bottom:s.bottom,left:s.left,right:s.right,top:s.top}}};if(o){var d=this._$origin.attr("shape"),u=this._$origin.attr("coords");if(u&&(u=u.split(","),t.map(u,function(t,e){u[e]=parseInt(t)})),"default"!=d)switch(d){case"circle":var p=u[0],f=u[1],_=u[2],m=f-_,h=p-_;c.origin.size.height=2*_,c.origin.size.width=c.origin.size.height,c.origin.windowOffset.left+=h,c.origin.windowOffset.top+=m;break;case"rect":var g=u[0],b=u[1],w=u[2],v=u[3];c.origin.size.height=v-b,c.origin.size.width=w-g,c.origin.windowOffset.left+=g,c.origin.windowOffset.top+=b;break;case"poly":for(var y=0,k=0,x=0,C=0,$="even",T=0;T<u.length;T++){var I=u[T];"even"==$?(I>x&&(x=I,0===T&&(y=x)),I<y&&(y=I),$="odd"):(I>C&&(C=I,1==T&&(k=C)),I<k&&(k=I),$="even")}c.origin.size.height=C-k,c.origin.size.width=x-y,c.origin.windowOffset.left+=y,c.origin.windowOffset.top+=k}}for(this._trigger({type:"geometry",edit:function(t){c.origin.size.height=t.height,c.origin.windowOffset.left=t.left,c.origin.windowOffset.top=t.top,c.origin.size.width=t.width},geometry:{height:c.origin.size.height,left:c.origin.windowOffset.left,top:c.origin.windowOffset.top,width:c.origin.size.width}}),c.origin.windowOffset.right=c.origin.windowOffset.left+c.origin.size.width,c.origin.windowOffset.bottom=c.origin.windowOffset.top+c.origin.size.height,c.origin.offset.left=c.origin.windowOffset.left+c.window.scroll.left,c.origin.offset.top=c.origin.windowOffset.top+c.window.scroll.top,c.origin.offset.bottom=c.origin.offset.top+c.origin.size.height,c.origin.offset.right=c.origin.offset.left+c.origin.size.width,c.available.document={bottom:{height:c.document.size.height-c.origin.offset.bottom,width:c.document.size.width},left:{height:c.document.size.height,width:c.origin.offset.left},right:{height:c.document.size.height,width:c.document.size.width-c.origin.offset.right},top:{height:c.origin.offset.top,width:c.document.size.width}},c.available.window={bottom:{height:Math.max(c.window.size.height-Math.max(c.origin.windowOffset.bottom,0),0),width:c.window.size.width},left:{height:c.window.size.height,width:Math.max(c.origin.windowOffset.left,0)},right:{height:c.window.size.height,width:Math.max(c.window.size.width-Math.max(c.origin.windowOffset.right,0),0)},top:{height:Math.max(c.origin.windowOffset.top,0),width:c.window.size.width}};"html"!=l[0].tagName.toLowerCase();){if("fixed"==l.css("position")){c.origin.fixedLineage=!0;break}l=l.parent()}return c},__optionsFormat:function(){return"number"==typeof this.__options.animationDuration&&(this.__options.animationDuration=[this.__options.animationDuration,this.__options.animationDuration]),"number"==typeof this.__options.delay&&(this.__options.delay=[this.__options.delay,this.__options.delay]),"number"==typeof this.__options.delayTouch&&(this.__options.delayTouch=[this.__options.delayTouch,this.__options.delayTouch]),"string"==typeof this.__options.theme&&(this.__options.theme=[this.__options.theme]),null===this.__options.parent?this.__options.parent=t(i.window.document.body):"string"==typeof this.__options.parent&&(this.__options.parent=t(this.__options.parent)),"hover"==this.__options.trigger?(this.__options.triggerOpen={mouseenter:!0,touchstart:!0},this.__options.triggerClose={mouseleave:!0,originClick:!0,touchleave:!0}):"click"==this.__options.trigger&&(this.__options.triggerOpen={click:!0,tap:!0},this.__options.triggerClose={click:!0,tap:!0}),this._trigger("options"),this},__prepareGC:function(){var e=this;return e.__options.selfDestruction?e.__garbageCollector=setInterval(function(){var o=(new Date).getTime();e.__touchEvents=t.grep(e.__touchEvents,function(t,e){return o-t.time>6e4}),a(e._$origin)||e.close(function(){e.destroy()})},2e4):clearInterval(e.__garbageCollector),e},__prepareOrigin:function(){var t=this;if(t._$origin.off("."+t.__namespace+"-triggerOpen"),i.hasTouchCapability&&t._$origin.on("touchstart."+t.__namespace+"-triggerOpen touchend."+t.__namespace+"-triggerOpen touchcancel."+t.__namespace+"-triggerOpen",function(e){t._touchRecordEvent(e)}),t.__options.triggerOpen.click||t.__options.triggerOpen.tap&&i.hasTouchCapability){var e="";t.__options.triggerOpen.click&&(e+="click."+t.__namespace+"-triggerOpen "),t.__options.triggerOpen.tap&&i.hasTouchCapability&&(e+="touchend."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){t._touchIsMeaningfulEvent(e)&&t._open(e)})}if(t.__options.triggerOpen.mouseenter||t.__options.triggerOpen.touchstart&&i.hasTouchCapability){e="";t.__options.triggerOpen.mouseenter&&(e+="mouseenter."+t.__namespace+"-triggerOpen "),t.__options.triggerOpen.touchstart&&i.hasTouchCapability&&(e+="touchstart."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){!t._touchIsTouchEvent(e)&&t._touchIsEmulatedEvent(e)||(t.__pointerIsOverOrigin=!0,t._openShortly(e))})}if(t.__options.triggerClose.mouseleave||t.__options.triggerClose.touchleave&&i.hasTouchCapability){e="";t.__options.triggerClose.mouseleave&&(e+="mouseleave."+t.__namespace+"-triggerOpen "),t.__options.triggerClose.touchleave&&i.hasTouchCapability&&(e+="touchend."+t.__namespace+"-triggerOpen touchcancel."+t.__namespace+"-triggerOpen"),t._$origin.on(e,function(e){t._touchIsMeaningfulEvent(e)&&(t.__pointerIsOverOrigin=!1)})}return t},__prepareTooltip:function(){var e=this,o=e.__options.interactive?"auto":"";return e._$tooltip.attr("id",e.__namespace).css({"pointer-events":o,zIndex:e.__options.zIndex}),t.each(e.__previousThemes,function(t,o){e._$tooltip.removeClass(o)}),t.each(e.__options.theme,function(t,o){e._$tooltip.addClass(o)}),e.__previousThemes=t.merge([],e.__options.theme),e},__scrollHandler:function(e){if(this.__options.triggerClose.scroll)this._close(e);else if(a(this._$origin)&&a(this._$tooltip)){var o=null;if(e.target===i.window.document)this.__Geometry.origin.fixedLineage||this.__options.repositionOnScroll&&this.reposition(e);else{o=this.__geometry();var n=!1;if("fixed"!=this._$origin.css("position")&&this.__$originParents.each(function(e,i){var s=t(i),r=s.css("overflow-x"),a=s.css("overflow-y");if("visible"!=r||"visible"!=a){var l=i.getBoundingClientRect();if("visible"!=r&&(o.origin.windowOffset.left<l.left||o.origin.windowOffset.right>l.right))return n=!0,!1;if("visible"!=a&&(o.origin.windowOffset.top<l.top||o.origin.windowOffset.bottom>l.bottom))return n=!0,!1}if("fixed"==s.css("position"))return!1}),n)this._$tooltip.css("visibility","hidden");else if(this._$tooltip.css("visibility","visible"),this.__options.repositionOnScroll)this.reposition(e);else{var s=o.origin.offset.left-this.__Geometry.origin.offset.left,r=o.origin.offset.top-this.__Geometry.origin.offset.top;this._$tooltip.css({left:this.__lastPosition.coord.left+s,top:this.__lastPosition.coord.top+r})}}this._trigger({type:"scroll",event:e,geo:o})}return this},__stateSet:function(t){return this.__state=t,this._trigger({type:"state",state:t}),this},__timeoutsClear:function(){return clearTimeout(this.__timeouts.open),this.__timeouts.open=null,t.each(this.__timeouts.close,function(t,e){clearTimeout(e)}),this.__timeouts.close=[],this},__trackerStart:function(){var t=this,e=t._$tooltip.find(".tooltipster-content");return t.__options.trackTooltip&&(t.__contentBcr=e[0].getBoundingClientRect()),t.__tracker=setInterval(function(){if(a(t._$origin)&&a(t._$tooltip)){if(t.__options.trackOrigin){var o=t.__geometry(),i=!1;r(o.origin.size,t.__Geometry.origin.size)&&(t.__Geometry.origin.fixedLineage?r(o.origin.windowOffset,t.__Geometry.origin.windowOffset)&&(i=!0):r(o.origin.offset,t.__Geometry.origin.offset)&&(i=!0)),i||(t.__options.triggerClose.mouseleave?t._close():t.reposition())}if(t.__options.trackTooltip){var n=e[0].getBoundingClientRect();n.height===t.__contentBcr.height&&n.width===t.__contentBcr.width||(t.reposition(),t.__contentBcr=n)}}else t._close()},t.__options.trackerInterval),t},_close:function(e,o,n){var s=this,r=!0;if(s._trigger({type:"close",event:e,stop:function(){r=!1}}),r||n){o&&s.__callbacks.close.push(o),s.__callbacks.open=[],s.__timeoutsClear();var a=function(){t.each(s.__callbacks.close,function(t,o){o.call(s,s,{event:e,origin:s._$origin[0]})}),s.__callbacks.close=[]};if("closed"!=s.__state){var l=!0,c=(new Date).getTime()+s.__options.animationDuration[1];if("disappearing"==s.__state&&c>s.__closingTime&&s.__options.animationDuration[1]>0&&(l=!1),l){s.__closingTime=c,"disappearing"!=s.__state&&s.__stateSet("disappearing");var d=function(){clearInterval(s.__tracker),s._trigger({type:"closing",event:e}),s._$tooltip.off("."+s.__namespace+"-triggerClose").removeClass("tooltipster-dying"),t(i.window).off("."+s.__namespace+"-triggerClose"),s.__$originParents.each(function(e,o){t(o).off("scroll."+s.__namespace+"-triggerClose")}),s.__$originParents=null,t(i.window.document.body).off("."+s.__namespace+"-triggerClose"),s._$origin.off("."+s.__namespace+"-triggerClose"),s._off("dismissable"),s.__stateSet("closed"),s._trigger({type:"after",event:e}),s.__options.functionAfter&&s.__options.functionAfter.call(s,s,{event:e,origin:s._$origin[0]}),a()};i.hasTransitions?(s._$tooltip.css({"-moz-animation-duration":s.__options.animationDuration[1]+"ms","-ms-animation-duration":s.__options.animationDuration[1]+"ms","-o-animation-duration":s.__options.animationDuration[1]+"ms","-webkit-animation-duration":s.__options.animationDuration[1]+"ms","animation-duration":s.__options.animationDuration[1]+"ms","transition-duration":s.__options.animationDuration[1]+"ms"}),s._$tooltip.clearQueue().removeClass("tooltipster-show").addClass("tooltipster-dying"),s.__options.animationDuration[1]>0&&s._$tooltip.delay(s.__options.animationDuration[1]),s._$tooltip.queue(d)):s._$tooltip.stop().fadeOut(s.__options.animationDuration[1],d)}}else a()}return s},_off:function(){return this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_on:function(){return this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_one:function(){return this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments)),this},_open:function(e,o){var n=this;if(!n.__destroying&&a(n._$origin)&&n.__enabled){var s=!0;if("closed"==n.__state&&(n._trigger({type:"before",event:e,stop:function(){s=!1}}),s&&n.__options.functionBefore&&(s=n.__options.functionBefore.call(n,n,{event:e,origin:n._$origin[0]}))),!1!==s&&null!==n.__Content){o&&n.__callbacks.open.push(o),n.__callbacks.close=[],n.__timeoutsClear();var r,l=function(){"stable"!=n.__state&&n.__stateSet("stable"),t.each(n.__callbacks.open,function(t,e){e.call(n,n,{origin:n._$origin[0],tooltip:n._$tooltip[0]})}),n.__callbacks.open=[]};if("closed"!==n.__state)r=0,"disappearing"===n.__state?(n.__stateSet("appearing"),i.hasTransitions?(n._$tooltip.clearQueue().removeClass("tooltipster-dying").addClass("tooltipster-show"),n.__options.animationDuration[0]>0&&n._$tooltip.delay(n.__options.animationDuration[0]),n._$tooltip.queue(l)):n._$tooltip.stop().fadeIn(l)):"stable"==n.__state&&l();else{if(n.__stateSet("appearing"),r=n.__options.animationDuration[0],n.__contentInsert(),n.reposition(e,!0),i.hasTransitions?(n._$tooltip.addClass("tooltipster-"+n.__options.animation).addClass("tooltipster-initial").css({"-moz-animation-duration":n.__options.animationDuration[0]+"ms","-ms-animation-duration":n.__options.animationDuration[0]+"ms","-o-animation-duration":n.__options.animationDuration[0]+"ms","-webkit-animation-duration":n.__options.animationDuration[0]+"ms","animation-duration":n.__options.animationDuration[0]+"ms","transition-duration":n.__options.animationDuration[0]+"ms"}),setTimeout(function(){"closed"!=n.__state&&(n._$tooltip.addClass("tooltipster-show").removeClass("tooltipster-initial"),n.__options.animationDuration[0]>0&&n._$tooltip.delay(n.__options.animationDuration[0]),n._$tooltip.queue(l))},0)):n._$tooltip.css("display","none").fadeIn(n.__options.animationDuration[0],l),n.__trackerStart(),t(i.window).on("resize."+n.__namespace+"-triggerClose",function(e){var o=t(document.activeElement);(o.is("input")||o.is("textarea"))&&t.contains(n._$tooltip[0],o[0])||n.reposition(e)}).on("scroll."+n.__namespace+"-triggerClose",function(t){n.__scrollHandler(t)}),n.__$originParents=n._$origin.parents(),n.__$originParents.each(function(e,o){t(o).on("scroll."+n.__namespace+"-triggerClose",function(t){n.__scrollHandler(t)})}),n.__options.triggerClose.mouseleave||n.__options.triggerClose.touchleave&&i.hasTouchCapability){n._on("dismissable",function(t){t.dismissable?t.delay?(p=setTimeout(function(){n._close(t.event)},t.delay),n.__timeouts.close.push(p)):n._close(t):clearTimeout(p)});var c=n._$origin,d="",u="",p=null;n.__options.interactive&&(c=c.add(n._$tooltip)),n.__options.triggerClose.mouseleave&&(d+="mouseenter."+n.__namespace+"-triggerClose ",u+="mouseleave."+n.__namespace+"-triggerClose "),n.__options.triggerClose.touchleave&&i.hasTouchCapability&&(d+="touchstart."+n.__namespace+"-triggerClose",u+="touchend."+n.__namespace+"-triggerClose touchcancel."+n.__namespace+"-triggerClose"),c.on(u,function(t){if(n._touchIsTouchEvent(t)||!n._touchIsEmulatedEvent(t)){var e="mouseleave"==t.type?n.__options.delay:n.__options.delayTouch;n._trigger({delay:e[1],dismissable:!0,event:t,type:"dismissable"})}}).on(d,function(t){!n._touchIsTouchEvent(t)&&n._touchIsEmulatedEvent(t)||n._trigger({dismissable:!1,event:t,type:"dismissable"})})}n.__options.triggerClose.originClick&&n._$origin.on("click."+n.__namespace+"-triggerClose",function(t){n._touchIsTouchEvent(t)||n._touchIsEmulatedEvent(t)||n._close(t)}),(n.__options.triggerClose.click||n.__options.triggerClose.tap&&i.hasTouchCapability)&&setTimeout(function(){if("closed"!=n.__state){var e="",o=t(i.window.document.body);n.__options.triggerClose.click&&(e+="click."+n.__namespace+"-triggerClose "),n.__options.triggerClose.tap&&i.hasTouchCapability&&(e+="touchend."+n.__namespace+"-triggerClose"),o.on(e,function(e){n._touchIsMeaningfulEvent(e)&&(n._touchRecordEvent(e),n.__options.interactive&&t.contains(n._$tooltip[0],e.target)||n._close(e))}),n.__options.triggerClose.tap&&i.hasTouchCapability&&o.on("touchstart."+n.__namespace+"-triggerClose",function(t){n._touchRecordEvent(t)})}},0),n._trigger("ready"),n.__options.functionReady&&n.__options.functionReady.call(n,n,{origin:n._$origin[0],tooltip:n._$tooltip[0]})}if(n.__options.timer>0){p=setTimeout(function(){n._close()},n.__options.timer+r);n.__timeouts.close.push(p)}}}return n},_openShortly:function(t){var e=this,o=!0;if("stable"!=e.__state&&"appearing"!=e.__state&&!e.__timeouts.open&&(e._trigger({type:"start",event:t,stop:function(){o=!1}}),o)){var i=0==t.type.indexOf("touch")?e.__options.delayTouch:e.__options.delay;i[0]?e.__timeouts.open=setTimeout(function(){e.__timeouts.open=null,e.__pointerIsOverOrigin&&e._touchIsMeaningfulEvent(t)?(e._trigger("startend"),e._open(t)):e._trigger("startcancel")},i[0]):(e._trigger("startend"),e._open(t))}return e},_optionsExtract:function(e,o){var i=this,n=t.extend(!0,{},o),s=i.__options[e];return s||(s={},t.each(o,function(t,e){var o=i.__options[t];void 0!==o&&(s[t]=o)})),t.each(n,function(e,o){void 0!==s[e]&&("object"!=typeof o||o instanceof Array||null==o||"object"!=typeof s[e]||s[e]instanceof Array||null==s[e]?n[e]=s[e]:t.extend(n[e],s[e]))}),n},_plug:function(e){var o=t.tooltipster._plugin(e);if(!o)throw new Error('The "'+e+'" plugin is not defined');return o.instance&&t.tooltipster.__bridge(o.instance,this,o.name),this},_touchIsEmulatedEvent:function(t){for(var e=!1,o=(new Date).getTime(),i=this.__touchEvents.length-1;i>=0;i--){var n=this.__touchEvents[i];if(!(o-n.time<500))break;n.target===t.target&&(e=!0)}return e},_touchIsMeaningfulEvent:function(t){return this._touchIsTouchEvent(t)&&!this._touchSwiped(t.target)||!this._touchIsTouchEvent(t)&&!this._touchIsEmulatedEvent(t)},_touchIsTouchEvent:function(t){return 0==t.type.indexOf("touch")},_touchRecordEvent:function(t){return this._touchIsTouchEvent(t)&&(t.time=(new Date).getTime(),this.__touchEvents.push(t)),this},_touchSwiped:function(t){for(var e=!1,o=this.__touchEvents.length-1;o>=0;o--){var i=this.__touchEvents[o];if("touchmove"==i.type){e=!0;break}if("touchstart"==i.type&&t===i.target)break}return e},_trigger:function(){var e=Array.prototype.slice.apply(arguments);return"string"==typeof e[0]&&(e[0]={type:e[0]}),e[0].instance=this,e[0].origin=this._$origin?this._$origin[0]:null,e[0].tooltip=this._$tooltip?this._$tooltip[0]:null,this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,e),t.tooltipster._trigger.apply(t.tooltipster,e),this.__$emitterPublic.trigger.apply(this.__$emitterPublic,e),this},_unplug:function(e){var o=this;if(o[e]){var i=t.tooltipster._plugin(e);i.instance&&t.each(i.instance,function(t,i){o[t]&&o[t].bridged===o[e]&&delete o[t]}),o[e].__destroy&&o[e].__destroy(),delete o[e]}return o},close:function(t){return this.__destroyed?this.__destroyError():this._close(null,t),this},content:function(t){var e=this;if(void 0===t)return e.__Content;if(e.__destroyed)e.__destroyError();else if(e.__contentSet(t),null!==e.__Content){if("closed"!==e.__state&&(e.__contentInsert(),e.reposition(),e.__options.updateAnimation))if(i.hasTransitions){var o=e.__options.updateAnimation;e._$tooltip.addClass("tooltipster-update-"+o),setTimeout(function(){"closed"!=e.__state&&e._$tooltip.removeClass("tooltipster-update-"+o)},1e3)}else e._$tooltip.fadeTo(200,.5,function(){"closed"!=e.__state&&e._$tooltip.fadeTo(200,1)})}else e._close();return e},destroy:function(){var e=this;if(e.__destroyed)e.__destroyError();else{"closed"!=e.__state?e.option("animationDuration",0)._close(null,null,!0):e.__timeoutsClear(),e._trigger("destroy"),e.__destroyed=!0,e._$origin.removeData(e.__namespace).off("."+e.__namespace+"-triggerOpen"),t(i.window.document.body).off("."+e.__namespace+"-triggerOpen");var o=e._$origin.data("tooltipster-ns");if(o)if(1===o.length){var n=null;"previous"==e.__options.restoration?n=e._$origin.data("tooltipster-initialTitle"):"current"==e.__options.restoration&&(n="string"==typeof e.__Content?e.__Content:t("<div></div>").append(e.__Content).html()),n&&e._$origin.attr("title",n),e._$origin.removeClass("tooltipstered"),e._$origin.removeData("tooltipster-ns").removeData("tooltipster-initialTitle")}else o=t.grep(o,function(t,o){return t!==e.__namespace}),e._$origin.data("tooltipster-ns",o);e._trigger("destroyed"),e._off(),e.off(),e.__Content=null,e.__$emitterPrivate=null,e.__$emitterPublic=null,e.__options.parent=null,e._$origin=null,e._$tooltip=null,t.tooltipster.__instancesLatestArr=t.grep(t.tooltipster.__instancesLatestArr,function(t,o){return e!==t}),clearInterval(e.__garbageCollector)}return e},disable:function(){return this.__destroyed?(this.__destroyError(),this):(this._close(),this.__enabled=!1,this)},elementOrigin:function(){if(!this.__destroyed)return this._$origin[0];this.__destroyError()},elementTooltip:function(){return this._$tooltip?this._$tooltip[0]:null},enable:function(){return this.__enabled=!0,this},hide:function(t){return this.close(t)},instance:function(){return this},off:function(){return this.__destroyed||this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},on:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},one:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this},open:function(t){return this.__destroyed?this.__destroyError():this._open(null,t),this},option:function(e,o){return void 0===o?this.__options[e]:(this.__destroyed?this.__destroyError():(this.__options[e]=o,this.__optionsFormat(),t.inArray(e,["trigger","triggerClose","triggerOpen"])>=0&&this.__prepareOrigin(),"selfDestruction"===e&&this.__prepareGC()),this)},reposition:function(t,e){return this.__destroyed?this.__destroyError():"closed"!=this.__state&&a(this._$origin)&&(e||a(this._$tooltip))&&(e||this._$tooltip.detach(),this.__Geometry=this.__geometry(),this._trigger({type:"reposition",event:t,helper:{geo:this.__Geometry}})),this},show:function(t){return this.open(t)},status:function(){return{destroyed:this.__destroyed,enabled:this.__enabled,open:"closed"!==this.__state,state:this.__state}},triggerHandler:function(){return this.__destroyed?this.__destroyError():this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments)),this}},t.fn.tooltipster=function(){var o=Array.prototype.slice.apply(arguments);if(0===this.length)return this;if("string"==typeof o[0]){var i="#*$~&";return this.each(function(){var e=t(this).data("tooltipster-ns"),n=e?t(this).data(e[0]):null;if(!n)throw new Error("You called Tooltipster's \""+o[0]+'" method on an uninitialized element');if("function"!=typeof n[o[0]])throw new Error('Unknown method "'+o[0]+'"');this.length>1&&"content"==o[0]&&(o[1]instanceof t||"object"==typeof o[1]&&null!=o[1]&&o[1].tagName)&&!n.__options.contentCloning&&n.__options.debug;var s=n[o[0]](o[1],o[2]);if(s!==n||"instance"===o[0])return i=s,!1}),"#*$~&"!==i?i:this}t.tooltipster.__instancesLatestArr=[];var n=o[0]&&void 0!==o[0].multiple,s=n&&o[0].multiple||!n&&e.multiple,r=o[0]&&void 0!==o[0].content,a=r&&o[0].content||!r&&e.content,l=o[0]&&void 0!==o[0].contentCloning,c=(l&&o[0].contentCloning,o[0]&&void 0!==o[0].debug);c&&o[0].debug;return this.length>1&&(a instanceof t||"object"==typeof a&&null!=a&&a.tagName),this.each(function(){var e=!1,i=t(this),n=i.data("tooltipster-ns"),r=null;n?s&&(e=!0):e=!0,e&&(r=new t.Tooltipster(this,o[0]),n||(n=[]),n.push(r.__namespace),i.data("tooltipster-ns",n),i.data(r.__namespace,r),r.__options.functionInit&&r.__options.functionInit.call(r,r,{origin:this}),r._trigger("init")),t.tooltipster.__instancesLatestArr.push(r)}),this},s.prototype={__init:function(e){this.__$tooltip=e,this.__$tooltip.css({left:0,overflow:"hidden",position:"absolute",top:0}).find(".tooltipster-content").css("overflow","auto"),this.$container=t('<div class="tooltipster-ruler"></div>').append(this.__$tooltip).appendTo(i.window.document.body)},__forceRedraw:function(){var t=this.__$tooltip.parent();this.__$tooltip.detach(),this.__$tooltip.appendTo(t)},constrain:function(t,e){return this.constraints={width:t,height:e},this.__$tooltip.css({display:"block",height:"",overflow:"auto",width:t}),this},destroy:function(){this.__$tooltip.detach().find(".tooltipster-content").css({display:"",overflow:""}),this.$container.remove()},free:function(){return this.constraints=null,this.__$tooltip.css({display:"",height:"",overflow:"visible",width:""}),this},measure:function(){this.__forceRedraw();var t=this.__$tooltip[0].getBoundingClientRect(),e={size:{height:t.height||t.bottom-t.top,width:t.width||t.right-t.left}};if(this.constraints){var o=this.__$tooltip.find(".tooltipster-content"),n=this.__$tooltip.outerHeight(),s=o[0].getBoundingClientRect(),r={height:n<=this.constraints.height,width:t.width<=this.constraints.width&&s.width>=o[0].scrollWidth-1};e.fits=r.height&&r.width}return i.IE&&i.IE<=11&&e.size.width!==i.window.document.documentElement.clientWidth&&(e.size.width=Math.ceil(e.size.width)+1),e}};var l=navigator.userAgent.toLowerCase();-1!=l.indexOf("msie")?i.IE=parseInt(l.split("msie")[1]):-1!==l.toLowerCase().indexOf("trident")&&-1!==l.indexOf(" rv:11")?i.IE=11:-1!=l.toLowerCase().indexOf("edge/")&&(i.IE=parseInt(l.toLowerCase().split("edge/")[1])),t.tooltipster._plugin({name:"tooltipster.sideTip",instance:{__defaults:function(){return{arrow:!0,distance:6,functionPosition:null,maxWidth:null,minIntersection:16,minWidth:0,position:null,side:"top",viewportAware:!0}},__init:function(t){var e=this;e.__instance=t,e.__namespace="tooltipster-sideTip-"+Math.round(1e6*Math.random()),e.__previousState="closed",e.__options,e.__optionsFormat(),e.__instance._on("state."+e.__namespace,function(t){"closed"==t.state?e.__close():"appearing"==t.state&&"closed"==e.__previousState&&e.__create(),e.__previousState=t.state}),e.__instance._on("options."+e.__namespace,function(){e.__optionsFormat()}),e.__instance._on("reposition."+e.__namespace,function(t){e.__reposition(t.event,t.helper)})},__close:function(){this.__instance.content()instanceof t&&this.__instance.content().detach(),this.__instance._$tooltip.remove(),this.__instance._$tooltip=null},__create:function(){var e=t('<div class="tooltipster-base tooltipster-sidetip"><div class="tooltipster-box"><div class="tooltipster-content"></div></div><div class="tooltipster-arrow"><div class="tooltipster-arrow-uncropped"><div class="tooltipster-arrow-border"></div><div class="tooltipster-arrow-background"></div></div></div></div>');this.__options.arrow||e.find(".tooltipster-box").css("margin",0).end().find(".tooltipster-arrow").hide(),this.__options.minWidth&&e.css("min-width",this.__options.minWidth+"px"),this.__options.maxWidth&&e.css("max-width",this.__options.maxWidth+"px"),this.__instance._$tooltip=e,this.__instance._trigger("created")},__destroy:function(){this.__instance._off("."+self.__namespace)},__optionsFormat:function(){if(this.__options=this.__instance._optionsExtract("tooltipster.sideTip",this.__defaults()),this.__options.position&&(this.__options.side=this.__options.position),"object"!=typeof this.__options.distance&&(this.__options.distance=[this.__options.distance]),this.__options.distance.length<4&&(void 0===this.__options.distance[1]&&(this.__options.distance[1]=this.__options.distance[0]),void 0===this.__options.distance[2]&&(this.__options.distance[2]=this.__options.distance[0]),void 0===this.__options.distance[3]&&(this.__options.distance[3]=this.__options.distance[1])),this.__options.distance={top:this.__options.distance[0],right:this.__options.distance[1],bottom:this.__options.distance[2],left:this.__options.distance[3]},"string"==typeof this.__options.side){this.__options.side=[this.__options.side,{top:"bottom",right:"left",bottom:"top",left:"right"}[this.__options.side]],"left"==this.__options.side[0]||"right"==this.__options.side[0]?this.__options.side.push("top","bottom"):this.__options.side.push("right","left")}6===t.tooltipster._env.IE&&!0!==this.__options.arrow&&(this.__options.arrow=!1)},__reposition:function(e,o){var i,n=this,s=n.__targetFind(o),r=[];n.__instance._$tooltip.detach();var a=n.__instance._$tooltip.clone(),l=t.tooltipster._getRuler(a),c=!1,d=n.__instance.option("animation");switch(d&&a.removeClass("tooltipster-"+d),t.each(["window","document"],function(i,d){var u=null;if(n.__instance._trigger({container:d,helper:o,satisfied:c,takeTest:function(t){u=t},results:r,type:"positionTest"}),1==u||0!=u&&0==c&&("window"!=d||n.__options.viewportAware))for(i=0;i<n.__options.side.length;i++){var p={horizontal:0,vertical:0},f=n.__options.side[i];"top"==f||"bottom"==f?p.vertical=n.__options.distance[f]:p.horizontal=n.__options.distance[f],n.__sideChange(a,f),t.each(["natural","constrained"],function(t,i){if(u=null,n.__instance._trigger({container:d,event:e,helper:o,mode:i,results:r,satisfied:c,side:f,takeTest:function(t){u=t},type:"positionTest"}),1==u||0!=u&&0==c){var a={container:d,distance:p,fits:null,mode:i,outerSize:null,side:f,size:null,target:s[f],whole:null},_=("natural"==i?l.free():l.constrain(o.geo.available[d][f].width-p.horizontal,o.geo.available[d][f].height-p.vertical)).measure();if(a.size=_.size,a.outerSize={height:_.size.height+p.vertical,width:_.size.width+p.horizontal},"natural"==i?o.geo.available[d][f].width>=a.outerSize.width&&o.geo.available[d][f].height>=a.outerSize.height?a.fits=!0:a.fits=!1:a.fits=_.fits,"window"==d&&(a.fits?a.whole="top"==f||"bottom"==f?o.geo.origin.windowOffset.right>=n.__options.minIntersection&&o.geo.window.size.width-o.geo.origin.windowOffset.left>=n.__options.minIntersection:o.geo.origin.windowOffset.bottom>=n.__options.minIntersection&&o.geo.window.size.height-o.geo.origin.windowOffset.top>=n.__options.minIntersection:a.whole=!1),r.push(a),a.whole)c=!0;else if("natural"==a.mode&&(a.fits||a.size.width<=o.geo.available[d][f].width))return!1}})}}),n.__instance._trigger({edit:function(t){r=t},event:e,helper:o,results:r,type:"positionTested"}),r.sort(function(t,e){return t.whole&&!e.whole?-1:!t.whole&&e.whole?1:t.whole&&e.whole?(o=n.__options.side.indexOf(t.side))<(i=n.__options.side.indexOf(e.side))?-1:o>i?1:"natural"==t.mode?-1:1:t.fits&&!e.fits?-1:!t.fits&&e.fits?1:t.fits&&e.fits?(o=n.__options.side.indexOf(t.side))<(i=n.__options.side.indexOf(e.side))?-1:o>i?1:"natural"==t.mode?-1:1:"document"==t.container&&"bottom"==t.side&&"natural"==t.mode?-1:1;var o,i}),(i=r[0]).coord={},i.side){case"left":case"right":i.coord.top=Math.floor(i.target-i.size.height/2);break;case"bottom":case"top":i.coord.left=Math.floor(i.target-i.size.width/2)}switch(i.side){case"left":i.coord.left=o.geo.origin.windowOffset.left-i.outerSize.width;break;case"right":i.coord.left=o.geo.origin.windowOffset.right+i.distance.horizontal;break;case"top":i.coord.top=o.geo.origin.windowOffset.top-i.outerSize.height;break;case"bottom":i.coord.top=o.geo.origin.windowOffset.bottom+i.distance.vertical}"window"==i.container?"top"==i.side||"bottom"==i.side?i.coord.left<0?o.geo.origin.windowOffset.right-this.__options.minIntersection>=0?i.coord.left=0:i.coord.left=o.geo.origin.windowOffset.right-this.__options.minIntersection-1:i.coord.left>o.geo.window.size.width-i.size.width&&(o.geo.origin.windowOffset.left+this.__options.minIntersection<=o.geo.window.size.width?i.coord.left=o.geo.window.size.width-i.size.width:i.coord.left=o.geo.origin.windowOffset.left+this.__options.minIntersection+1-i.size.width):i.coord.top<0?o.geo.origin.windowOffset.bottom-this.__options.minIntersection>=0?i.coord.top=0:i.coord.top=o.geo.origin.windowOffset.bottom-this.__options.minIntersection-1:i.coord.top>o.geo.window.size.height-i.size.height&&(o.geo.origin.windowOffset.top+this.__options.minIntersection<=o.geo.window.size.height?i.coord.top=o.geo.window.size.height-i.size.height:i.coord.top=o.geo.origin.windowOffset.top+this.__options.minIntersection+1-i.size.height):(i.coord.left>o.geo.window.size.width-i.size.width&&(i.coord.left=o.geo.window.size.width-i.size.width),i.coord.left<0&&(i.coord.left=0)),n.__sideChange(a,i.side),o.tooltipClone=a[0],o.tooltipParent=n.__instance.option("parent").parent[0],o.mode=i.mode,o.whole=i.whole,o.origin=n.__instance._$origin[0],o.tooltip=n.__instance._$tooltip[0],delete i.container,delete i.fits,delete i.mode,delete i.outerSize,delete i.whole,i.distance=i.distance.horizontal||i.distance.vertical;var u,p,f,_=t.extend(!0,{},i);if(n.__instance._trigger({edit:function(t){i=t},event:e,helper:o,position:_,type:"position"}),n.__options.functionPosition){var m=n.__options.functionPosition.call(n,n.__instance,o,_);m&&(i=m)}l.destroy(),"top"==i.side||"bottom"==i.side?(u={prop:"left",val:i.target-i.coord.left},p=i.size.width-this.__options.minIntersection):(u={prop:"top",val:i.target-i.coord.top},p=i.size.height-this.__options.minIntersection),u.val<this.__options.minIntersection?u.val=this.__options.minIntersection:u.val>p&&(u.val=p),f=o.geo.origin.fixedLineage?o.geo.origin.windowOffset:{left:o.geo.origin.windowOffset.left+o.geo.window.scroll.left,top:o.geo.origin.windowOffset.top+o.geo.window.scroll.top},i.coord={left:f.left+(i.coord.left-o.geo.origin.windowOffset.left),top:f.top+(i.coord.top-o.geo.origin.windowOffset.top)},n.__sideChange(n.__instance._$tooltip,i.side),o.geo.origin.fixedLineage?n.__instance._$tooltip.css("position","fixed"):n.__instance._$tooltip.css("position",""),n.__instance._$tooltip.css({left:i.coord.left,top:i.coord.top,height:i.size.height,width:i.size.width}).find(".tooltipster-arrow").css({left:"",top:""}).css(u.prop,u.val),n.__instance._$tooltip.appendTo(n.__instance.option("parent")),n.__instance._trigger({type:"repositioned",event:e,position:i})},__sideChange:function(t,e){t.removeClass("tooltipster-bottom").removeClass("tooltipster-left").removeClass("tooltipster-right").removeClass("tooltipster-top").addClass("tooltipster-"+e)},__targetFind:function(t){var e={},o=this.__instance._$origin[0].getClientRects();o.length>1&&(1==this.__instance._$origin.css("opacity")&&(this.__instance._$origin.css("opacity",.99),o=this.__instance._$origin[0].getClientRects(),this.__instance._$origin.css("opacity",1)));if(o.length<2)e.top=Math.floor(t.geo.origin.windowOffset.left+t.geo.origin.size.width/2),e.bottom=e.top,e.left=Math.floor(t.geo.origin.windowOffset.top+t.geo.origin.size.height/2),e.right=e.left;else{var i=o[0];e.top=Math.floor(i.left+(i.right-i.left)/2),i=o.length>2?o[Math.ceil(o.length/2)-1]:o[0],e.right=Math.floor(i.top+(i.bottom-i.top)/2),i=o[o.length-1],e.bottom=Math.floor(i.left+(i.right-i.left)/2),i=o.length>2?o[Math.ceil((o.length+1)/2)-1]:o[o.length-1],e.left=Math.floor(i.top+(i.bottom-i.top)/2)}return e}}})}),jQuery(document).ready(function($){var fchunker_upload={fchunker:function(t){$.extend(t),$.upId&&$.upUrl&&($.domHtml=$("#"+$.upId).html(),$.upInputId=$.upId+"_input")},fchunker_limitFileSize:function(t,e){for(var o=["KB","MB","GB"],i=e.toUpperCase(),n=0,s=0;s<o.length;s++){var r=i.indexOf(o[s]);if(r>-1){n=parseInt(i.substr(0,r))*Math.pow(1024,s+1);break}}return!(t.size>n)},upErrorMsg:function(t){$.upError=t},upStop:function(t){$.upError=t},upStatus:function(){return!$.upError||("function"==typeof $.upStop&&$.upStop($.upError),!1)},fchunker_getPercent:function(t,e){if(t=parseFloat(t),e=parseFloat(e),isNaN(t)||isNaN(e))return"-";return e<=0?0:Math.round(t/e*1e4)/100},fchunker_upload:function(t,e){$.upError="",$.tempFile=$("#"+$.upInputId)[0].files[0],"file"==t&&($.tempFile=e);var o=$.tempFile;if(!o)return!1;"function"==typeof $.upStart&&$.upStart();var i=o.name,n=i.lastIndexOf("."),s=i.length,r=i.substring(n+1,s);if($.upType&&(uptype=$.upType.split(","),-1==$.inArray(r,uptype)&&($.upError="Type error: Error-"+r)),$.upMaxSize&&($.fchunker_limitFileSize(o,$.upMaxSize+"MB")||($.upError="Error")),0==$.upStatus())return!1;$.taskStart=+new Date,setTimeout("jQuery.fchunker_upload_core()","100")},fchunker_upload_core:function(){var file=$.tempFile;if(!file)return!1;$.upShardSize||($.upShardSize=2);for(var filename=file.name,size=file.size,index1=filename.lastIndexOf("."),index2=filename.length,suffix=filename.substring(index1+1,index2),shardSize=1024*$.upShardSize*1024,succeed=0,shardCount=Math.ceil(size/shardSize),re=[],start,end=0,i=0;i<shardCount;++i)re[i]=[],start=i*shardSize,end=Math.min(size,start+shardSize),re[i].file_data=file.slice(start,end),re[i].file_name=filename,re[i].file_size=size;const URL=$.upUrl;var i2=0,i3=1,fcs=Array(),xhr=new XMLHttpRequest;function ajaxStack(stack){if(0!=$.upStatus()){var form=new FormData;stack[i2]&&(fcs=stack[i2],form.append("file_data",fcs.file_data),form.append("file_name",fcs.file_name),form.append("file_size",fcs.file_size),form.append("file_total",shardCount),form.append("file_index",i3),form.append("taskStart",$.taskStart),form.append("action","backup_migration"),form.append("token","bmi"),form.append("f","upload-backup"),xhr.open("POST",URL,!0),xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),xhr.setRequestHeader("HTTP_X_REQUESTED_WITH","XMLHttpRequest"),xhr.onload=function(){ajaxStack(stack)},xhr.onreadystatechange=function(){if(0!=$.upStatus()&&4==xhr.readyState&&200==xhr.status){var data=xhr.responseText?eval("("+xhr.responseText+")"):"";++succeed;var cent=$.fchunker_getPercent(succeed,shardCount);"function"==typeof $.upEvent&&$.upEvent(cent),100==cent?setTimeout(function(){"function"==typeof $.upCallBack&&$.upCallBack(data)},500):"function"==typeof $.upCallBack&&$.upCallBack(data)}},xhr.send(form),i2++,i3++,form.delete("file_data"),form.delete("file_name"),form.delete("file_size"),form.delete("file_total"),form.delete("taskStart"),form.delete("file_index"),form.delete("action"),form.delete("token"),form.delete("f"))}}ajaxStack(re),re=null,file=null}};$.extend(fchunker_upload)}),jQuery(window).on("load",function(){setTimeout(function(){jQuery("#bmi").css({opacity:0}),jQuery("#bmi-preload").css({opacity:1}),jQuery("#bmi-preload").animate({opacity:0},150,function(){jQuery("#bmi-preload").remove(),jQuery("#bmi").css({display:"block"}),jQuery.bmi.dropdowns.init(),setTimeout(function(){jQuery("#bmi").animate({opacity:1},350),jQuery("#bmi_carrousel").show(200)},100)})},50)}),jQuery(document).ready(function(t){let e=!1;t.extend({bmi:{clipboard:function(e){try{const o=document.createElement("textarea");return o.value=e,o.setAttribute("readonly",""),o.style.position="absolute",o.style.left="-9999px",document.body.appendChild(o),o.select(),document.execCommand("copy"),document.body.removeChild(o),t.bmi.alert("success",t("#bmi-success-copy").text(),3e3),!0}catch(e){return console.log(e),t.bmi.alert("warning",t("#bmi-failed-copy").text(),3e3),!1}},alert:function(e="default",o="---",i=7e3){t(".bmi-notification-box").length<=0&&t("body").find("#bmi").prepend(t('<div class="bmi-notification-box"></div>')),e="default"==e?"":"success"==e?" is-success":"warning"==e?" is-warning":"error"==e?" is-danger":" is-info";let n=Math.floor(Math.random()*Math.floor(64e3)),s=`<div style="display: none;" id="ntf-${n}" class="bmi-notification${e}">\n <button class="bmi-times-button" onclick="jQuery.bmi.hideAlert(this)">×</button>\n <div class="bmi-cf">\n <div class="bmi-left bmi-alert-icon"><div class="bmi-icon-bg"></div></div>\n <div class="bmi-left bmi-alert-msg-title">\n <div class="bmi-title${e}">Backup Migration</div>\n <div>${o}</div>\n </div>\n </div>\n </div>`;t(".bmi-notification-box").prepend(s);let r=t(`#ntf-${n}`);r.css({opacity:0,display:"block"});let a=r.outerWidth();r.outerHeight();r.css({right:"-35vw","font-size":"0px",width:0,padding:0,opacity:"0"}),r.animate({right:"15px",width:a,padding:"1rem 2rem 1rem 1.5rem",opacity:"1"},{duration:200,queue:!1}),r.animate({"font-size":"16px"},{duration:300,queue:!1}),setTimeout(()=>{t(`#ntf-${n}`).css({width:""})},250),setTimeout(()=>{r.animate({"font-size":"0px"},{duration:200,queue:!1}),r.animate({right:"-35vw",height:0,width:0,margin:0,padding:0,opacity:"0"},300,function(){r.remove()})},i)},_msg:function(e){"msg"==e.status&&(void 0===e.level&&(e.level="info"),t.bmi.alert(e.level,e.why,3e3),console.log("Backup-migration: ","["+e.level.toUpperCase()+"]",e.why))},hideAlert:function(e){let o=t(e).parents(".bmi-notification");o.animate({"font-size":"0px"},{duration:200,queue:!1}),o.animate({right:"-35vw",height:0,width:0,margin:0,padding:0,opacity:"0"},300,function(){o.remove()})},modal:function(e=!1){let o=!1;return 0!=e&&(o=document.getElementById(e)),{clearModal:function(){o.querySelectorAll(".customselect").forEach(function(t){t.classList.remove("active")}),o.querySelectorAll('input[type="text"]').forEach(function(t){t.value="",t.setAttribute("value","")})},open:function(e=function(){}){o.classList.add("before-open"),setTimeout(function(){o.classList.add("open"),t("html")[0].style.overflowY="hidden",setTimeout(e,410)},10)},close:function(e=function(){}){o.offsetWidth>0&&o.offsetHeight>0?(o.classList.add("before-close"),setTimeout(function(){o.classList.add("closed"),setTimeout(function(){o.classList.remove("before-open"),o.classList.remove("open"),o.classList.remove("before-close"),o.classList.remove("closed"),t.bmi.modal(o.id).clearModal(),e()},410)},10)):(o.classList.remove("before-open"),o.classList.remove("open"),o.classList.remove("before-close"),o.classList.remove("closed"),e()),t("html")[0].style.overflowY="auto"},closeAll:function(){document.querySelectorAll(".modal").forEach(function(e){t.bmi.modal(e.id).close()}),t("html")[0].style.overflowY="auto"}}},json:function(e){return new Promise(function(o,i){try{return o(JSON.parse(e))}catch(n){if("string"!=typeof e)return i(!1);{let n=t.bmi.reverse(e).indexOf("}");n=0==n?e.length:-n,e=e.slice(e.indexOf("{"),n);try{return o(JSON.parse(e))}catch(t){return i(!1)}}}})},reverse:function(e){return"string"==typeof e?""===e?"":t.bmi.reverse(e.substr(1))+e.charAt(0):e},ajax:function(e,o={}){return new Promise(function(i,n){function s(t,o){o||(o=t),console.log("------- BACKUP MIGRATION ERROR START -------"),!1===t?(console.log("Call: ",e),console.log("Status: ",o.status),console.log("Error: ",o.responseText)):console.log(o),console.log("-------- BACKUP MIGRATION ERROR END --------\n\n"),n(t,o.responseText)}o.action="backup_migration",o.token="bmi",o.f=e,t.post(ajaxurl,o).done(e=>{t.bmi.json(e).then(function(t){i(t)}).catch(function(t){s("json")})}).fail(t=>{s(!1,t)})})},tooltips:{init:function(){let e={delay:200,debug:!1,delayTouch:[100,200],interactive:!1,distance:0,side:"top",contentAsHTML:!1,maxWidth:460,triggerOpen:{mouseenter:!0,touchstart:!0},triggerClose:{mouseleave:!0,click:!0,tap:!0},theme:["bmi-tooltip","bmi-tt-default","bmi-tt-default-customized"],repositionOnScroll:!0,functionReady:function(){setTimeout(()=>{let e=t.tooltipster.instances();for(instance in e)e[instance].reposition()},10)}},o=t(".tooltip"),i=t(".tooltip-html"),n=t(".premium-wrapper"),s=JSON.parse(JSON.stringify(e));s.contentAsHTML=!0,s.interactive=!0;for(let i=0;i<o.length;++i){let n=o[i],s=n.getAttribute("data-top"),r=n.getAttribute("side"),a=JSON.parse(JSON.stringify(e));a.content=n.getAttribute("tooltip"),s&&(a.distance=parseInt(s)),r&&r.trim().length>0&&(a.side=r),t(n).tooltipster(a)}for(let e=0;e<i.length;++e){let o=i[e],n=o.getAttribute("side"),r=JSON.parse(JSON.stringify(s));r.content=o.getAttribute("tooltip"),n&&n.trim().length>0&&(r.side=n),t(o).tooltipster(r)}for(let o=0;o<n.length;++o){let i=n[o],s=JSON.parse(JSON.stringify(e));s.contentAsHTML=!0,s.interactive=!0,s.maxWidth=500,i.getAttribute("tooltip")?s.content=i.getAttribute("tooltip"):i.getAttribute("data-ready")?s.content=t("#premium-tooltip-pre")[0].innerHTML.trim()+" "+i.getAttribute("data-ready").trim()+" "+t("#premium-tooltip-r")[0].innerHTML.trim():s.content=t("#premium-tooltip")[0].innerHTML,i.getAttribute("side")&&(s.side=i.getAttribute("side")),t(i).tooltipster(s)}},hideAll:function(e=!1){function o(){let e=t.tooltipster.instances();for(instance in e)e[instance].close()}e?o():setTimeout(o,10)}},collapsers:{toggle:function(o){if(!0===e)return;e=!0;let i=o.getAttribute("group");o.classList.contains("active")?t.bmi.collapsers.close(o):t.bmi.collapsers.open(o,i)},open:function(o,i){t.bmi.collapsers.closeGroup(i),t(o).addClass("active"),t(o).find(".content").show(300),setTimeout(function(){e=!1},300)},close:function(o){t(o).removeClass("active"),t(o).find(".content").hide(300),setTimeout(function(){e=!1},300)},closeGroup:function(o){t('.collapser[group="'+o+'"]').removeClass("active"),t('.collapser[group="'+o+'"]').find(".content").hide(300),setTimeout(function(){e=!1},300)},closeAll:function(){t(".collapser").removeClass("active"),t(".collapser").find(".content").hide(300),setTimeout(function(){e=!1},300)}},isUrlValid:function(t){return!!new RegExp("^(?:(?:(?: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-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$","i").test(t)},bytesToHuman:function(t,e,o,i,n){return(e=Math,o=e.log,i=1024,n=o(t)/o(i)|0,t/e.pow(i,n)).toFixed(2)+" "+(n?"KMGTPEZY"[--n]+"B":"Bytes")},getCurrentBackups:function(e=function(){}){t("#reloading-bm-list").length>0&&"none"==t("#reloading-bm-list")[0].style.display&&(t("#reloading-bm-list").show(),t.bmi.ajax("get-current-backups",{}).then(function(o){t("#reloading-bm-list").hide(),e(o)}).catch(function(t){console.log(t)}))},fillWithNewBackups:function(e,o=function(){}){backups={},t("#bmi_restore_tbody").html("");let i=t("#bmi-manual-locked").text().trim(),n=Object.keys(e).sort(function(t,o){return+new Date(e[t][1].replace(/\-/g,"/"))-+new Date(e[o][1].replace(/\-/g,"/"))}),s=0;for(;s<n.length;++s){let o=n[s],r="locked"===e[o][5];o=(o=o.replace(/ /g,"")).trim();let a="bmi_br_backup_"+s,l=t(".br_tr_template").clone();l.removeClass("br_tr_template"),l[0].style.display="none",l.find(".br_label").attr("for",a),l.find(".br_checkbox").attr("id",a),l.find(".bc-download-btn").attr("href",t("#BMI_BLOG_URL").text().trim()+"/?backup-migration=BMI_BACKUP&backup-id="+o),l.find(".bc-logs-btn").attr("href",t("#BMI_BLOG_URL").text().trim()+"/?backup-migration=BMI_BACKUP_LOGS&backup-id="+o),l.find(".br_date").text(e[o][1]),l.find(".br_name").text(o),l.find(".br_size").text(t.bmi.bytesToHuman(e[o][4])+" ("+e[o][2]+")"),0!=(""+e[o][6]).trim().length&&e[o][6]+""!="false"||(l.find(".bc-locked-btn").addClass("forever"),l.find(".bc-locked-btn").attr("tooltip",i),r=!0),r?l.find(".bc-unlocked-btn").hide():l.find(".bc-locked-btn").hide(),l.prependTo("#bmi_restore_tbody"),e[o].push(o),backups[a]=e[o]}if(0==s){let e=t("#bmi_restore_tbody").data("empty");t("#bmi_restore_tbody").html('<tr><td class="center text-muted" colspan="100%">'+e+"</td></tr>")}t.bmi.tooltips.init(),t.bmi.showMoreBackups(),o()},showMoreBackups:function(e){backups={};let o=t("#bmi_restore_tbody").find("tr:hidden");for(let e=0;e<o.length&&e<10;++e)setTimeout(function(){t(o[e]).show(300)},50*e);o.length-10<=0?t("#load-more-backups-wrp").hide(300):t("#load-more-backups-wrp").show(300)},reloadBackups:function(e=function(){}){t.bmi.getCurrentBackups(function(o){t.bmi.fillWithNewBackups(o.backups,function(){e(),t("#backups-select-all").prop("checked",!1),t(".del-all-btn-wrp").hide(300)})})},hideAllLists:function(){let e=t(".dropdown-open");if(!(e.length<=0))for(let o=0;o<e.length;++o){let i=t(e[o]);i.hasClass("ignored-open")?i.removeClass("ignored-open"):(i.hide(300),i.removeClass("dropdown-open"),t(i[0].closest(".bmi-dropdown")).removeClass("active"))}},setOption:function(e,o=null,i=!1){let n=e.find(".dropdown-options");e.attr("data-optioner")&&(n=t(".optioner-"+e.attr("data-optioner"))),n.find(".active-option").removeClass("active-option"),!1!==i&&(o=n.find('.dropdown-option[data-value="'+i+'"]')),t(o).hasClass("active-option")||(e.find(".dropdown-title").text(o.text()),e.attr("data-selected",o.data("value")),o.addClass("active-option"),!1===i&&e.change(),t.bmi.hideAllLists())},prepareFile:function(e,o){let i=document.createElement("a");i.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(o)),i.setAttribute("download",e),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i),t.bmi.alert("success",t("#bmi-download-should-start").text(),3e3)}}})}),jQuery(document).ready(function(t){t(".collapser .header").on("click",function(e){e.preventDefault();let o=t(this).parent(".collapser")[0];t.bmi.collapsers.toggle(o)}),t(".bmi_will_collapse").on("change",function(e){e.preventDefault();let o=!1;"radio"==this.getAttribute("type")&&"false"==this.getAttribute("value")&&(o=!0),$child=t(this).data("if-checked"),!0!==this.checked||o?t("#"+$child).hide(300):t("#"+$child).show(300)}),t(".collapser-openner").on("click",function(e){e.preventDefault();let o="configuration",i=t(this).data("el");t(this).data("group")&&(o=t(this).data("group")),t.bmi.collapsers.open(i,o),setTimeout(function(){t([document.documentElement,document.body]).animate({scrollTop:t(i).offset().top-50+"px"},300)},300)}),function(){let e=t(".bmi_will_collapse");for(let o=0;o<e.length;++o){let i=!1;$trigger=e[o],$child=t($trigger).data("if-checked"),"radio"==$trigger.getAttribute("type")&&"false"==$trigger.getAttribute("value")&&(i=!0),!0===$trigger.checked?t("#"+$child).show():t("#"+$child).hide()}}()}),jQuery(document).ready(function(t){var e=!0,o=!1;t.bmi.crons=function(){function i(){!function(e,o){t.bmi.ajax("calculate-cron",e).then(function(e){"success"==e.status?o(e):(o(!1),t.bmi._msg(e))}).catch(function(t){o(!1),console.log(t)})}({type:t('[data-id="cron-period"]').attr("data-selected"),day:t('[data-id="cron-day"]').attr("data-selected"),week:t('[data-id="cron-week"]').attr("data-selected"),hour:t('[data-id="cron-hour"]').attr("data-selected"),minute:t('[data-id="cron-minute"]').attr("data-selected"),keep:t('[data-id="cron-keep-backups"]').attr("data-selected"),enabled:!0==!t("#cron-btn-toggle")[0].checked},function(o){"success"===o.status&&!1!==o?(t(".cron-time-server").tooltipster("option","interactive",!1),t(".cron-time-server").tooltipster("option","contentAsHTML",!0),!0===t("#cron-btn-toggle")[0].checked&&(o.data="---"),t(".cron-time-server").tooltipster("content","<b>"+t("#bmi-next-cron").text()+"</b>"+o.data+"<br><b>"+t("#bmi-current-time").text()+"</b>"+o.currdata),e?e=!1:t.bmi.alert("success",t("#bmi-cron-updated").text(),1500)):e?e=!1:t.bmi.alert("error",t("#bmi-cron-updated-fail").text(),2500)})}function n(e){"month"==e?(t(".cron-the").show(),t('[data-id="cron-day"]').show(),t('[data-id="cron-week"]').hide(),t("#cron-on-word").show()):"week"==e?(t(".cron-the").hide(),t('[data-id="cron-day"]').hide(),t('[data-id="cron-week"]').show(),t("#cron-on-word").show()):(t(".cron-the").hide(),t('[data-id="cron-day"]').hide(),t('[data-id="cron-week"]').hide(),t("#cron-on-word").hide())}!0!==o&&(o=!0,t("#bmi").on("change",'[data-id="cron-period"]',function(t){i(),n(t.target.getAttribute("data-selected"))}),t("#bmi").on("change",'[data-id="cron-day"]',function(t){t.target.getAttribute("data-selected");i()}),t("#bmi").on("change",'[data-id="cron-week"]',function(t){t.target.getAttribute("data-selected");i()}),t("#bmi").on("change",'[data-id="cron-hour"]',function(t){t.target.getAttribute("data-selected");i()}),t("#bmi").on("change",'[data-id="cron-minute"]',function(t){t.target.getAttribute("data-selected");i()}),t("#bmi").on("change",'[data-id="cron-keep-backups"]',function(t){t.target.getAttribute("data-selected");i()}),t("#i-backup-cron").on("click",function(){t(".cron-backups").find(".turned-off").is(":visible")&&(t("#cron-btn-toggle").prop("checked",!1),t(".cron-backups").removeClass("disabled"),i(),t(".cron-backups").find(".turned-on").css({opacity:0}),t(".cron-backups").find(".turned-off").css({opacity:0}),t(".cron-backups").find(".turned-on").show(),t(".cron-backups").find(".turned-on").css({opacity:1}),setTimeout(function(){t(".cron-backups").find(".turned-off").hide()},300))}),t("#cron-btn-toggle").on("change",function(){this.checked?t(".cron-backups").addClass("disabled"):t(".cron-backups").removeClass("disabled"),i()}),n(t('[data-id="cron-period"]')[0].getAttribute("data-selected")),i())}}),jQuery(document).ready(function(t){t.bmi.dropdowns={init:function(){let e=t("#bmi");function o(e="null",o="---"){let i=t(".option-template").clone();return i.removeClass("option-template"),i.attr("data-value",e),i.text(o),i}function i(i){if("none"!=i.style.display){i.style.display="none";let n=t(i),s=n.find("option"),r=function(e="---"){let o=t(".dropdown-template").clone();return o.removeClass("dropdown-template"),o.find(".dropdown-title").text(e),o}(function(t){let e="";for(let o=0;o<t.length;++o){let i=t[o].innerText;e.length<i.length&&(e=i)}return e}(s));r=function(e,i){let n=t(e).find(".dropdown-options");t(e).attr("data-optioner")&&(n=t(".optioner-"+t(e).attr("data-optioner")));for(let t=0;t<i.length;++t){let e=i[t];n.append(o(e.value,e.innerText))}return e}(r,s);let a=s[0].value,l=i.getAttribute("data-parent"),c=i.getAttribute("data-classes"),d="true"===i.getAttribute("data-hide");if(n.attr("data-def")&&(a=n.attr("data-def")),t(r).attr("data-id",i.id),t(r).attr("class",((null!=c?c:"")+" bmi-dropdown").trim()),t(r).insertBefore(n),null!==l){let e=parseInt(864197532*Math.random()+123456789);t(r).attr("data-optioner",e),t(r).find(".dropdown-options").attr("data-oparent",e),t(r).find(".dropdown-options").addClass("optioner-"+e),t(r).find(".dropdown-options").appendTo(l),t(l).css({position:"relative"})}let u=t(r).clone();if(!u)return;u[0].style.visibility="hidden",e.append(u);let p=u.width();u.remove(),t.bmi.setOption(t(r),null,a),t(r).find(".dropdown-title")[0].style.minWidth=p+10+"px",d&&t(r).hide()}}!function(){let t=e.find("select");for(let e=0;e<t.length;++e)i(t[e])}(),t.bmi.crons(),e.on("click",function(e){t(e.target).hasClass("bmi-dropdown")||e.target.closest(".bmi-dropdown")||t.bmi.hideAllLists()}),e.on("click",".dropdown-title",function(e){$dropdown=t(e.target.closest(".bmi-dropdown")),function(e){let o=e.find(".dropdown-options");if(e.attr("data-optioner")){(o=t(".optioner-"+e.attr("data-optioner"))).css({position:"absolute"});let i=e[0].offsetWidth,n=e[0].offsetLeft+240,s=e[0].offsetTop+e[0].offsetHeight+5;o.css({maxWidth:i+"px",minWidth:i+"px",top:s+"px",left:n+"px"})}o.hasClass("dropdown-open")?(e.removeClass("active"),o.removeClass("dropdown-open"),o.hide(300)):(e.addClass("active"),o.addClass("dropdown-open"),o.addClass("ignored-open"),o.show(300))}($dropdown),t.bmi.hideAllLists()}),e.on("click",".dropdown-option",function(e){t(e.target.closest(".dropdown-options")).attr("data-oparent")?($dropdown=t('.bmi-dropdown[data-optioner="'+t(e.target.closest(".dropdown-options")).attr("data-oparent")+'"]'),$option=t(e.target),t.bmi.setOption($dropdown,$option)):($dropdown=t(e.target.closest(".bmi-dropdown")),$option=t(e.target),t.bmi.setOption($dropdown,$option))})}}}),jQuery(document).ready(function(t){var e,o,i=!1,n=!1,s=0;let r=0,a=0,l=null,c=null,d=null,u=!1,p=!1,f=4500,_=!1,m=!1,h=null,g=!1,b=!1,w=!1,v={},y=[],k=null,x=!1,C="";function $(e){return $cb=t("#"+e).is(":checked"),!0===$cb?"true":"false"}function T(){return size=0,t("#files-group-plugins").is(":checked")&&(size+=parseInt(t('label[for="files-group-plugins"]').find(".value").attr("bytes"))),t("#files-group-uploads").is(":checked")&&(size+=parseInt(t('label[for="files-group-uploads"]').find(".value").attr("bytes"))),t("#files-group-themes").is(":checked")&&(size+=parseInt(t('label[for="files-group-themes"]').find(".value").attr("bytes"))),t("#files-group-other-contents").is(":checked")&&(size+=parseInt(t('label[for="files-group-other-contents"]').find(".value").attr("bytes"))),t("#files-group-wp-install").is(":checked")&&(size+=parseInt(t('label[for="files-group-wp-install"]').find(".value").attr("bytes"))),size}function I(e,o){if(a+=1,r+=parseInt(o.bytes),o.bytes<=1e4)t("#bmi-scan-"+e).find(".value").text("(0 MB)");else{let i=(parseInt(o.bytes)/1024/1024).toFixed(2);t("#bmi-scan-"+e).find(".value").text("("+i+" MB)")}t("#bmi-scan-"+e).find(".value").attr("bytes",parseInt(o.bytes)),5==a&&(t("#bmi-scan-total").find(".value").text("("+t.bmi.bytesToHuman(r)+")"),t("#bmi-scan-total").find(".value").attr("bytes",parseInt(r)),S())}function O(e){t.bmi.ajax("scan-directory",{folder:e}).then(function(t){I(e,t)}).catch(function(t){I(t,{bytes:"0",readable:"0 B"})})}function z(e=!1,o=function(){}){t.bmi.ajax("is-running-backup",{}).then(function(i){"success"==i.status?o(!1):1==e?o(!0):t.bmi._msg(i)}).catch(function(t){o(!1),console.log(t)})}function S(){let e=parseInt(t("#bmi-scan-total").find(".value").attr("bytes")),o=parseInt(T());t("#files-group-backup").is(":checked")||(e=0,o=0);let i=((e-o)/1024/1024).toFixed(2),n=(o/1024/1024).toFixed(2);"0.00"==i&&(i="0"),"0.00"==n&&(n="0"),t("#esta-exclude").text(i+" MB"),t("#esta-size-for").text(n+" MB")}function E(e){"backup-prenotice"==e?R():(t.bmi.modal("freeze-loading-modal").close(),setTimeout(function(){t.bmi.modal(e).open()},300))}function A(t,e=function(){}){"is_allowed"==t?e("not-allowed"):e()}function L(){t("#prenotice-modal .prenotice").hide(),t("#prenotice-size").text(t.bmi.bytesToHuman(T())),t(".prenotic-3").show(),"true"!==$("database-group-backup")||"true"!==$("database-group-backup")||"true"===$("files-group-backup")&&("true"!==$("files-group-plugins")&&"true"!==$("files-group-themes")&&"true"!==$("files-group-uploads")&&"true"!==$("files-group-wp-install")&&$("files-group-other-contents"),1)||t(".prenotic-6").show(),"true"===$("database-group-backup")||"true"===$("database-group-backup")||"true"!==$("files-group-backup")||"true"!==$("files-group-plugins")&&"true"!==$("files-group-themes")&&"true"!==$("files-group-uploads")&&"true"!==$("files-group-wp-install")&&"true"!==$("files-group-other-contents")||t(".prenotic-5").show(),"true"===$("database-group-backup")&&"true"===$("files-group-backup")&&"true"===$("files-group-plugins")&&"true"===$("files-group-themes")&&"true"===$("files-group-uploads")&&"true"===$("files-group-other-contents")||t(".prenotic-4").show(),t("#prenotice-modal .prenotice:visible").css({background:""});let e=t("#prenotice-modal .prenotice"),o=[];for(let t=0;t<e.length;++t)"none"!==e[t].style.display&&o.push(e[t]);for(let t=0;t<o.length;t+=2)o[t].style.background="#f8f8f8"}function R(){t.bmi.modal("freeze-loading-modal").open(),L(),z(!1,function(){setTimeout(function(){t.bmi.modal("freeze-loading-modal").close(),setTimeout(function(){t.bmi.modal("prenotice-modal").open()},300)},300)})}function B(t,e=function(){}){let o=window.location.protocol.includes("https");t=t.includes("https")?t.slice(5):t.slice(4),t=o?"https"+t:"http"+t;try{window.XMLHttpRequest?xmlhttp=new XMLHttpRequest:xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"),xmlhttp.onloadend=function(){4==xmlhttp.readyState&&200==xmlhttp.status?e(xmlhttp.responseText):e(!1)},xmlhttp.open("GET",t),xmlhttp.send()}catch(t){e(!1)}}function M(o){let r=y[s],a=document.createElement("DIV"),l="";"[INFO]"==r.substr(0,6)?l="blue":"[SUCCESS]"==r.substr(0,9)?l="green":"[WARN]"==r.substr(0,6)?l="orange":"[ERROR]"==r.substr(0,7)?l="red":"[END-CODE]"==r.substr(0,10)?l="hide_so_much":"[STEP]"==r.substr(0,6)?(a.classList.add("bold"),a.classList.add("step")):r&&r.trim().length>0&&"["!=r[0]&&s--,l.length>0&&a.classList.add(l),a.style.display="none",a.innerText=r,o.appendChild(a);let c=function(){let o=!1,s="";for(let r=0;r<y.length;++r){let a=y[r];if("[STEP]"==a.substr(0,6)&&(s=a.slice(29)),0==o&&a&&a.trim().includes("[END-CODE]")&&(!0===m||!0===w||!0===b)){o=!0;let s=a;!0===b?s.includes("205")?(b=!1,t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%",ot(!0)):tt():!0===w?(s.includes("001")?setTimeout(function(){et()},1e3):tt(),p=!1,w=!1):(m=!1,s.includes("001")?(i=!0,n=!0,clearTimeout(e),u=!1,U({filename:h},!0)):s.includes("002")?Q():s.includes("003")?(t.bmi.modal("backup-progress-modal").close(),t.bmi.alert("info",t("#bmi-aborted-al").text(),3e3)):s.includes("100")?(t.bmi.modal("backup-progress-modal").close(),W(),t.bmi.modal("backup-progress-modal").close()):Q())}}return""!=s&&s!=C&&(C=s,t("#restore-progress-modal").hasClass("open")?t("#restore_current_step").text(s):t("#current_step").text(s)),o}();t(a).show(40),o.scrollTop=o.scrollHeight,++s<y.length&&0==c?(x=!0,k=setTimeout(function(){M(o)},40)):x=!1}function D(t,e){if(!1===t)return;let o=t.split("\n");o.length>=1&&(o=o.slice(0,-1)),y=o,0==x&&s<y.length&&M(e)}function P(e=0,s=1e3,r=null){if(c==e)return;c=e,clearInterval(o);let a=parseFloat(t(".progress-percentage")[0].style.left)-1;t("#restore-progress-modal").hasClass("open")&&(a=parseFloat(t("#restore-progress-modal .progress-percentage")[0].style.left)-1);let l=e-a,d=a,p=Math.abs(Math.floor(s/l));o=setInterval(function(){if(d+=1,t("#restore-progress-modal").hasClass("open")?(t("#restore-progress-modal .progress-active-bar")[0].style.width=d.toFixed(2)+"%",t("#restore-progress-modal .progress-percentage")[0].style.left=d.toFixed(2)+"%",t("#restore-progress-modal .progress-percentage")[0].innerText=d.toFixed(0)+"%"):(t(".progress-active-bar")[0].style.width=d.toFixed(2)+"%",t(".progress-percentage")[0].style.left=d.toFixed(2)+"%",t(".progress-percentage")[0].innerText=d.toFixed(0)+"%"),d>=100&&clearInterval(o),d>=100&&null!=r&&(c=null,t("#backup-progress-modal").hasClass("open"))){i=!0,n=!0,U(r,0==u)}d>e&&clearInterval(o)},p)}t("#live-log-toggle").on("click",function(){t(".expanded-logs").length>0?t(this).text(t(this).data("hide")):t(this).text(t(this).data("show")),t("#live-log-wrapper").toggleClass("expanded-logs")}),t("#backup-stop").on("click",function(){t.bmi.ajax("stop-backup",{}).then(function(e){"success"==e.status?t.bmi.alert("success",t("#bmi-abort-soon").text(),3e3):t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#bmi-force-backup-to-stop").on("click",function(e){e.preventDefault(),t.bmi.alert("info",t("#bmi-force-stop-in-progress").text(),3e3),t.bmi.ajax("force-backup-to-stop").then(function(e){t.bmi.alert("success",t("#bmi-force-stop-success").text(),6e3)}).catch(function(e){t.bmi.alert("error",t("#failed-to-stop").text(),6e3),console.log(e)})}),t("#bmi-force-restore-to-stop").on("click",function(e){e.preventDefault(),t.bmi.alert("info",t("#bmi-force-stop-in-progress").text(),3e3),t.bmi.ajax("force-restore-to-stop").then(function(e){t.bmi.alert("success",t("#bmi-force-stop-success").text(),6e3)}).catch(function(e){t.bmi.alert("error",t("#failed-to-stop").text(),6e3),console.log(e)})}),t("#bmi_restore_tbody").on("click",".bc-unlocked-btn",function(e){e.preventDefault();let o=e.target,i=o.closest("tr").querySelector(".br_name").innerText.trim();t.bmi.ajax("lock-backup",{filename:i}).then(function(e){"success"==e.status?(t.bmi.alert("success",t("#bmi-lock-success").text(),6e3),t(o.closest("tr").querySelector(".bc-unlocked-btn")).hide(),t(o.closest("tr").querySelector(".bc-locked-btn")).show()):(t.bmi.alert("error",t("#bmi-lock-error").text(),8e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t("#files-group-backup").on("change",S),t(".basic-file-exlusion").on("change",'input[type="checkbox"]',S),t("#bmi_restore_tbody").on("click",".bc-locked-btn",function(e){if(e.preventDefault(),t(e.target).hasClass("forever"))return;let o=e.target,i=o.closest("tr").querySelector(".br_name").innerText.trim();t.bmi.ajax("unlock-backup",{filename:i}).then(function(e){"success"==e.status?(t.bmi.alert("success",t("#bmi-unlock-success").text(),3e3),t(o.closest("tr").querySelector(".bc-locked-btn")).hide(),t(o.closest("tr").querySelector(".bc-unlocked-btn")).show()):(t.bmi.alert("error",t("#bmi-unlock-error").text(),3e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t("#bmi_restore_tbody").on("click",".bc-url-btn",function(e){let o=e.target.closest("tr").querySelector(".bc-download-btn").getAttribute("href");t.bmi.clipboard(o)}),t("#bmi_restore_tbody").on("click",".bc-remove-btn",function(e){let o=e.target.closest("tr").querySelector(".br_name").innerText.trim();d=[o],t("#delete-confirm-modal").find(".text2").hide(),t("#delete-confirm-modal").find(".text1").show(),t.bmi.modal("delete-confirm-modal").open()}),t("#sure_delete").on("click",function(){t.bmi.ajax("delete-backup",{filenames:d}).then(function(e){d=null,"success"==e.status?(t.bmi.reloadBackups(),t.bmi.modal("delete-confirm-modal").close(),t.bmi.alert("success",t("#bmi-remove-success").text(),3e3)):(t.bmi.alert("warning",t("#bmi-remove-error").text(),3e3),console.error("BMI Backend error: ",e))}).catch(function(t){console.log(t)})}),t(".bmi-send-troubleshooting-logs").on("click",function(e){e.preventDefault(),t.bmi.alert("info",t("#bmi-support-send-start").text(),6e3),t(".bmi-send-troubleshooting-logs").addClass("disabled");let o=!1,i=!1;t("#backup-error-modal").is(":visible")&&(t.bmi.modal("backup-error-modal").close(),o=!0,i=!1),t("#restore-error-modal").is(":visible")&&(t.bmi.modal("restore-error-modal").close(),i=!0,o=!1),t.bmi.modal("freeze-loading-modal").open();let n=t("#after-logs-sent-modal").attr("data-error-source");t.bmi.ajax("send-troubleshooting-logs",{source:n}).then(function(e){t.bmi.modal("freeze-loading-modal").close(),"success"==e.status?(t("#bmi-support-code-generated").text(e.code),setTimeout(function(){t.bmi.alert("success",t("#bmi-support-send-success").text(),4e3),t.bmi.modal("after-logs-sent-modal").open()},300)):(t.bmi.alert("error",t("#bmi-support-send-fail").text(),6e3),i&&t.bmi.modal("restore-error-modal").open(),o&&t.bmi.modal("backup-error-modal").open()),t(".bmi-send-troubleshooting-logs").removeClass("disabled")}).catch(function(e){t.bmi.modal("freeze-loading-modal").close(),t.bmi.alert("success",t("#bmi-support-send-fail").text(),6e3),alert("Something went wrong on your browser side and we could not send your logs to support team."),t(".bmi-send-troubleshooting-logs").removeClass("disabled"),i&&t.bmi.modal("restore-error-modal").open(),o&&t.bmi.modal("backup-error-modal").open(),console.log(e)})}),t("#share-logs-allowed").on("click",function(e){e.preventDefault();let o=t("#logs-sharing-ask-modal").attr("data-destination");t.bmi.alert("success",t("#bmi-share-logs-thank-you").text(),3e3),t.bmi.modal("logs-sharing-ask-modal").close(),t.bmi.modal("freeze-loading-modal").open(),A("set_yes",function(){setTimeout(function(){E(o)},300)})}),t("#share-logs-not-allowed").on("click",function(e){e.preventDefault();let o=t("#logs-sharing-ask-modal").attr("data-destination");t.bmi.modal("logs-sharing-ask-modal").close(),t.bmi.modal("freeze-loading-modal").open(),A("set_no",function(){setTimeout(function(){E(o)},300)})}),t("#ignore-share-log-request-for-now").on("click",function(e){e.preventDefault(),t.bmi.modal("logs-sharing-ask-modal").close(),E(t("#logs-sharing-ask-modal").attr("data-destination"))}),t("#add-exclusion-rule").on("click",function(e){e.preventDefault();let o=t(".exclusion_template").clone();o[0].classList.remove("exclusion_template"),o[0].style.display="none",t("#bmi_exclusion_rules").append(o),o.show(300)}),t("#bmi_exclusion_rules").on("click",".kill-exclusion-rule",function(e){e.preventDefault(),$el=e.target,$parent=$el.closest(".exclude-row"),$parent&&(t($parent).hide(300),setTimeout(function(){$parent.remove()},320))}),t("#i-backup-creator").on("click",function(){if(!isNaN(T()))return T()/1024/1024>1e3*parseInt(t("#BMI_REV").text().trim())?W():void("true"===$("database-group-backup")||"true"===$("files-group-backup")&&("true"===$("files-group-plugins")||"true"===$("files-group-themes")||"true"===$("files-group-uploads")||"true"===$("files-group-wp-install")||"true"===$("files-group-other-contents"))?(t.bmi.modal("freeze-loading-modal").open(),setTimeout(function(){A("is_allowed",function(e){"ask"===e?(t.bmi.modal("freeze-loading-modal").close(),t("#logs-sharing-ask-modal").attr("data-destination","backup-prenotice"),setTimeout(function(){t.bmi.modal("logs-sharing-ask-modal").open()},300)):R()})},300)):t.bmi.alert("warning",t("#bmi-no-selected").text(),3e3));t.bmi.alert("warning",t("#bmi-preb-processing").text(),3e3)}),t("#BFFSIN").on("change",function(t){let e=parseInt(this.value);isNaN(e)?this.value=1:this.value=e>9999?9999:e<=0?1:e}),t(".save-btn").on("click",function(e){e.preventDefault();let o={},i=t(this.closest(".save-action")).data("save");if(i){if("save-storage"==i)o.directory=t("#bmi_path_storage_default").val(),o.access="true"===t('[name="radioAccessViaLink"]:checked').val()?"true":"false";else if("save-file-config"==i){if(o.database_group=$("database-group-backup"),o.files_group=$("files-group-backup"),t("#bmi-pro-db-tables-exclusion").length>0){o["db-exclude-tables-group"]=$("bmi-pro-db-tables-exclusion"),o["db-excluded-tables"]=["empty"];let e=t(".bmi_pro_tables_display").find("input:checked");if(e.length>0){o["db-excluded-tables"]=[];for(let t=0;t<e.length;++t)o["db-excluded-tables"].push(e[t].value)}else o["db-exclude-tables-group"]="false"}else o["db-exclude-tables-group"]="false",o["db-excluded-tables"]=["empty"];o["files-group-plugins"]=$("files-group-plugins"),o["files-group-uploads"]=$("files-group-uploads"),o["files-group-themes"]=$("files-group-themes"),o["files-group-other-contents"]=$("files-group-other-contents"),o["files-group-wp-install"]=$("files-group-wp-install"),o.files_by_filters=$("files_by_filters"),o.ex_b_fs=$("ex_b_fs"),o.BFFSIN=t("#BFFSIN").val()?t("#BFFSIN").val():"1",o.ex_b_names=$("ex_b_names"),o.ex_b_fpaths=$("ex_b_fpaths"),o.ex_b_dpaths=$("ex_b_dpaths");let e=[],i=t("#bmi_exclusion_rules").find(".exclude-row");for(let o=0;o<i.length;++o){let n=t(i[o]),s=n.find(".exclusion_txt").val(),r=n.find(".exclusion_position").find(".bmi-dropdown").data("selected")+"",a=n.find(".exclusion_where").find(".bmi-dropdown").data("selected")+"";e.push({txt:s,pos:r,whr:a})}o["dynamic-names"]=e,o["dynamic-fpaths-names"]=t("#dynamic-fpaths-names").val().split("\n"),o["dynamic-dpaths-names"]=t("#dynamic-dpaths-names").val().split("\n")}else if("store-config"==i)o.name=t("#backup_filename").val().trim();else{if("save-other-options"!=i)return;o.email=t("#email-for-notices").val().trim(),o.email_title=t("#email-title-for-notices").val().trim(),o.schedule_issues=$("scheduled-issues"),o.experiment_timeout=$("experimental-timeout"),o.experimental_hard_timeout=$("experimental-hard-timeout"),o.php_cli_disable_others=$("cli-disable-others"),o.php_cli_manual_path=t("#cli-manual-path").val().trim(),o.download_technique=$("download-technique"),o.uninstall_config=$("uninstalling-configs"),o.uninstall_backups=$("uninstalling-backups"),o.normal_timeout=$("normal-timeout"),o.db_queries_amount=t("#db_queries_amount").val().trim(),o["bmi-restore-splitting"]=$("bmi-restore-splitting"),o["bmi-db-v3-restore-engine"]=$("bmi-db-v3-restore-engine"),o["remove-assets-before-restore"]=$("remove-assets-before-restore"),o["bmi-db-single-file-backup"]=$("bmi-db-single-file-backup")}t.bmi.ajax(i,o).then(function(e){"success"==e.status?e.errors<=0?(t.bmi.alert("success",t("#bmi-save-success").text(),3e3),t.bmi.collapsers.closeAll()):t.bmi.alert("warning",t("#bmi-save-issues").text(),3e3):t.bmi._msg(e)}).catch(function(t){console.log(t)})}}),t(".close-chapters").on("click",function(e){e.preventDefault(),t.bmi.collapsers.closeAll()}),t("#rescan-for-backups").on("click",function(){t.bmi.reloadBackups()}),t(".storage-checkbox").on("click",function(){let e=t(this).attr("data-toggle"),o=t(t(this)[0].closest(".tab2-item"));t(this).is(":checked")?(t("#"+e).show(300),o.addClass("activeList")):(t("#"+e).hide(300),o.removeClass("activeList"))});var j=0;function q(e=function(){}){let o=t("#BMI_BLOG_URL").text().trim();"/"!==o.slice(-o.length)&&(o+="/"),B(o+"?backup-migration=PROGRESS_LOGS&progress-id=latest_full.log&backup-id=current&t="+ +new Date,function(o){if(!o)return e();let i=o.split("\n").slice(0,1)[0];""===i.trim()?(i=o.split("\n").slice(0,2)[1],o=o.split("\n").slice(2).join("\n")):o=o.split("\n").slice(1).join("\n");let n=t(".log-wrapper").find("pre")[0],s=t("#bmi-making-archive").text().trim();if(i&&0!=i&&void 0!==i)if(t("#current_step").text().trim().slice(0,s.length)==s){let e=document.getElementById("bmi_counter_magic");if(e){let o=parseInt(e.innerText);j=parseInt(i.split("/")[0]),isNaN(o)||isNaN(j)||(P(parseInt(i.split("/")[0])/parseInt(i.split("/")[1])*100),async function(t,e,o,i){let n=null,s=function(r){if(j>o)return;n||(n=r);let a=Math.min((r-n)/i,1);t.innerText=Math.floor(a*(o-e)+e),a<1&&window.requestAnimationFrame(s)};window.requestAnimationFrame(s)}(e,o,j,2e3),"---"===t("#bmi_magic_max_count").text()&&100!=parseInt(i.split("/")[1])&&(t("#bmi_magic_max_count").text(parseInt(i.split("/")[1])),t("#entire_magic_counter").is(":hidden")&&t("#entire_magic_counter").show()))}else{let e=parseInt(i.split("/")[1]);100==e&&(e="---"),t("#current_step").html(s+' <span id="entire_magic_counter">(<span id="bmi_counter_magic">0</span>/<span id="bmi_magic_max_count">'+e+"</span>)</span>"),(isNaN(parseInt(e))||"---"==e)&&t("#entire_magic_counter").hide()}}else P(parseInt(i.split("/")[0])/parseInt(i.split("/")[1])*100);o&&0!=o&&void 0!==o&&D(o,n),e()})}function H(){t(".log-wrapper").find("pre")[0].innerText="",P(0),setTimeout(function(){q(function(){!function t(){q(function(){clearTimeout(e),e=setTimeout(function(){!0===u&&t()},1500)})}()})},300)}function F(o=!0){!0===o&&(t(".log-wrapper").find("pre")[0].innerText="",P(0)),V(function(){clearTimeout(e),function t(){V(function(){e=setTimeout(function(){!0!==p&&!0!==b||t()},800)})}()})}function N(t=function(){}){z(!0,function(e){t(e)})}function G(e=!1,o=function(){}){t.bmi.ajax("reset-latest",{}).then(function(i){!0===e?o():"success"==i.status?(o(),setTimeout(function(){t.bmi.modal("freeze-loading-modal").close(),setTimeout(function(){t.bmi.modal("backup-progress-modal").open()},300)},300)):t.bmi._msg(i)}).catch(function(t){console.log(t)})}function U(s,r=!1){(i&&n||r)&&setTimeout(function(){u=!1,t("#backup-progress-modal").hasClass("open")&&(t.bmi.modal("backup-progress-modal").close(),"true"==t('[name="radioAccessViaLink"]:checked').val()?t("#accessible-at-section").show():t("#accessible-at-section").hide(),t.bmi.modal("backup-success-modal").open()),clearInterval(o),clearTimeout(e);let i=t("#BMI_BLOG_URL").text().trim();"/"!==i.slice(-i.length)&&(i+="/");let n=i+"?backup-migration=BMI_BACKUP&backup-id="+s.filename+"&t="+ +new Date,r=i+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date;t("#text-input-copy")[0].value=n,t("#download-backup-url").attr("href",n),t(".download-backup-log-url").attr("href",r),t.bmi.reloadBackups(),setTimeout(function(){clearInterval(o),t(".log-wrapper").find("pre")[0].innerText="",t(".progress-active-bar")[0].style.width="0%",t(".progress-percentage")[0].style.left="0%",t(".progress-percentage")[0].innerText="0%"},300)},700)}function Q(o=!1){setTimeout(function(){z(!0,function(o){if(!0===o)return;t.bmi.modal("backup-progress-modal").close(),clearTimeout(e),t.bmi.modal("backup-progress-modal").close(),t("#backup-error-pre").text(t("#bmi-loading-translation").text().trim()),t.bmi.modal("backup-error-modal").open(),t("#after-logs-sent-modal").attr("data-error-source","backup");let i=t("#BMI_BLOG_URL").text().trim();"/"!==i.slice(-i.length)&&(i+="/")})},2e3)}function W(){t.bmi.modal("bfs-modal").open()}function J(e){let o=e.status,i=parseInt(e.errors),n=parseInt(e.iteratio),s=parseInt(e.sf);if(!0===o&&-1===n)return m=!1,h=!1,g=!1,window.onbeforeunload=null,t(".backup-minimize").removeClass("disabled"),U({filename:h},!0);if(!isNaN(s)&&s>-1&&(g.filessofar=s),!isNaN(n)&&n>-1&&(g.iteratio+=1),isNaN(i)||i>0||0==o){if(isNaN(i)||i>0)return m=!1,h=!1,g=!1,window.onbeforeunload=null,t(".backup-minimize").removeClass("disabled"),Q()}else X(g,i)}function X(t,e=0){!1===g&&(t.iteratio=0,g=t),function(t,e,o=0){let i=new XMLHttpRequest;i.open("POST",t.url,!0),i.setRequestHeader("Content-Type","application/json"),i.setRequestHeader("Content-Accept","*/*"),i.setRequestHeader("Access-Control-Allow-Origin","*"),i.setRequestHeader("Content-ConfigDir",t.config_dir),i.setRequestHeader("Content-Content",t.content_dir),i.setRequestHeader("Content-Backups",t.backup_dir),i.setRequestHeader("Content-Identy",t.identy),i.setRequestHeader("Content-Url",t.url),i.setRequestHeader("Content-Abs",t.abs_dir),i.setRequestHeader("Content-Dir",t.root_dir),i.setRequestHeader("Content-Manifest",t.manifest),i.setRequestHeader("Content-Name",t.backupname),i.setRequestHeader("Content-Safelimit",t.safelimit),i.setRequestHeader("Content-Start",t.start),i.setRequestHeader("Content-Filessofar",t.filessofar),i.setRequestHeader("Content-Total",t.total_files),i.setRequestHeader("Content-Rev",t.rev),i.setRequestHeader("Content-It",t.iteratio),i.setRequestHeader("Content-Shareallowed",t.shareallowed),i.setRequestHeader("Content-Browser",!0),i.onload=function(){if(200===i.status){let t=i.getResponseHeader("Content-Finished");if(void 0!==t&&t&&"true"==t)return e({status:!0,iteratio:-1,sf:-1,errors:o=0});let n=i.getResponseHeader("Content-It"),s=i.getResponseHeader("Content-Filessofar");return e(void 0!==n&&n?{status:!0,iteratio:n,sf:s,errors:o}:{status:!1,iteratio:-1,sf:-1,errors:++o})}return e({status:!1,iteratio:-1,sf:-1,errors:++o})},i.onerror=function(){return e({status:!1,iteratio:-1,sf:-1,errors:++o})},i.send()}(g,J,e)}function K(e=function(){}){N(function(o){!0===o?t("#backup-progress-modal").hasClass("open")||(!1===u&&(i=!1,u=!0,_=!0),t("#bmi-ongoing-backup").show(300)):(t("#bmi-ongoing-backup").is(":visible")&&t("#bmi-ongoing-backup").hide(300),t("#backup-progress-modal").hasClass("open")&&!0===_?(!0===u&&(u=!1),_=!1,t.bmi.getCurrentBackups(function(e){t.bmi.fillWithNewBackups(e.backups,function(){!function(){let e=t("#BMI_BLOG_URL").text().trim();"/"!==e.slice(-e.length)&&(e+="/"),B(e+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date,function(e){if(!1===e)t.bmi.modal("backup-progress-modal").close();else{let o="Backup process aborted",i="[ERROR]";if((e=e.split("\n"))[e.length-1].includes(o)||e[e.length-2].includes(o))t.bmi.modal("backup-progress-modal").close(),t.bmi.alert("info",t("#bmi-aborted-al").text(),3e3);else if(e[e.length-1].includes(i)||e[e.length-2].includes(i))Q();else{t.bmi.modal("backup-progress-modal").close(),t.bmi.modal("backup-success-modal").open();let e=t(t("#bmi_restore_tbody").find("tr")[0]).find(".bc-download-btn").attr("href");t("#download-backup-url").attr({href:e}),t("#text-input-copy").val(e)}}})}()})})):!0!==u||t("#backup-progress-modal").hasClass("open")||(u=!1,t.bmi.reloadBackups())),e()})}function V(e=function(){}){let o=t("#BMI_BLOG_URL").text().trim();"/"!==o.slice(-o.length)&&(o+="/"),B(o+"?backup-migration=PROGRESS_LOGS&progress-id=latest_migration_full.log&backup-id=current&t="+ +new Date,function(o){if(!o)return e();let i=o.split("\n").slice(0,1)[0];if(o=o.split("\n").slice(1).join("\n"),!1===i||isNaN(parseFloat(i)))return e();let n=t("#restore-live-log-wrapper").find("pre")[0];o.includes("<")||o.includes(">")||o&&0!=o&&void 0!==o&&D(o,n),P(i),e()})}function Y(e=function(){}){t.bmi.ajax("htaccess-litespeed",{}).then(function(t){setTimeout(function(){e(!0)},400)}).catch(function(t){e(!1),console.log(t)})}function Z(e=function(){},o=!1,i=!0){t.bmi.ajax("migration-locked",{clearLogs:i}).then(function(i){"success"==i.status?e(!0):(o||t.bmi._msg(i),e(!1))}).catch(function(t){console.log(t)})}function tt(e=""){Z(function(e){e&&setTimeout(function(){if(!t("#restore-progress-modal").hasClass("open"))return;p=!1,b=!1,t("#restore-error-pre").text(t("#bmi-loading-translation").text().trim()),t("#after-logs-sent-modal").attr("data-error-source","migration");let e=t("#BMI_BLOG_URL").text().trim();"/"!==e.slice(-e.length)&&(e+="/"),t.bmi.modal("restore-progress-modal").close(),t.bmi.modal("restore-error-modal").open()},1e3)},!0,!1)}function et(){t.bmi.modal("restore-progress-modal").close(),t.bmi.modal("restore-success-modal").open(),setTimeout(function(){t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%"},500),w=!1}function ot(i=!1,n=null){let r=l;if(!r||r.trim().length<=0)return t.bmi.alert("warning",t("#bmi-no-file").text(),3e3);t("#pre-restore-modal").hasClass("open")&&t.bmi.modal("pre-restore-modal").close(),t("#restore-progress-modal").hasClass("open")||t.bmi.modal("restore-progress-modal").open(),i||(t("#restore-live-log-wrapper").find("pre")[0].innerText=""),null==n&&(s=0,p=!0,clearTimeout(e),G(!0,function(){Y(function(){V(function(){!function i(n,s,r,a=!1,l="false",c={}){null==r&&F(!0);t.bmi.ajax("restore-backup",{file:n,remote:s,secret:r,ignoreRunning:l,tmpname:a,options:c}).then(function(r){if("cli"===r.status){v={l:r.login,u:r.url},w=!0;let t=document.querySelector(".hide_so_much");if(t){let e=t.innerText;e.includes("001")?setTimeout(function(){et(),p=!1,w=!1},1e3):tt()}}else"success"===r.status?(v={l:r.login,u:r.url},setTimeout(function(){clearInterval(o),clearTimeout(e),p=!1,t.bmi.modal("restore-progress-modal").close(),t.bmi.modal("restore-success-modal").open(),setTimeout(function(){t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%"},500)},1500)):"secret"===r.status?(r.options.step=parseInt(r.options.step)+1,i(n,s,r.secret,r.tmp,"true",r.options)):"restore_ongoing"===r.status?(void 0!==r.options.firstDB&&(r.options.firstDB=!1),void 0!==r.options.dbFinished?!0!==r.options.dbFinished&&"true"!==r.options.dbFinished&&"1"!==r.options.dbFinished||(r.options.step=parseInt(r.options.step)+1):void 0!==r.options.dbConvertionFinished?"true"!==r.options.dbConvertionFinished&&!0!==r.options.dbConvertionFinished||(r.options.step=parseInt(r.options.step)+1):(r.options.step=parseInt(r.options.step)+1,4!=r.options.step&&"4"!=r.options.step||void 0===r.options.repeat_export||!0!==r.options.repeat_export&&"true"!==r.options.repeat_export&&"1"!==r.options.repeat_export||(r.options.step=3,r.options.firstExtract="false")),i(n,s,r.secret,r.tmp,"true",r.options)):"error"===r.status?setTimeout(function(){clearInterval(o),clearTimeout(e),tt()},1e3):(t.bmi.modal("pre-restore-modal").close(),t.bmi.modal("restore-progress-modal").close(),t.bmi._msg(r))}).catch(function(t,e){tt(e),console.log(t)})}(r,i,n)})})}))}function it(){return t("#bmi_restore_tbody").find('input[type="checkbox"]:checked')}function nt(e){e.preventDefault(),t("#format-tip-wrp")[0].style.minWidth="calc(100% - 120px)","none"===t("#format-tip-wrp")[0].style.display?t("#format-tip-wrp").show(300):t("#format-tip-wrp").hide(300)}t("#configuration-reset-absolute").on("click",function(e){e.preventDefault(),t.bmi.ajax("reset-configuration",{}).then(function(e){"success"==e.status?window.location.reload():t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#download-site-infos").on("click",function(e){e.preventDefault(),t.bmi.ajax("get-site-data",{}).then(function(e){"success"==e.status?t.bmi.prepareFile("site_details_troubleshooting.txt",JSON.stringify(e.data)):t.bmi._msg(e)}).catch(function(t){console.log(t)})}),t("#start-entire-backup").on("click",function(){t.bmi.modal("prenotice-modal").close(),t.bmi.modal("freeze-loading-modal").open(),t(".backup-minimize").removeClass("disabled"),clearTimeout(e),G(!1,function(){Y(function(){_=!1,i=!1,u=!0,t.bmi.ajax("create-backup",{estaminated_size:T()}).then(function(s){if("success"==s.status)i=!0,clearTimeout(e),u=!1,q(function(){setTimeout(function(){U(s,!0)},350)});else if("background"==s.status){m=!0,h=s.filename;let o=document.querySelector(".hide_so_much");if(o){let s=o.innerText;s.includes("001")&&(i=!0,n=!0,clearTimeout(e),u=!1,U({filename:h},!0)),s.includes("002")&&Q(),s.includes("003")&&(t.bmi.modal("backup-progress-modal").close(),t.bmi.alert("info",t("#bmi-aborted-al").text(),3e3))}}else"background_hard"==s.status?(m=!0,h=s.filename,s.settings.url=s.url,t.bmi.alert("success",t("#bmi-received-hard").text(),3e3),t(".backup-minimize").addClass("disabled"),t("#backup-progress-modal").hasClass("open")||setTimeout(function(){t.bmi.modal("freeze-loading-modal").close(),setTimeout(function(){t.bmi.modal("backup-progress-modal").open()},300)},300),window.onbeforeunload=function(){return"Backup in progress..."},X(s.settings)):(u=!1,setTimeout(function(){clearInterval(o),t(".log-wrapper").find("pre")[0].innerText="",t(".progress-active-bar")[0].style.width="0%",t(".progress-percentage")[0].style.left="0%",t(".progress-percentage")[0].innerText="0%"},300),t.bmi._msg(s),t.bmi.modal("backup-progress-modal").close(),void 0!==s.bfs?W():Q())}).catch(function(t){Q(),console.log(t)}),s=0,u=!0,H()})})}),t("#open_trouble_extenstion").on("click",function(){t("#trouble_extenstion").hasClass("openned")?(t("#trouble_extenstion").hide(300),t("#trouble_extenstion").removeClass("openned"),t(this).removeClass("active")):(t("#trouble_extenstion").show(300),t("#trouble_extenstion").addClass("openned"),t(this).addClass("active"))}),t("#switch-show-trs").on("click",function(){let e=this.dataset.see,o=this.dataset.hide,i=t(".hide-show-tr");t(this).hasClass("shown")?(i.hide(300),t(this).removeClass("shown"),this.innerText=e):(i.show(300),t(this).addClass("shown"),this.innerText=o)}),t("#ex_b_fs").on("change",function(){t("#ex_b_fs").is(":checked")?t("#bmi__collon").show():t("#bmi__collon").hide()}),t("#show-upload-area").on("click",function(){t(".upload_area").hasClass("hidden")?(t(".upload_area").show(300),t(".upload_area").removeClass("hidden"),t([document.documentElement,document.body]).animate({scrollTop:t(this).offset().top-50+"px"},300)):(t(".upload_area").hide(300),t(".upload_area").addClass("hidden"))}),t(".bmi-copper").on("click",function(e){e.preventDefault();let o=t("#"+this.getAttribute("data-copy"))[0];o.value&&o.value.length>0?t.bmi.clipboard(o.value):t.bmi.clipboard(o.innerText)}),t("#bmi_restore_tbody").on("click",".restore-btn",function(e){Z(function(o){if(o){let o=e.target.closest("tr").querySelector(".br_name").innerText;if(l=o,!o||o.trim().length<=0)return t.bmi.alert("warning",t("#bmi-no-file").text(),3e3);t("#restore-ok").prop("checked",!1),t.bmi.modal("freeze-loading-modal").open(),setTimeout(function(){A("is_allowed",function(e){"ask"===e?(t.bmi.modal("freeze-loading-modal").close(),t("#logs-sharing-ask-modal").attr("data-destination","pre-restore-modal"),setTimeout(function(){t.bmi.modal("logs-sharing-ask-modal").open()},300)):(t.bmi.modal("freeze-loading-modal").close(),setTimeout(function(){t.bmi.modal("pre-restore-modal").open()},300))})},300)}})}),t("#quick-download-migration").on("click",function(){let e=t("#bm-d-url").val();t.bmi.isUrlValid(e)?Z(function(o){o&&(e.length>0?(l=-100,t("#restore-ok").prop("checked",!1),t.bmi.modal("freeze-loading-modal").open(),setTimeout(function(){A("is_allowed",function(e){"ask"===e?(t.bmi.modal("freeze-loading-modal").close(),t("#logs-sharing-ask-modal").attr("data-destination","pre-restore-modal"),setTimeout(function(){t.bmi.modal("logs-sharing-ask-modal").open()},300)):(t.bmi.modal("freeze-loading-modal").close(),setTimeout(function(){t.bmi.modal("pre-restore-modal").open()},300))})},300)):t.bmi.alert("warning",t("#bmi-invalid-url").text(),5e3))}):t.bmi.alert("warning",t("#bmi-invalid-url").text(),5e3)}),t("#restore-start-sure").on("click",function(){t("#restore-ok").is(":checked")?-100===l?(l=null,t("#restore-live-log-wrapper").find("pre")[0].innerText="",Z(function(i){G(!0,function(){Y(function(){if(i){let i=t("#bm-d-url").val();t("#restore_current_step").text(t("#bmi-downloading-remote").text()),t.bmi.ajax("download-backup",{url:i}).then(function(i){clearInterval(o),clearTimeout(e),"success"===i.status?(b=!0,F(!1),t.bmi.reloadBackups(),l=i.name,setTimeout(function(){clearInterval(o),t("#restore-progress-modal .progress-active-bar")[0].style.width="0%",t("#restore-progress-modal .progress-percentage")[0].style.left="0%",t("#restore-progress-modal .progress-percentage")[0].innerText="0%",t("#restore_current_step").text(t("#bmi-restoring-prepare").text())},600)):"cli_download"==i.status?(l=".cli_download",b=!0,F(!1)):"error"===i.status?tt():(t.bmi._msg(i),tt())}).catch(function(t,e){tt(e),console.log(t)}),t("#restore-live-log-wrapper").find("pre")[0].innerText="",s=0,p=!0,b=!0,F(),t.bmi.modal("pre-restore-modal").close(),t.bmi.modal("restore-progress-modal").open()}})})})):ot():t.bmi.alert("warning",t("#bmi-restore-require-checkmark").text(),3e3)}),t(".backup-minimize").on("click",function(){N(function(e){!0===e?t("#bmi-ongoing-backup").show(300):t("#bmi-ongoing-backup").hide()})}),function t(){K(function(){setTimeout(function(){t()},f)})}(),t("#bmi-ongoing-backup").on("click",function(){N(function(e){!0===e?(s=0,H(),setTimeout(function(){t.bmi.modal("freeze-loading-modal").close(),setTimeout(function(){t.bmi.modal("backup-progress-modal").open()},300)},300)):(t.bmi.alert("info",t("#bmi-bc-ended").text(),3e3),t.bmi.reloadBackups()),t("#bmi-ongoing-backup").hide(300)})}),t("#bmi_support_chat").on("click",function(){if(0===t("#support-bmi").length){t("#bmi").append('<script id="support-bmi" src="'+t("#bmi-support-url-translation").val()+'" async><\/script>'),setTimeout(function(){t("#bmi_support_chat").hide()},100);var e=!1;let o=setInterval(function(){1==e&&clearInterval(o),void 0!==window.jivo_api&&(window.jivo_api.open(),e=!0)},30)}}),t("#bmi_restore_tbody").on("change",'input[type="checkbox"]',function(e){let o=it().length;o>0?t(".del-all-btn-wrp").show(300):t(".del-all-btn-wrp").hide(300),o==t("#bmi_restore_tbody").find('input[type="checkbox"]').length?t("#backups-select-all").prop("checked",!0):t("#backups-select-all").prop("checked",!1)}),t("#fix-uname-issues").on("click",function(e){e.preventDefault(),t.bmi.ajax("fix_uname_issues",{}).then(function(e){t.bmi.alert("success",t("#bmi-default-success").text(),3e3)}).catch(function(e){t.bmi.alert("error",t("#bmi-default-fail").text(),3e3)})}),t("#revert-uname-issues").on("click",function(e){e.preventDefault(),t.bmi.ajax("revert_uname_issues",{}).then(function(e){t.bmi.alert("success",t("#bmi-default-success").text(),3e3)}).catch(function(e){t.bmi.alert("error",t("#bmi-default-fail").text(),3e3)})}),t("#backups-select-all").on("change",function(){!0===this.checked?t("#bmi_restore_tbody").find('input[type="checkbox"]').prop("checked",!0):t("#bmi_restore_tbody").find('input[type="checkbox"]').prop("checked",!1),it().length>0?t(".del-all-btn-wrp").show(300):t(".del-all-btn-wrp").hide(300)}),t(".lrn-mr-btn, .closer-learn-more").on("click",function(){t(".learn_more_about_cron").hasClass("open")?(t(".learn_more_about_cron").removeClass("open"),t(".learn_more_about_cron").hide(300),t(".lrn-mr-btn").show(),t(".lrn-mr-btn").css({opacity:0}),t(".lrn-mr-btn").animate({opacity:1},300)):(t(".learn_more_about_cron").addClass("open"),t(".learn_more_about_cron").show(300),t(".lrn-mr-btn").css({opacity:1}),t(".lrn-mr-btn").animate({opacity:0},300,function(){t(".lrn-mr-btn").hide()}))}),t("#bmi-error-toggle").on("click",function(){t(".error-body").hasClass("open")?(t(".error-body").hide(300),t(".error-body").removeClass("open"),t("#bmi-error-toggle").text(t("#bmi-error-toggle").data("expand"))):(t(".error-body").show(300),t(".error-body").addClass("open"),t("#bmi-error-toggle").text(t("#bmi-error-toggle").data("collapse")))}),t("#bmi_send_test_mail").on("click",function(e){e.preventDefault(),t.bmi.ajax("send-test-mail",{}).then(function(e){t.bmi.alert("success",t("#bmi-email-success").text(),3e3)}).catch(function(e){t.bmi.alert("error",t("#bmi-email-fail").text(),3e3)})}),t("#bmi-error-dismiss").on("click",function(){t(".error-noticer").hide(300),setTimeout(function(){t(".error-noticer").remove()},330),t.bmi.ajax("dismiss-error-notice",{}).then(function(t){}).catch(function(t){})}),t(".deleteAllSelected").on("click",function(){let e=it(),o=[];for(let t=0;t<e.length;++t){let i=e[t].closest("tr");o.push(i.querySelector(".br_name").innerText)}t("#delete-confirm-modal").find(".text1").hide(),t("#delete-confirm-modal").find(".text2").show();let i=o.length;i<=0||(t("#backup-multiple-del-count").text(i),i>1?(t("#del-only-one").hide(),t("#del-more-than-one").show()):(t("#del-more-than-one").hide(),t("#del-only-one").show()),d=o,t.bmi.modal("delete-confirm-modal").open())}),t("#load-more-backups").on("click",function(e){e.preventDefault(),t.bmi.showMoreBackups()}),t("#show-format-tip").on("click",nt),t("#hide-format-tip").on("click",nt),t(".go-to-marbs").on("click",function(e){e.preventDefault(),document.getElementById("marbs").click(),t.bmi.modal().closeAll()}),t(".site-reloader").on("click",function(){let t=v.u;"/"!==t.slice(-t.length)&&(t+="/");let e=t+"?backup-migration=AFTER_RESTORE&backup-id="+v.l+"&progress-id=4u70L051n&t="+ +new Date;window.location=e}),function(){!async function(){O("plugins"),O("uploads"),O("themes"),O("contents_others"),O("wordpress")}(),t.bmi.ajax("get-dynamic-names",{}).then(function(e){let o=e.data;if(t("#bmi_exclusion_rules").text(""),void 0!==o&&void 0!==o.length){for(let e=0;e<o.length;++e){let i=t(".exclusion_template").clone();i.removeClass("exclusion_template"),i.find(".exclusion_txt").val(o[e].txt);let n=i.find(".exclusion_position").find("select"),s=i.find(".exclusion_where").find("select");n&&(n[0].setAttribute("data-def",o[e].pos),s&&(s[0].setAttribute("data-def",o[e].whr),t("#bmi_exclusion_rules").append(i),i.find(".exclusion_position").find(".bmi-dropdown").length>0&&t.bmi.setOption(i.find(".exclusion_position").find(".bmi-dropdown"),null,o[e].pos),i.find(".exclusion_where").find(".bmi-dropdown").length>0&&t.bmi.setOption(i.find(".exclusion_where").find(".bmi-dropdown"),null,o[e].whr)))}t("#dynamic-fpaths-names").text(e["dynamic-fpaths-names"].join("\n")),t("#dynamic-dpaths-names").text(e["dynamic-dpaths-names"].join("\n"))}}).catch(function(t){console.log(t)}),t.bmi.reloadBackups(),function(){let e=1e3*parseInt(t("#server-time-auto").attr("data-time")),o=new Date(e);t("#server-time-auto").text(o.toUTCString()),setInterval(function(){e+=1e3,o=new Date(e),t("#server-time-auto").text(o.toUTCString())},1e3),t("#ex_b_fs").is(":checked")?t("#bmi__collon").show():t("#bmi__collon").hide()}();let e=t("#BMI_BLOG_URL").text().trim();"/"!==e.slice(-e.length)&&(e+="/");let o=e+"?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t="+ +new Date,i=e+"?backup-migration=PROGRESS_LOGS&progress-id=latest_migration.log&backup-id=current&t="+ +new Date;t(".download-backup-log-url").attr("href",o),t(".download-restore-log-url").attr("href",i)}()}),jQuery(document).ready(function(t){t(".modal-opener").on("click",function(e){this.getAttribute("data-modal")&&""!=this.getAttribute("data-modal")&&(e.preventDefault(),this.getAttribute("data-close")&&t.bmi.modal(this.getAttribute("data-close")).close(),t.bmi.modal(this.getAttribute("data-modal")).open())}),t(".modal-closer").on("click",function(e){this.getAttribute("data-close")&&""!=this.getAttribute("data-close")?(e.preventDefault(),t.bmi.modal(this.getAttribute("data-close")).close()):this.closest(".modal")&&(e.preventDefault(),t("#"+this.closest(".modal").getAttribute("id")).length>0&&t.bmi.modal(this.closest(".modal").getAttribute("id")).close())}),t(".modal-close").on("click",function(e){this.closest(".modal")&&(e.preventDefault(),t.bmi.modal(this.closest(".modal").id).close())}),t(".modal").on("click",function(e){e.target!=this||t(e.target).hasClass("modal-no-close")||t.bmi.modal(this.id).close()})}),jQuery(document).ready(function(t){t.bmi.tooltips.init();let e,o=-1,i=!1,n="";for(let t=0;t<12;++t)n+="<div></div>";function s(i){clearInterval(e),0==i?(t(".upload-progress-bar").find("span")[0].style.width=i+"%",t(".upload-percentage").text(i+"%")):100==i?(t(".upload-progress-bar").find("span")[0].style.width=i+"%",t(".upload-percentage").text(i+"%")):function(i=0,n=1e3){if(o==i)return;o=i,clearInterval(e);let s=parseInt(t(".upload-percentage").text())-1;if(s>i&&0!=i)return;let r=i-s,a=s,l=Math.abs(Math.floor(n/r));e=setInterval(function(){a+=1,t(".upload-progress-bar").find("span")[0].style.width=a+"%",t(".upload-percentage").text(a+"%"),a>=100&&(clearInterval(e),o=null)},l)}(i,1e3)}t(".spinner-loader").html(n).addClass("lds-spinner"),t.fchunker({upId:"upid",upShardSize:"5",upMaxSize:"2000",upUrl:ajaxurl,upType:"zip",upCallBack:function(e){var o=e.status,n=e.message;e.url,Math.random();2==o&&(setTimeout(function(){t("#drop-area").show(300),t(".upload-progress").hide(300)},100),t.bmi.alert("success",t("#bmi-upload-end").text(),3e3),t.bmi.modal("upload-success-modal").open(),t.bmi.reloadBackups()),1==o&&(i||(t.bmi.alert("success",t("#bmi-upload-start").text(),3e3),i=!0)),0==o&&(t.upErrorMsg(n),t("#drop-area").show(300),t(".upload-progress").hide(300)),5==o&&(t.bmi.modal("upload-invalid-manifest-modal").open(),t("#drop-area").show(300),t(".upload-progress").hide(300)),3==o&&(s(100),t.upErrorMsg(n),t("#drop-area").show(300),t(".upload-progress").hide(300))},upEvent:function(t){s(t)},upStop:function(e){s(0),setTimeout(function(){t("#drop-area").show(300),t(".upload-progress").hide(300)},100),e.includes("Type error")?(t.bmi.modal("upload-wrong-file-modal").open(),t.bmi.alert("warning",t("#bmi-upload-wrong").text(),3e3)):e.includes("File already exists")?(t.bmi.modal("upload-exist-file-modal").open(),t.bmi.alert("warning",t("#bmi-upload-exists").text(),3e3)):(t.bmi.alert("error",t("#bmi-upload-error").text(),3e3),console.error(e))},upStart:function(){i=!1,o=-1,s(0),setTimeout(function(){t("#drop-area").hide(300),t(".upload-progress").show(300)},100)}})}),jQuery(document).ready(function(t){function e(t){for(let e=0;e<t.length;++e){let o=t[e].closest(".container-radio");o&&void 0!=typeof o.classList&&(o.classList.remove("active"),!0===t[e].checked&&o.classList.add("active"))}}t('input[type="radio"]').on("change",function(){let t=this.getAttribute("name");this.closest(".container-radio");e(document.querySelectorAll('[name="'+t+'"]'))}),e(document.getElementById("bmi").querySelectorAll('input[type="radio"]'))}),jQuery(document).ready(function(t){let e=!1;t(".tabs").on("click",".tab",function(o){if(this.classList.contains("active"))return;if(!0===e)return;e=!0,t.bmi.collapsers.closeAll();let i=this.getAttribute("data-point");"manage-restore-wrapper"==i?(t("#create-backup-wrapper").hide(300),t('[data-point="create-backup-wrapper"]').removeClass("active")):"create-backup-wrapper"==i&&(t("#manage-restore-wrapper").hide(300),t('[data-point="manage-restore-wrapper"]').removeClass("active")),t("#"+i).show(300),t(this).addClass("active"),setTimeout(function(){e=!1},320)})}),jQuery(document).ready(function(t){let e=document.getElementById("drop-area");function o(t){t.preventDefault(),t.stopPropagation()}function i(t){e.classList.add("highlight")}function n(t){e.classList.remove("highlight")}e&&(["dragenter","dragover","dragleave","drop"].forEach(t=>{e.addEventListener(t,o,!1)}),["dragenter","dragover"].forEach(t=>{e.addEventListener(t,i,!1),document.querySelector("body").addEventListener(t,i,!1)}),["dragleave","drop","mouseleave"].forEach(t=>{e.addEventListener(t,n,!1)}),t("body, #drop-area").on("mouseleave dragleave drop",function(){n()}),e.addEventListener("drop",function(t){!function(t){t=[...t],jQuery.fchunker_upload("file",t[0])}(t.dataTransfer.files)},!1))});
|
analyst/main.php
CHANGED
@@ -15,7 +15,7 @@ if (!function_exists('analyst_init')) {
|
|
15 |
try {
|
16 |
analyst_resolve_sdk($options['base-dir']);
|
17 |
} catch (Exception $exception) {
|
18 |
-
error_log('[ANALYST] Cannot resolve any supported SDK');
|
19 |
return;
|
20 |
}
|
21 |
|
@@ -30,7 +30,7 @@ if (!function_exists('analyst_init')) {
|
|
30 |
|
31 |
$analyst->registerAccount(new Account\Account($options['client-id'], $options['client-secret'], $options['base-dir']));
|
32 |
} catch (Exception $e) {
|
33 |
-
error_log('Analyst SDK receive an error: [' . $e->getMessage() . '] Please contact our support at support@analyst.com');
|
34 |
}
|
35 |
}
|
36 |
}
|
15 |
try {
|
16 |
analyst_resolve_sdk($options['base-dir']);
|
17 |
} catch (Exception $exception) {
|
18 |
+
// error_log('[ANALYST] Cannot resolve any supported SDK');
|
19 |
return;
|
20 |
}
|
21 |
|
30 |
|
31 |
$analyst->registerAccount(new Account\Account($options['client-id'], $options['client-secret'], $options['base-dir']));
|
32 |
} catch (Exception $e) {
|
33 |
+
// error_log('Analyst SDK receive an error: [' . $e->getMessage() . '] Please contact our support at support@analyst.com');
|
34 |
}
|
35 |
}
|
36 |
}
|
analyst/src/Account/Account.php
CHANGED
@@ -243,8 +243,8 @@ class Account implements TrackerContract
|
|
243 |
{
|
244 |
if (!$this->isAllowingLogging()) return;
|
245 |
|
246 |
-
$question = isset($_POST['question']) ? stripslashes($_POST['question']) : null;
|
247 |
-
$reason = isset($_POST['reason']) ? stripslashes($_POST['reason']) : null;
|
248 |
|
249 |
DeactivateRequest::make($this->collector, $this->id, $this->path, $question, $reason)
|
250 |
->execute($this->requestor);
|
243 |
{
|
244 |
if (!$this->isAllowingLogging()) return;
|
245 |
|
246 |
+
$question = isset($_POST['question']) ? sanitize_text_field(stripslashes($_POST['question'])) : null;
|
247 |
+
$reason = isset($_POST['reason']) ? sanitize_text_field(stripslashes($_POST['reason'])) : null;
|
248 |
|
249 |
DeactivateRequest::make($this->collector, $this->id, $this->path, $question, $reason)
|
250 |
->execute($this->requestor);
|
analyst/src/Collector.php
CHANGED
@@ -153,7 +153,7 @@ class Collector
|
|
153 |
*/
|
154 |
public function getServerIp()
|
155 |
{
|
156 |
-
return $_SERVER['SERVER_ADDR'];
|
157 |
}
|
158 |
|
159 |
/**
|
153 |
*/
|
154 |
public function getServerIp()
|
155 |
{
|
156 |
+
return sanitize_text_field($_SERVER['SERVER_ADDR']);
|
157 |
}
|
158 |
|
159 |
/**
|
analyst/src/Mutator.php
CHANGED
@@ -95,7 +95,7 @@ class Mutator
|
|
95 |
public function registerHooks()
|
96 |
{
|
97 |
add_action('wp_ajax_analyst_notification_dismiss', function () {
|
98 |
-
$this->factory->remove($_POST['id']);
|
99 |
|
100 |
$this->factory->sync();
|
101 |
});
|
95 |
public function registerHooks()
|
96 |
{
|
97 |
add_action('wp_ajax_analyst_notification_dismiss', function () {
|
98 |
+
$this->factory->remove(sanitize_text_field($_POST['id']));
|
99 |
|
100 |
$this->factory->sync();
|
101 |
});
|
backup-backup.php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
* Author URI: https://backupbliss.com/
|
8 |
* Plugin URI: https://backupbliss.com
|
9 |
* Text Domain: backup-backup
|
10 |
-
* Version: 1.2.
|
11 |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
12 |
|
13 |
// Exit on direct access
|
@@ -21,7 +21,7 @@
|
|
21 |
define('BMI_DEBUG', false);
|
22 |
}
|
23 |
if (!defined('BMI_VERSION')) {
|
24 |
-
define('BMI_VERSION', '1.2.
|
25 |
}
|
26 |
if (!defined('BMI_ROOT_DIR')) {
|
27 |
define('BMI_ROOT_DIR', __DIR__);
|
7 |
* Author URI: https://backupbliss.com/
|
8 |
* Plugin URI: https://backupbliss.com
|
9 |
* Text Domain: backup-backup
|
10 |
+
* Version: 1.2.2
|
11 |
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
12 |
|
13 |
// Exit on direct access
|
21 |
define('BMI_DEBUG', false);
|
22 |
}
|
23 |
if (!defined('BMI_VERSION')) {
|
24 |
+
define('BMI_VERSION', '1.2.2');
|
25 |
}
|
26 |
if (!defined('BMI_ROOT_DIR')) {
|
27 |
define('BMI_ROOT_DIR', __DIR__);
|
includes/ajax.php
CHANGED
@@ -102,6 +102,10 @@
|
|
102 |
BMP::res($this->forceBackupToStop());
|
103 |
} elseif ($this->post['f'] == 'force-restore-to-stop') {
|
104 |
BMP::res($this->forceRestoreToStop());
|
|
|
|
|
|
|
|
|
105 |
} elseif ($this->post['f'] == 'debugging') {
|
106 |
BMP::res($this->debugging());
|
107 |
} else {
|
@@ -490,7 +494,7 @@
|
|
490 |
@exec(BMI_CLI_EXECUTABLE . ' -f "' . $cliHandler . '" bmi_backup ' . $name . ' > /dev/null &', $res);
|
491 |
$res = implode("\n", $res);
|
492 |
|
493 |
-
sleep(
|
494 |
|
495 |
if (file_exists($cli_lock_end) && (time() - filemtime($cli_lock_end)) < 10) {
|
496 |
|
@@ -600,6 +604,9 @@
|
|
600 |
$zip_progress->log('#002', 'END-CODE');
|
601 |
$zip_progress->end();
|
602 |
|
|
|
|
|
|
|
603 |
// Return error
|
604 |
return ['status' => 'error'];
|
605 |
} else {
|
@@ -640,6 +647,9 @@
|
|
640 |
$zip_progress->log('#100', 'END-CODE');
|
641 |
$zip_progress->end();
|
642 |
|
|
|
|
|
|
|
643 |
// Return error
|
644 |
return ['status' => 'error', 'bfs' => true];
|
645 |
}
|
@@ -659,6 +669,9 @@
|
|
659 |
$zip_progress->log('#002', 'END-CODE');
|
660 |
$zip_progress->end();
|
661 |
|
|
|
|
|
|
|
662 |
// Return error
|
663 |
return ['status' => 'error'];
|
664 |
} else {
|
@@ -744,8 +757,12 @@
|
|
744 |
$zip_progress->log('#002', 'END-CODE');
|
745 |
$zip_progress->end();
|
746 |
|
|
|
|
|
747 |
// Return error
|
748 |
if (file_exists($backup_path)) @unlink($backup_path);
|
|
|
|
|
749 |
return ['status' => 'error'];
|
750 |
}
|
751 |
|
@@ -765,8 +782,10 @@
|
|
765 |
$zip_progress->log('#002', 'END-CODE');
|
766 |
$zip_progress->end();
|
767 |
|
|
|
768 |
Logger::log(__("Backup process aborted.", 'backup-backup'));
|
769 |
|
|
|
770 |
return ['status' => 'msg', 'why' => __('Backup process aborted.', 'backup-backup'), 'level' => 'info'];
|
771 |
}
|
772 |
|
@@ -791,6 +810,9 @@
|
|
791 |
$zip_progress->log('#002', 'END-CODE');
|
792 |
$zip_progress->end();
|
793 |
|
|
|
|
|
|
|
794 |
// Return error
|
795 |
return ['status' => 'error'];
|
796 |
}
|
@@ -800,6 +822,8 @@
|
|
800 |
$zip_progress->log('#001', 'END-CODE');
|
801 |
$zip_progress->end();
|
802 |
|
|
|
|
|
803 |
// Unlink progress
|
804 |
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
805 |
if (file_exists(BMI_BACKUPS . '/.abort')) @unlink(BMI_BACKUPS . '/.abort');
|
@@ -810,7 +834,7 @@
|
|
810 |
|
811 |
$GLOBALS['bmi_error_handled'] = true;
|
812 |
|
813 |
-
|
814 |
return ['status' => 'success', 'filename' => $name, 'root' => plugin_dir_url(BMI_ROOT_FILE)];
|
815 |
|
816 |
}
|
@@ -930,7 +954,7 @@
|
|
930 |
@exec(BMI_CLI_EXECUTABLE . ' -f "' . $cliHandler . '" bmi_restore ' . $backupName . ' ' . $remoteType . ' > /dev/null &', $res);
|
931 |
$res = implode("\n", $res);
|
932 |
|
933 |
-
sleep(
|
934 |
|
935 |
if (file_exists($lock_cli_end) && (time() - filemtime($lock_cli_end)) < 10) {
|
936 |
|
@@ -945,11 +969,14 @@
|
|
945 |
|
946 |
if (!file_exists($lock_cli) || (time() - filemtime($lock_cli)) > 10) {
|
947 |
|
|
|
948 |
$migration->log(__('No response from PHP CLI - plugin will try to recover the migration with traditional restore.', 'backup-backup'), 'warn');
|
949 |
if (file_exists($lock_cli)) @unlink($lock_cli);
|
950 |
|
951 |
} else {
|
952 |
|
|
|
|
|
953 |
// $migration->log(__('PHP CLI responded with correct code - we will continue via PHP CLI.', 'backup-backup'), 'info');
|
954 |
// $migration->end();
|
955 |
|
@@ -972,6 +999,7 @@
|
|
972 |
|
973 |
if (defined('BMI_USING_CLI_FUNCTIONALITY') && BMI_USING_CLI_FUNCTIONALITY === true) {
|
974 |
$migration->log(__('PHP CLI: Restore process initialized, restoring...', 'backup-backup'), 'success');
|
|
|
975 |
touch($lock_cli);
|
976 |
} else {
|
977 |
$migration->log(__('Restore process initialized, restoring (non-cli mode)...', 'backup-backup'), 'success');
|
@@ -1050,6 +1078,9 @@
|
|
1050 |
$migration->log('#004', 'END-CODE');
|
1051 |
$migration->end();
|
1052 |
|
|
|
|
|
|
|
1053 |
return ['status' => 'error'];
|
1054 |
} else {
|
1055 |
$migration->log(__('Confirmed, there is enough space on the device, checked: ' . ($bytes) . ' bytes.', 'backup-backup'), 'SUCCESS');
|
@@ -1066,6 +1097,9 @@
|
|
1066 |
$migration->log('#003', 'END-CODE');
|
1067 |
$migration->end();
|
1068 |
|
|
|
|
|
|
|
1069 |
return ['status' => 'error'];
|
1070 |
}
|
1071 |
|
@@ -1093,6 +1127,9 @@
|
|
1093 |
$migration->log('#002', 'END-CODE');
|
1094 |
$migration->end();
|
1095 |
|
|
|
|
|
|
|
1096 |
return ['status' => 'error'];
|
1097 |
}
|
1098 |
|
@@ -1105,10 +1142,13 @@
|
|
1105 |
$migration->log('#001', 'END-CODE');
|
1106 |
$migration->end();
|
1107 |
|
|
|
|
|
1108 |
// Put autologin
|
1109 |
file_put_contents($autologin_file, $autoLoginMD);
|
1110 |
touch($autologin_file);
|
1111 |
|
|
|
1112 |
return ['status' => 'success', 'login' => explode('_', $autoLoginMD)[0], 'url' => site_url()];
|
1113 |
}
|
1114 |
|
@@ -1152,16 +1192,23 @@
|
|
1152 |
|
1153 |
require_once BMI_INCLUDES . '/progress/migration.php';
|
1154 |
$progress = BMI_BACKUPS . '/latest_migration_progress.log';
|
|
|
1155 |
|
1156 |
-
if (
|
|
|
|
|
1157 |
|
1158 |
-
|
1159 |
-
$
|
1160 |
-
|
1161 |
-
|
|
|
|
|
|
|
1162 |
|
1163 |
-
|
1164 |
|
|
|
1165 |
}
|
1166 |
|
1167 |
return ['status' => 'success'];
|
@@ -1790,6 +1837,9 @@
|
|
1790 |
}
|
1791 |
$ignored_folders = $ignored_folders_default;
|
1792 |
$ignored_paths_default = [BMI_CONFIG_DIR, BMI_BACKUPS, BMI_ROOT_DIR];
|
|
|
|
|
|
|
1793 |
if (defined('BMI_PRO_ROOT_DIR')) $ignored_paths_default[] = BMI_PRO_ROOT_DIR;
|
1794 |
if ($is && $dpathsis) {
|
1795 |
BMP::merge_arrays($ignored_paths_default, $dpaths);
|
@@ -1893,10 +1943,12 @@
|
|
1893 |
if ($acis == false) {
|
1894 |
$acis = true;
|
1895 |
$ac = [
|
1896 |
-
'***ABSPATH***/wp-content/uploads/wpforms/.htaccess.cpmh3129' // Binary broken file of wpforms
|
|
|
1897 |
];
|
1898 |
} else {
|
1899 |
$ac[] = '***ABSPATH***/wp-content/uploads/wpforms/.htaccess.cpmh3129'; // Binary broken file of wpforms
|
|
|
1900 |
}
|
1901 |
|
1902 |
$temp_is = false;
|
@@ -2115,6 +2167,8 @@
|
|
2115 |
@unlink(BMI_CONFIG_PATH);
|
2116 |
}
|
2117 |
|
|
|
|
|
2118 |
return ['status' => 'success'];
|
2119 |
}
|
2120 |
|
@@ -2410,6 +2464,160 @@
|
|
2410 |
|
2411 |
}
|
2412 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2413 |
public function debugging() {
|
2414 |
}
|
2415 |
}
|
102 |
BMP::res($this->forceBackupToStop());
|
103 |
} elseif ($this->post['f'] == 'force-restore-to-stop') {
|
104 |
BMP::res($this->forceRestoreToStop());
|
105 |
+
} elseif ($this->post['f'] == 'send-troubleshooting-logs') {
|
106 |
+
BMP::res($this->sendTroubleshootingDetails());
|
107 |
+
} elseif ($this->post['f'] == 'log-sharing-details') {
|
108 |
+
BMP::res($this->logSharing());
|
109 |
} elseif ($this->post['f'] == 'debugging') {
|
110 |
BMP::res($this->debugging());
|
111 |
} else {
|
494 |
@exec(BMI_CLI_EXECUTABLE . ' -f "' . $cliHandler . '" bmi_backup ' . $name . ' > /dev/null &', $res);
|
495 |
$res = implode("\n", $res);
|
496 |
|
497 |
+
sleep(3);
|
498 |
|
499 |
if (file_exists($cli_lock_end) && (time() - filemtime($cli_lock_end)) < 10) {
|
500 |
|
604 |
$zip_progress->log('#002', 'END-CODE');
|
605 |
$zip_progress->end();
|
606 |
|
607 |
+
if ($isCLI === true) touch($cli_lock_end);
|
608 |
+
$this->actionsAfterProcess();
|
609 |
+
|
610 |
// Return error
|
611 |
return ['status' => 'error'];
|
612 |
} else {
|
647 |
$zip_progress->log('#100', 'END-CODE');
|
648 |
$zip_progress->end();
|
649 |
|
650 |
+
if ($isCLI === true) touch($cli_lock_end);
|
651 |
+
$this->actionsAfterProcess();
|
652 |
+
|
653 |
// Return error
|
654 |
return ['status' => 'error', 'bfs' => true];
|
655 |
}
|
669 |
$zip_progress->log('#002', 'END-CODE');
|
670 |
$zip_progress->end();
|
671 |
|
672 |
+
if ($isCLI === true) touch($cli_lock_end);
|
673 |
+
$this->actionsAfterProcess();
|
674 |
+
|
675 |
// Return error
|
676 |
return ['status' => 'error'];
|
677 |
} else {
|
757 |
$zip_progress->log('#002', 'END-CODE');
|
758 |
$zip_progress->end();
|
759 |
|
760 |
+
if ($isCLI === true) touch($cli_lock_end);
|
761 |
+
|
762 |
// Return error
|
763 |
if (file_exists($backup_path)) @unlink($backup_path);
|
764 |
+
|
765 |
+
$this->actionsAfterProcess();
|
766 |
return ['status' => 'error'];
|
767 |
}
|
768 |
|
782 |
$zip_progress->log('#002', 'END-CODE');
|
783 |
$zip_progress->end();
|
784 |
|
785 |
+
if ($isCLI === true) touch($cli_lock_end);
|
786 |
Logger::log(__("Backup process aborted.", 'backup-backup'));
|
787 |
|
788 |
+
$this->actionsAfterProcess();
|
789 |
return ['status' => 'msg', 'why' => __('Backup process aborted.', 'backup-backup'), 'level' => 'info'];
|
790 |
}
|
791 |
|
810 |
$zip_progress->log('#002', 'END-CODE');
|
811 |
$zip_progress->end();
|
812 |
|
813 |
+
if ($isCLI === true) touch($cli_lock_end);
|
814 |
+
$this->actionsAfterProcess();
|
815 |
+
|
816 |
// Return error
|
817 |
return ['status' => 'error'];
|
818 |
}
|
822 |
$zip_progress->log('#001', 'END-CODE');
|
823 |
$zip_progress->end();
|
824 |
|
825 |
+
if ($isCLI === true) touch($cli_lock_end);
|
826 |
+
|
827 |
// Unlink progress
|
828 |
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
829 |
if (file_exists(BMI_BACKUPS . '/.abort')) @unlink(BMI_BACKUPS . '/.abort');
|
834 |
|
835 |
$GLOBALS['bmi_error_handled'] = true;
|
836 |
|
837 |
+
$this->actionsAfterProcess(true);
|
838 |
return ['status' => 'success', 'filename' => $name, 'root' => plugin_dir_url(BMI_ROOT_FILE)];
|
839 |
|
840 |
}
|
954 |
@exec(BMI_CLI_EXECUTABLE . ' -f "' . $cliHandler . '" bmi_restore ' . $backupName . ' ' . $remoteType . ' > /dev/null &', $res);
|
955 |
$res = implode("\n", $res);
|
956 |
|
957 |
+
sleep(3);
|
958 |
|
959 |
if (file_exists($lock_cli_end) && (time() - filemtime($lock_cli_end)) < 10) {
|
960 |
|
969 |
|
970 |
if (!file_exists($lock_cli) || (time() - filemtime($lock_cli)) > 10) {
|
971 |
|
972 |
+
$progressFile = null;
|
973 |
$migration->log(__('No response from PHP CLI - plugin will try to recover the migration with traditional restore.', 'backup-backup'), 'warn');
|
974 |
if (file_exists($lock_cli)) @unlink($lock_cli);
|
975 |
|
976 |
} else {
|
977 |
|
978 |
+
$progressFile = null;
|
979 |
+
|
980 |
// $migration->log(__('PHP CLI responded with correct code - we will continue via PHP CLI.', 'backup-backup'), 'info');
|
981 |
// $migration->end();
|
982 |
|
999 |
|
1000 |
if (defined('BMI_USING_CLI_FUNCTIONALITY') && BMI_USING_CLI_FUNCTIONALITY === true) {
|
1001 |
$migration->log(__('PHP CLI: Restore process initialized, restoring...', 'backup-backup'), 'success');
|
1002 |
+
error_log('running cli');
|
1003 |
touch($lock_cli);
|
1004 |
} else {
|
1005 |
$migration->log(__('Restore process initialized, restoring (non-cli mode)...', 'backup-backup'), 'success');
|
1078 |
$migration->log('#004', 'END-CODE');
|
1079 |
$migration->end();
|
1080 |
|
1081 |
+
if ($isCLIRunning == true) touch($lock_cli_end);
|
1082 |
+
$this->actionsAfterProcess(false, 'migration');
|
1083 |
+
|
1084 |
return ['status' => 'error'];
|
1085 |
} else {
|
1086 |
$migration->log(__('Confirmed, there is enough space on the device, checked: ' . ($bytes) . ' bytes.', 'backup-backup'), 'SUCCESS');
|
1097 |
$migration->log('#003', 'END-CODE');
|
1098 |
$migration->end();
|
1099 |
|
1100 |
+
if ($isCLIRunning == true) touch($lock_cli_end);
|
1101 |
+
$this->actionsAfterProcess(false, 'migration');
|
1102 |
+
|
1103 |
return ['status' => 'error'];
|
1104 |
}
|
1105 |
|
1127 |
$migration->log('#002', 'END-CODE');
|
1128 |
$migration->end();
|
1129 |
|
1130 |
+
if ($isCLIRunning == true) touch($lock_cli_end);
|
1131 |
+
$this->actionsAfterProcess(false, 'migration');
|
1132 |
+
|
1133 |
return ['status' => 'error'];
|
1134 |
}
|
1135 |
|
1142 |
$migration->log('#001', 'END-CODE');
|
1143 |
$migration->end();
|
1144 |
|
1145 |
+
if ($isCLIRunning == true) touch($lock_cli_end);
|
1146 |
+
|
1147 |
// Put autologin
|
1148 |
file_put_contents($autologin_file, $autoLoginMD);
|
1149 |
touch($autologin_file);
|
1150 |
|
1151 |
+
$this->actionsAfterProcess(true, 'migration');
|
1152 |
return ['status' => 'success', 'login' => explode('_', $autoLoginMD)[0], 'url' => site_url()];
|
1153 |
}
|
1154 |
|
1192 |
|
1193 |
require_once BMI_INCLUDES . '/progress/migration.php';
|
1194 |
$progress = BMI_BACKUPS . '/latest_migration_progress.log';
|
1195 |
+
$shouldClearLogs = true;
|
1196 |
|
1197 |
+
if (isset($this->post['clearLogs']) && $this->post['clearLogs'] == 'false') {
|
1198 |
+
$shouldClearLogs = false;
|
1199 |
+
}
|
1200 |
|
1201 |
+
if ($shouldClearLogs === true) {
|
1202 |
+
if (file_exists($lock_cli_end) && (time() - filemtime($lock_cli_end)) > 10) {
|
1203 |
+
|
1204 |
+
$migration = new MigrationProgress();
|
1205 |
+
$migration->start();
|
1206 |
+
$migration->log(__('Initializing restore process...', 'backup-backup'), 'STEP');
|
1207 |
+
$migration->end();
|
1208 |
|
1209 |
+
file_put_contents($progress, '0');
|
1210 |
|
1211 |
+
}
|
1212 |
}
|
1213 |
|
1214 |
return ['status' => 'success'];
|
1837 |
}
|
1838 |
$ignored_folders = $ignored_folders_default;
|
1839 |
$ignored_paths_default = [BMI_CONFIG_DIR, BMI_BACKUPS, BMI_ROOT_DIR];
|
1840 |
+
$ignored_paths_default[] = "***ABSPATH***/wp-content/ai1wm-backups";
|
1841 |
+
$ignored_paths_default[] = "***ABSPATH***/wp-content/uploads/wp-clone";
|
1842 |
+
$ignored_paths_default[] = "***ABSPATH***/wp-content/updraft";
|
1843 |
if (defined('BMI_PRO_ROOT_DIR')) $ignored_paths_default[] = BMI_PRO_ROOT_DIR;
|
1844 |
if ($is && $dpathsis) {
|
1845 |
BMP::merge_arrays($ignored_paths_default, $dpaths);
|
1943 |
if ($acis == false) {
|
1944 |
$acis = true;
|
1945 |
$ac = [
|
1946 |
+
'***ABSPATH***/wp-content/uploads/wpforms/.htaccess.cpmh3129', // Binary broken file of wpforms
|
1947 |
+
'***ABSPATH***/logs/traffic.html/.md5sums' // Binary broken file of wpforms
|
1948 |
];
|
1949 |
} else {
|
1950 |
$ac[] = '***ABSPATH***/wp-content/uploads/wpforms/.htaccess.cpmh3129'; // Binary broken file of wpforms
|
1951 |
+
$ac[] = '***ABSPATH***/logs/traffic.html/.md5sums'; // Binary broken file of wpforms
|
1952 |
}
|
1953 |
|
1954 |
$temp_is = false;
|
2167 |
@unlink(BMI_CONFIG_PATH);
|
2168 |
}
|
2169 |
|
2170 |
+
// update_option('BMI_LOGS_SHARING_IS_ALLOWED', 'unknown');
|
2171 |
+
|
2172 |
return ['status' => 'success'];
|
2173 |
}
|
2174 |
|
2464 |
|
2465 |
}
|
2466 |
|
2467 |
+
public function sendTroubleshootingDetails($send_type = 'manual', $triggeredBy = false, $blocking = true) {
|
2468 |
+
|
2469 |
+
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'check' . DIRECTORY_SEPARATOR . 'system_info.php';
|
2470 |
+
$bmiSiteData = new SI();
|
2471 |
+
$bmiSiteData = $bmiSiteData->to_array();
|
2472 |
+
|
2473 |
+
$latestBackupLogs = 'does_not_exist';
|
2474 |
+
$latestBackupProgress = 'does_not_exist';
|
2475 |
+
$latestRestorationLogs = 'does_not_exist';
|
2476 |
+
$latestRestorationProgress = 'does_not_exist';
|
2477 |
+
$currentPluginConfig = 'does_not_exist';
|
2478 |
+
$pluginGlobalLogs = 'does_not_exist';
|
2479 |
+
$backgroundErrors = 'does_not_exist';
|
2480 |
+
|
2481 |
+
if (file_exists(BMI_BACKUPS . '/latest.log')) {
|
2482 |
+
$latestBackupLogs = file_get_contents(BMI_BACKUPS . '/latest.log');
|
2483 |
+
}
|
2484 |
+
|
2485 |
+
if (file_exists(BMI_BACKUPS . '/latest_progress.log')) {
|
2486 |
+
$latestBackupProgress = file_get_contents(BMI_BACKUPS . '/latest_progress.log');
|
2487 |
+
}
|
2488 |
+
|
2489 |
+
if (file_exists(BMI_BACKUPS . '/latest_migration.log')) {
|
2490 |
+
$latestRestorationLogs = file_get_contents(BMI_BACKUPS . '/latest_migration.log');
|
2491 |
+
}
|
2492 |
+
|
2493 |
+
if (file_exists(BMI_BACKUPS . '/latest_migration_progress.log')) {
|
2494 |
+
$latestRestorationProgress = file_get_contents(BMI_BACKUPS . '/latest_migration_progress.log');
|
2495 |
+
}
|
2496 |
+
|
2497 |
+
if (file_exists(BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . '/config.json')) {
|
2498 |
+
$currentPluginConfig = file_get_contents(BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . '/config.json');
|
2499 |
+
}
|
2500 |
+
|
2501 |
+
if (file_exists(BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . 'complete_logs.log')) {
|
2502 |
+
$pluginGlobalLogs = file_get_contents(BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . 'complete_logs.log');
|
2503 |
+
}
|
2504 |
+
|
2505 |
+
$backgroundLogsPath = BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . 'background-errors.log';
|
2506 |
+
if (file_exists($backgroundLogsPath)) {
|
2507 |
+
if ((filesize($backgroundLogsPath) / 1024 / 1024) <= 4) {
|
2508 |
+
$backgroundErrors = file_get_contents($backgroundLogsPath);
|
2509 |
+
} else $backgroundErrors = 'file_too_large';
|
2510 |
+
}
|
2511 |
+
|
2512 |
+
$ifCLI = false;
|
2513 |
+
if (defined('BMI_USING_CLI_FUNCTIONALITY') && BMI_USING_CLI_FUNCTIONALITY === true) {
|
2514 |
+
$ifCLI = true;
|
2515 |
+
}
|
2516 |
+
|
2517 |
+
$logsSourceFrontEnd = 'manual';
|
2518 |
+
if ($triggeredBy != false) {
|
2519 |
+
$logsSourceFrontEnd = $triggeredBy;
|
2520 |
+
}
|
2521 |
+
if (isset($this->post['source']) && in_array($this->post['source'], ['backup', 'migration'])) {
|
2522 |
+
$logsSourceFrontEnd = $this->post['source'];
|
2523 |
+
}
|
2524 |
+
|
2525 |
+
$url = 'https://' . BMI_API_BACKUPBLISS_PUSH . '/v1' . '/push';
|
2526 |
+
$response = wp_remote_post($url, array(
|
2527 |
+
'method' => 'POST',
|
2528 |
+
'timeout' => 15,
|
2529 |
+
'blocking' => $blocking,
|
2530 |
+
'sslverify' => false,
|
2531 |
+
'send_type' => $send_type,
|
2532 |
+
'body' => array(
|
2533 |
+
'admin_url' => admin_url(),
|
2534 |
+
'home_url' => home_url(),
|
2535 |
+
'site_url' => get_site_url(),
|
2536 |
+
'is_multisite' => is_multisite() ? "yes" : "no",
|
2537 |
+
'is_abspath_writable' => is_writable(ABSPATH) ? "yes" : "no",
|
2538 |
+
'site_information' => $bmiSiteData,
|
2539 |
+
'latest_backup_logs' => $latestBackupLogs,
|
2540 |
+
'latest_backup_progress' => $latestBackupProgress,
|
2541 |
+
'latest_restoration_logs' => $latestRestorationLogs,
|
2542 |
+
'latest_restoration_progress' => $latestRestorationProgress,
|
2543 |
+
'current_plugin_config' => $currentPluginConfig,
|
2544 |
+
'plugin_global_logs' => $pluginGlobalLogs,
|
2545 |
+
'background_errors' => $backgroundErrors,
|
2546 |
+
'triggered_by' => $logsSourceFrontEnd,
|
2547 |
+
'is_defined' => defined('BMI_BACKUP_PRO') ? 'yes' : 'no',
|
2548 |
+
'is_cli' => $ifCLI
|
2549 |
+
)
|
2550 |
+
));
|
2551 |
+
|
2552 |
+
if (is_wp_error($response)) {
|
2553 |
+
$error_message = $response->get_error_message();
|
2554 |
+
Logger::error($error_message, 'backup-backup');
|
2555 |
+
return ['status' => 'fail'];
|
2556 |
+
} else {
|
2557 |
+
try {
|
2558 |
+
$body = json_decode($response['body']);
|
2559 |
+
if (isset($body->code)) {
|
2560 |
+
return ['status' => 'success', 'code' => sanitize_text_field($body->code)];
|
2561 |
+
} else {
|
2562 |
+
return ['status' => 'fail'];
|
2563 |
+
}
|
2564 |
+
} catch (\Exception $e) {
|
2565 |
+
Logger::error(print_r($e, true), 'backup-backup');
|
2566 |
+
return ['status' => 'fail'];
|
2567 |
+
} catch (\Throwable $t) {
|
2568 |
+
Logger::error(print_r($t, true), 'backup-backup');
|
2569 |
+
return ['status' => 'fail'];
|
2570 |
+
}
|
2571 |
+
}
|
2572 |
+
|
2573 |
+
}
|
2574 |
+
|
2575 |
+
public function actionsAfterProcess($success = false, $triggeredBy = 'backup') {
|
2576 |
+
|
2577 |
+
return null;
|
2578 |
+
|
2579 |
+
// REMOVED CODE:
|
2580 |
+
// $canShare = BMP::canShareLogsOrShouldAsk();
|
2581 |
+
// if ($canShare === 'allowed') {
|
2582 |
+
//
|
2583 |
+
// $send_type = 'error';
|
2584 |
+
// if ($success) $send_type = 'success';
|
2585 |
+
// $this->sendTroubleshootingDetails($send_type, $triggeredBy, false);
|
2586 |
+
//
|
2587 |
+
// }
|
2588 |
+
|
2589 |
+
}
|
2590 |
+
|
2591 |
+
public function logSharing() {
|
2592 |
+
|
2593 |
+
$type = $this->post['question'];
|
2594 |
+
|
2595 |
+
if ($type == 'set_yes') {
|
2596 |
+
|
2597 |
+
// $isOk = Dashboard\bmi_set_config('LOGS::SHARING', 'yes');
|
2598 |
+
// update_option('BMI_LOGS_SHARING_IS_ALLOWED', 'yes');
|
2599 |
+
return ['status' => 'success'];
|
2600 |
+
|
2601 |
+
} else if ($type == 'set_no') {
|
2602 |
+
|
2603 |
+
// $isOk = Dashboard\bmi_set_config('LOGS::SHARING', 'no');
|
2604 |
+
// update_option('BMI_LOGS_SHARING_IS_ALLOWED', 'no');
|
2605 |
+
return ['status' => 'success'];
|
2606 |
+
|
2607 |
+
} else if ($type == 'is_allowed') {
|
2608 |
+
|
2609 |
+
// $canShare = BMP::canShareLogsOrShouldAsk();
|
2610 |
+
// return ['status' => 'success', 'result' => $canShare];
|
2611 |
+
return ['status' => 'success', 'result' => 'not-allowed'];
|
2612 |
+
|
2613 |
+
} else {
|
2614 |
+
|
2615 |
+
return ['status' => 'fail'];
|
2616 |
+
|
2617 |
+
}
|
2618 |
+
|
2619 |
+
}
|
2620 |
+
|
2621 |
public function debugging() {
|
2622 |
}
|
2623 |
}
|
includes/backup-cli.php
CHANGED
@@ -87,12 +87,12 @@
|
|
87 |
} catch (\Exception $e) {
|
88 |
|
89 |
error_log('There was an error with Backup Migration plugin: ' . $e->getMessage());
|
90 |
-
error_log($e);
|
91 |
|
92 |
} catch (\Throwable $e) {
|
93 |
|
94 |
error_log('There was an error with Backup Migration plugin: ' . $e->getMessage());
|
95 |
-
error_log($e);
|
96 |
|
97 |
}
|
98 |
|
87 |
} catch (\Exception $e) {
|
88 |
|
89 |
error_log('There was an error with Backup Migration plugin: ' . $e->getMessage());
|
90 |
+
error_log(strval($e));
|
91 |
|
92 |
} catch (\Throwable $e) {
|
93 |
|
94 |
error_log('There was an error with Backup Migration plugin: ' . $e->getMessage());
|
95 |
+
error_log(strval($e));
|
96 |
|
97 |
}
|
98 |
|
includes/backup-heart.php
CHANGED
@@ -53,6 +53,7 @@
|
|
53 |
define('BMI_CONFIG_DIR', $fields['content-configdir']);
|
54 |
define('BMI_BACKUPS', $fields['content-backups']);
|
55 |
define('BMI_ROOT_DIR', $fields['content-dir']);
|
|
|
56 |
define('BMI_INCLUDES', BMI_ROOT_DIR . 'includes');
|
57 |
define('BMI_SAFELIMIT', intval($fields['content-safelimit']));
|
58 |
|
@@ -117,6 +118,7 @@
|
|
117 |
'filessofar' => $fields['content-filessofar'],
|
118 |
'total_files' => $fields['content-total'],
|
119 |
'browser' => $fields['content-browser']
|
|
|
120 |
],
|
121 |
$fields['content-it']
|
122 |
);
|
@@ -127,12 +129,12 @@
|
|
127 |
} catch (\Exception $e) {
|
128 |
|
129 |
error_log('There was an error with Backup Migration plugin: ' . $e->getMessage());
|
130 |
-
error_log($e);
|
131 |
|
132 |
} catch (\Throwable $e) {
|
133 |
|
134 |
error_log('There was an error with Backup Migration plugin: ' . $e->getMessage());
|
135 |
-
error_log($e);
|
136 |
|
137 |
}
|
138 |
|
53 |
define('BMI_CONFIG_DIR', $fields['content-configdir']);
|
54 |
define('BMI_BACKUPS', $fields['content-backups']);
|
55 |
define('BMI_ROOT_DIR', $fields['content-dir']);
|
56 |
+
// define('BMI_SHARE_LOGS_ALLOWED', $fields['content-shareallowed']);
|
57 |
define('BMI_INCLUDES', BMI_ROOT_DIR . 'includes');
|
58 |
define('BMI_SAFELIMIT', intval($fields['content-safelimit']));
|
59 |
|
118 |
'filessofar' => $fields['content-filessofar'],
|
119 |
'total_files' => $fields['content-total'],
|
120 |
'browser' => $fields['content-browser']
|
121 |
+
// 'shareallowed' => $fields['content-shareallowed']
|
122 |
],
|
123 |
$fields['content-it']
|
124 |
);
|
129 |
} catch (\Exception $e) {
|
130 |
|
131 |
error_log('There was an error with Backup Migration plugin: ' . $e->getMessage());
|
132 |
+
error_log(strval($e));
|
133 |
|
134 |
} catch (\Throwable $e) {
|
135 |
|
136 |
error_log('There was an error with Backup Migration plugin: ' . $e->getMessage());
|
137 |
+
error_log(strval($e));
|
138 |
|
139 |
}
|
140 |
|
includes/bypasser.php
CHANGED
@@ -6,6 +6,7 @@
|
|
6 |
// Usage
|
7 |
use BMI\Plugin\BMI_Logger AS Logger;
|
8 |
use BMI\Plugin\Progress\BMI_ZipProgress AS Output;
|
|
|
9 |
|
10 |
// Exit on direct access
|
11 |
if (!(defined('BMI_CURL_REQUEST') || defined('ABSPATH'))) exit;
|
@@ -41,6 +42,12 @@
|
|
41 |
$this->identyfile = BMI_INCLUDES . '/htaccess' . '/.' . $this->identy;
|
42 |
$this->browserSide = ($remote_settings['browser'] === true || $remote_settings['browser'] === 'true') ? true : false;
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
$this->identyFolder = BMI_INCLUDES . '/htaccess/bg-' . $this->identy;
|
45 |
$this->fileList = BMI_INCLUDES . '/htaccess/files_latest.list';
|
46 |
$this->dbfile = BMI_INCLUDES . '/htaccess/bmi_database_backup.sql';
|
@@ -86,6 +93,7 @@
|
|
86 |
'Content-Start:' . $this->backupstart,
|
87 |
'Content-Filessofar:' . $this->filessofar,
|
88 |
'Content-Total:' . $this->total_files,
|
|
|
89 |
'Content-Rev:' . $this->rev,
|
90 |
'Content-It:' . $this->it,
|
91 |
'Content-Browser:' . $this->browserSide ? 'true' : 'false'
|
@@ -175,6 +183,7 @@
|
|
175 |
if (file_exists($clidata)) @unlink($clidata);
|
176 |
if (file_exists($identyfile)) @unlink($identyfile);
|
177 |
if (file_exists($identyfile . '-running')) @unlink($identyfile . '-running');
|
|
|
178 |
|
179 |
// Remove backup
|
180 |
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
@@ -231,6 +240,8 @@
|
|
231 |
// End logger
|
232 |
if (isset($this->output)) @$this->output->end();
|
233 |
|
|
|
|
|
234 |
// End the process
|
235 |
exit;
|
236 |
|
@@ -267,6 +278,8 @@
|
|
267 |
if ($abort === false) $this->output->log('#002', 'END-CODE');
|
268 |
else $this->output->log('#003', 'END-CODE');
|
269 |
if (isset($this->output)) @$this->output->end();
|
|
|
|
|
270 |
exit;
|
271 |
|
272 |
}
|
@@ -817,4 +830,116 @@
|
|
817 |
|
818 |
}
|
819 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
820 |
}
|
6 |
// Usage
|
7 |
use BMI\Plugin\BMI_Logger AS Logger;
|
8 |
use BMI\Plugin\Progress\BMI_ZipProgress AS Output;
|
9 |
+
use BMI\Plugin\Checker\System_Info as SI;
|
10 |
|
11 |
// Exit on direct access
|
12 |
if (!(defined('BMI_CURL_REQUEST') || defined('ABSPATH'))) exit;
|
42 |
$this->identyfile = BMI_INCLUDES . '/htaccess' . '/.' . $this->identy;
|
43 |
$this->browserSide = ($remote_settings['browser'] === true || $remote_settings['browser'] === 'true') ? true : false;
|
44 |
|
45 |
+
// if (isset($remote_settings['shareallowed'])) {
|
46 |
+
// $this->shareallowed = $remote_settings['shareallowed'];
|
47 |
+
// } else {
|
48 |
+
// $this->shareallowed = 'ask';
|
49 |
+
// }
|
50 |
+
|
51 |
$this->identyFolder = BMI_INCLUDES . '/htaccess/bg-' . $this->identy;
|
52 |
$this->fileList = BMI_INCLUDES . '/htaccess/files_latest.list';
|
53 |
$this->dbfile = BMI_INCLUDES . '/htaccess/bmi_database_backup.sql';
|
93 |
'Content-Start:' . $this->backupstart,
|
94 |
'Content-Filessofar:' . $this->filessofar,
|
95 |
'Content-Total:' . $this->total_files,
|
96 |
+
// 'Content-Shareallowed:' . $this->shareallowed,
|
97 |
'Content-Rev:' . $this->rev,
|
98 |
'Content-It:' . $this->it,
|
99 |
'Content-Browser:' . $this->browserSide ? 'true' : 'false'
|
183 |
if (file_exists($clidata)) @unlink($clidata);
|
184 |
if (file_exists($identyfile)) @unlink($identyfile);
|
185 |
if (file_exists($identyfile . '-running')) @unlink($identyfile . '-running');
|
186 |
+
if (file_exists($this->lock_cli)) @unlink($this->lock_cli);
|
187 |
|
188 |
// Remove backup
|
189 |
if (file_exists(BMI_BACKUPS . '/.running')) @unlink(BMI_BACKUPS . '/.running');
|
240 |
// End logger
|
241 |
if (isset($this->output)) @$this->output->end();
|
242 |
|
243 |
+
$this->actionsAfterProcess(true);
|
244 |
+
|
245 |
// End the process
|
246 |
exit;
|
247 |
|
278 |
if ($abort === false) $this->output->log('#002', 'END-CODE');
|
279 |
else $this->output->log('#003', 'END-CODE');
|
280 |
if (isset($this->output)) @$this->output->end();
|
281 |
+
|
282 |
+
$this->actionsAfterProcess();
|
283 |
exit;
|
284 |
|
285 |
}
|
830 |
|
831 |
}
|
832 |
|
833 |
+
public function sendTroubleshootingDetails($send_type = 'manual', $blocking = true) {
|
834 |
+
|
835 |
+
define('WP_USE_THEMES', false);
|
836 |
+
|
837 |
+
// Use WP Globals and load WordPress
|
838 |
+
global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header;
|
839 |
+
require_once $this->bmi_find_wordpress_base_path() . DIRECTORY_SEPARATOR . 'wp-load.php';
|
840 |
+
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'check' . DIRECTORY_SEPARATOR . 'system_info.php';
|
841 |
+
|
842 |
+
$bmiSiteData = new SI();
|
843 |
+
$bmiSiteData = $bmiSiteData->to_array();
|
844 |
+
|
845 |
+
$latestBackupLogs = 'does_not_exist';
|
846 |
+
$latestBackupProgress = 'does_not_exist';
|
847 |
+
$latestRestorationLogs = 'does_not_exist';
|
848 |
+
$latestRestorationProgress = 'does_not_exist';
|
849 |
+
$currentPluginConfig = 'does_not_exist';
|
850 |
+
$pluginGlobalLogs = 'does_not_exist';
|
851 |
+
$backgroundErrors = 'does_not_exist';
|
852 |
+
|
853 |
+
if (file_exists(BMI_BACKUPS . '/latest.log')) {
|
854 |
+
$latestBackupLogs = file_get_contents(BMI_BACKUPS . '/latest.log');
|
855 |
+
}
|
856 |
+
|
857 |
+
if (file_exists(BMI_BACKUPS . '/latest_progress.log')) {
|
858 |
+
$latestBackupProgress = file_get_contents(BMI_BACKUPS . '/latest_progress.log');
|
859 |
+
}
|
860 |
+
|
861 |
+
if (file_exists(BMI_BACKUPS . '/latest_migration.log')) {
|
862 |
+
$latestRestorationLogs = file_get_contents(BMI_BACKUPS . '/latest_migration.log');
|
863 |
+
}
|
864 |
+
|
865 |
+
if (file_exists(BMI_BACKUPS . '/latest_migration_progress.log')) {
|
866 |
+
$latestRestorationProgress = file_get_contents(BMI_BACKUPS . '/latest_migration_progress.log');
|
867 |
+
}
|
868 |
+
|
869 |
+
if (file_exists(BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . '/config.json')) {
|
870 |
+
$currentPluginConfig = file_get_contents(BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . '/config.json');
|
871 |
+
}
|
872 |
+
|
873 |
+
if (file_exists(BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . 'complete_logs.log')) {
|
874 |
+
$pluginGlobalLogs = file_get_contents(BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . 'complete_logs.log');
|
875 |
+
}
|
876 |
+
|
877 |
+
$backgroundLogsPath = BMI_CONFIG_DIR . DIRECTORY_SEPARATOR . 'background-errors.log';
|
878 |
+
if (file_exists($backgroundLogsPath)) {
|
879 |
+
if ((filesize($backgroundLogsPath) / 1024 / 1024) <= 4) {
|
880 |
+
$backgroundErrors = file_get_contents($backgroundLogsPath);
|
881 |
+
} else $backgroundErrors = 'file_too_large';
|
882 |
+
}
|
883 |
+
|
884 |
+
$url = 'https://' . BMI_API_BACKUPBLISS_PUSH . '/v1' . '/push';
|
885 |
+
$response = wp_remote_post($url, array(
|
886 |
+
'method' => 'POST',
|
887 |
+
'timeout' => 15,
|
888 |
+
'blocking' => $blocking,
|
889 |
+
'sslverify' => false,
|
890 |
+
'send_type' => $send_type,
|
891 |
+
'body' => array(
|
892 |
+
'admin_url' => admin_url(),
|
893 |
+
'home_url' => home_url(),
|
894 |
+
'site_url' => get_site_url(),
|
895 |
+
'is_multisite' => is_multisite() ? "yes" : "no",
|
896 |
+
'is_abspath_writable' => is_writable(ABSPATH) ? "yes" : "no",
|
897 |
+
'site_information' => $bmiSiteData,
|
898 |
+
'latest_backup_logs' => $latestBackupLogs,
|
899 |
+
'latest_backup_progress' => $latestBackupProgress,
|
900 |
+
'latest_restoration_logs' => $latestRestorationLogs,
|
901 |
+
'latest_restoration_progress' => $latestRestorationProgress,
|
902 |
+
'current_plugin_config' => $currentPluginConfig,
|
903 |
+
'plugin_global_logs' => $pluginGlobalLogs,
|
904 |
+
'background_errors' => $backgroundErrors,
|
905 |
+
'triggered_by' => 'backup',
|
906 |
+
'is_cli' => BMI_CLI_REQUEST
|
907 |
+
)
|
908 |
+
));
|
909 |
+
|
910 |
+
}
|
911 |
+
|
912 |
+
public function actionsAfterProcess($success = false) {
|
913 |
+
|
914 |
+
return null;
|
915 |
+
|
916 |
+
// REMOVED CODE:
|
917 |
+
// $canShare = $this->shareallowed;
|
918 |
+
// if ($canShare === 'allowed') {
|
919 |
+
//
|
920 |
+
// $send_type = 'error';
|
921 |
+
// if ($success) $send_type = 'success';
|
922 |
+
// $this->sendTroubleshootingDetails($send_type, false);
|
923 |
+
//
|
924 |
+
// }
|
925 |
+
|
926 |
+
}
|
927 |
+
|
928 |
+
public function bmi_find_wordpress_base_path() {
|
929 |
+
|
930 |
+
$dir = dirname(__FILE__);
|
931 |
+
$previous = null;
|
932 |
+
|
933 |
+
do {
|
934 |
+
|
935 |
+
if (file_exists($dir . '/wp-config.php')) return $dir;
|
936 |
+
if ($previous == $dir) break;
|
937 |
+
$previous = $dir;
|
938 |
+
|
939 |
+
} while ($dir = dirname($dir));
|
940 |
+
|
941 |
+
return null;
|
942 |
+
|
943 |
+
}
|
944 |
+
|
945 |
}
|
includes/check/system_info.php
CHANGED
@@ -492,6 +492,7 @@ class System_Info {
|
|
492 |
'curl_ssl_enabled' => isset($curl_version['features']) ? (bool) ($curl_version['features'] & 4) : false,
|
493 |
'php_open_ssl_version_text' => isset($curl_version['ssl_version']) ? $curl_version['ssl_version'] : null,
|
494 |
'php_open_ssl_version_number' => isset($curl_version['ssl_version_number']) ? $curl_version['ssl_version_number'] : null,
|
|
|
495 |
];
|
496 |
}
|
497 |
}
|
492 |
'curl_ssl_enabled' => isset($curl_version['features']) ? (bool) ($curl_version['features'] & 4) : false,
|
493 |
'php_open_ssl_version_text' => isset($curl_version['ssl_version']) ? $curl_version['ssl_version'] : null,
|
494 |
'php_open_ssl_version_number' => isset($curl_version['ssl_version_number']) ? $curl_version['ssl_version_number'] : null,
|
495 |
+
'plugin_compile_method' => defined('BMI_REV') ? BMI_REV : 'unknown'
|
496 |
];
|
497 |
}
|
498 |
}
|
includes/constants.php
CHANGED
@@ -12,6 +12,9 @@
|
|
12 |
if (!defined('BMI_AUTHOR_URI')) {
|
13 |
define('BMI_AUTHOR_URI', 'https://backupbliss.com/');
|
14 |
}
|
|
|
|
|
|
|
15 |
if (!defined('BMI_BACKUPS_DEFAULT')) {
|
16 |
define('BMI_BACKUPS_DEFAULT', WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'backup-migration');
|
17 |
}
|
12 |
if (!defined('BMI_AUTHOR_URI')) {
|
13 |
define('BMI_AUTHOR_URI', 'https://backupbliss.com/');
|
14 |
}
|
15 |
+
if (!defined('BMI_API_BACKUPBLISS_PUSH')) {
|
16 |
+
define('BMI_API_BACKUPBLISS_PUSH', 'api.backupbliss.com');
|
17 |
+
}
|
18 |
if (!defined('BMI_BACKUPS_DEFAULT')) {
|
19 |
define('BMI_BACKUPS_DEFAULT', WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'backup-migration');
|
20 |
}
|
includes/dashboard/chapter/AA-Template.php
CHANGED
File without changes
|
includes/dashboard/chapter/other_config.php
CHANGED
File without changes
|
includes/dashboard/chapter/store_config.php
CHANGED
File without changes
|
includes/dashboard/chapter/troubleshooting.php
CHANGED
@@ -14,6 +14,13 @@
|
|
14 |
// Tooltips
|
15 |
$ctl = __("Your account on Wordpress.org (where you open a new support thread) is different to the one you login to your WordPress dashboard (where you are now). If you don’t have a WordPress.org account yet, please sign up at the top right on the Support Forum page, and then scroll down on that page . It only takes a minute :) Thank you!", 'backup-backup');
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
?>
|
18 |
|
19 |
<div class="mm mt mb f20 lh40">
|
@@ -93,11 +100,35 @@
|
|
93 |
<div class="f26 semibold mb">
|
94 |
<?php _e("Troubleshooting settings", 'backup-backup'); ?>
|
95 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
<div class="f20 semibold">
|
97 |
-
<?php _e("Site information", 'backup-backup'); ?>
|
98 |
</div>
|
99 |
<div class="f16 mtll mbll">
|
100 |
-
<?php _e("Here is some information about your site, which may help to debug if there is an issue:", 'backup-backup'); ?>
|
101 |
</div>
|
102 |
</div>
|
103 |
|
14 |
// Tooltips
|
15 |
$ctl = __("Your account on Wordpress.org (where you open a new support thread) is different to the one you login to your WordPress dashboard (where you are now). If you don’t have a WordPress.org account yet, please sign up at the top right on the Support Forum page, and then scroll down on that page . It only takes a minute :) Thank you!", 'backup-backup');
|
16 |
|
17 |
+
$bmiTroubleshootingLogShareInfo = __("You'll share: Website URL, %s1backup logs%s2, %s3restore logs%s2, our plugin logs & configuration, basic data about your site.", 'backup-backup');
|
18 |
+
$bmiTroubleshootingLogShareInfo2 = __("No confidential data such as email gets shared.", 'backup-backup');
|
19 |
+
|
20 |
+
$bmiTroubleshootingLogShareInfo = str_replace('%s1', '<a href="#" class="download-backup-log-url hoverable secondary" download="backup_logs.txt">', $bmiTroubleshootingLogShareInfo);
|
21 |
+
$bmiTroubleshootingLogShareInfo = str_replace('%s3', '<a href="#" class="download-restore-log-url hoverable secondary" download="restore_logs.txt">', $bmiTroubleshootingLogShareInfo);
|
22 |
+
$bmiTroubleshootingLogShareInfo = str_replace('%s2', '</a>', $bmiTroubleshootingLogShareInfo);
|
23 |
+
|
24 |
?>
|
25 |
|
26 |
<div class="mm mt mb f20 lh40">
|
100 |
<div class="f26 semibold mb">
|
101 |
<?php _e("Troubleshooting settings", 'backup-backup'); ?>
|
102 |
</div>
|
103 |
+
</div>
|
104 |
+
|
105 |
+
<div class="mm bmi-troubleshooting-btn-mm">
|
106 |
+
|
107 |
+
<div class="f20 semibold">
|
108 |
+
<?php _e("Send troubleshooting data", 'backup-backup'); ?>
|
109 |
+
</div>
|
110 |
+
|
111 |
+
<div class="f16 mtll mbll bmi-troubleshooting-btn-section">
|
112 |
+
<div class="bmi-troubleshooting-btn-text">
|
113 |
+
<?php _e("Send us debug information of your latest failed backup or restore, so that we can investigate.", 'backup-backup'); ?>
|
114 |
+
</div>
|
115 |
+
<div class="bmi-inline">
|
116 |
+
<a href="#" class="btn bmi-send-troubleshooting-logs bmi-troubleshooting-btn mm30"><?php _e("Share debug infos with BackupBliss team", 'backup-backup'); ?></a>
|
117 |
+
</div>
|
118 |
+
<div class="bmi-troubleshooting-info-logs">
|
119 |
+
<?php echo $bmiTroubleshootingLogShareInfo; ?><br>
|
120 |
+
<?php echo $bmiTroubleshootingLogShareInfo2; ?>
|
121 |
+
</div>
|
122 |
+
</div>
|
123 |
+
|
124 |
+
</div>
|
125 |
+
|
126 |
+
<div class="mm">
|
127 |
<div class="f20 semibold">
|
128 |
+
<?php _e("Site information", 'backup-backup'); ?>
|
129 |
</div>
|
130 |
<div class="f16 mtll mbll">
|
131 |
+
<?php _e("Here is some information about your site, which may help to debug if there is an issue:", 'backup-backup'); ?>
|
132 |
</div>
|
133 |
</div>
|
134 |
|
includes/dashboard/chapter/what_backed_up.php
CHANGED
File without changes
|
includes/dashboard/chapter/where_config.php
CHANGED
File without changes
|
includes/dashboard/modals/AA-Modal-Template.php
CHANGED
File without changes
|
includes/dashboard/modals/after-logs-sent.php
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Namespace
|
4 |
+
namespace BMI\Plugin\Dashboard;
|
5 |
+
|
6 |
+
// Exit on direct access
|
7 |
+
if (!defined('ABSPATH')) {
|
8 |
+
exit;
|
9 |
+
}
|
10 |
+
|
11 |
+
$bmiSupportForumUrl = "https://wordpress.org/support/plugin/backup-backup/";
|
12 |
+
$bmiSupportEmail = "support" . "@" . "backupbliss" . "." . "com";
|
13 |
+
$bmiSupportMessage = __('Now open a new thread in the %s1support forum%s2, and share there your debug code.');
|
14 |
+
$bmiSupportMessage = str_replace('%s1', '<a href="' . $bmiSupportForumUrl . '" class="secondary hoverable" target="_blank">', $bmiSupportMessage);
|
15 |
+
$bmiSupportMessage = str_replace('%s2', '</a>', $bmiSupportMessage);
|
16 |
+
|
17 |
+
$bmiSupportMessage2 = __('Please email us the code to %s1, so that we can start investigating. Thank you!', 'backup-backup');
|
18 |
+
$bmiSupportMessage2 = str_replace('%s1', '<a href="mailto:' . $bmiSupportEmail . '" class="secondary hoverable" target="_blank">' . $bmiSupportEmail . '</a>', $bmiSupportMessage2);
|
19 |
+
|
20 |
+
?>
|
21 |
+
|
22 |
+
<div class="modal modal-no-close" id="after-logs-sent-modal" data-error-source="manual">
|
23 |
+
|
24 |
+
<div class="modal-wrapper no-hpad no-vpad" style="max-width: 900px; max-width: min(900px, 80vw)">
|
25 |
+
<a href="#" class="modal-close">×</a>
|
26 |
+
<div class="modal-content">
|
27 |
+
|
28 |
+
<div class="mm60 f26 bold black center mbl mt lh28">
|
29 |
+
<?php _e('We received the debug infos!'); ?><br>
|
30 |
+
</div>
|
31 |
+
|
32 |
+
<div class="mm60 mbll f18 medium">
|
33 |
+
<?php _e('Your debug code:'); ?>
|
34 |
+
</div>
|
35 |
+
|
36 |
+
<div class="mm60 mbl">
|
37 |
+
<div class="bmi-support-code-section relative">
|
38 |
+
<span id="bmi-support-code-generated">BMI_PLACEHOLDER</span>
|
39 |
+
<div class="mm60 right-align" style="position: absolute; top: 5px; right: -50px;">
|
40 |
+
<a href="#" class="btn inline btn-with-img btn-img-low-pad btn-pad bmi-copper" data-copy="bmi-support-code-generated">
|
41 |
+
<div class="text">
|
42 |
+
<img src="<?php echo $this->get_asset('images', 'copy-icon.png'); ?>" alt="copy-img">
|
43 |
+
<div class="f18 semibold"><?php _e('Copy', 'backup-backup') ?></div>
|
44 |
+
</div>
|
45 |
+
</a>
|
46 |
+
</div>
|
47 |
+
</div>
|
48 |
+
</div>
|
49 |
+
|
50 |
+
<?php if (!defined('BMI_BACKUP_PRO')): ?>
|
51 |
+
<div class="mm60 f18 mbl">
|
52 |
+
<?php echo $bmiSupportMessage; ?>
|
53 |
+
|
54 |
+
<div class="center mbll mtl">
|
55 |
+
<a class="btn inline semibold mm60 f16" href="https://wordpress.org/support/plugin/backup-backup/" target="_blank">
|
56 |
+
<?php _e('Go to Support Forum', 'backup-backup') ?>
|
57 |
+
</a>
|
58 |
+
</div>
|
59 |
+
<div class="center f16 tooltip-html info-cursor" tooltip="<?php _e("Your account on Wordpress.org (where you open a new support thread) is different to the one you login to your WordPress dashboard (where you are now). If you don't have a WordPress.org account yet, please sign up at the top right on here. It only takes a minute :) Thank you!", 'backup-backup') ?>">
|
60 |
+
<?php _e('Trouble logging in there?', 'backup-backup') ?>
|
61 |
+
</div>
|
62 |
+
</div>
|
63 |
+
<?php else: ?>
|
64 |
+
<div class="mm60 mb f18 lh28">
|
65 |
+
<?php echo $bmiSupportMessage2; ?>
|
66 |
+
</div>
|
67 |
+
<?php endif; ?>
|
68 |
+
|
69 |
+
<div class="mm60 f18 center mb">
|
70 |
+
<a href="#" class="modal-closer text-muted" data-close="after-logs-sent-modal"><?php _e('Close window', 'backup-backup') ?></a>
|
71 |
+
</div>
|
72 |
+
|
73 |
+
</div>
|
74 |
+
</div>
|
75 |
+
|
76 |
+
</div>
|
includes/dashboard/modals/backup-error-modal.php
CHANGED
@@ -6,6 +6,18 @@
|
|
6 |
// Exit on direct access
|
7 |
if (!defined('ABSPATH')) exit;
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
?>
|
10 |
|
11 |
<div class="modal" id="backup-error-modal">
|
@@ -19,46 +31,27 @@
|
|
19 |
<img src="<?php echo $this->get_asset('images', 'x-face.png'); ?>" alt="red-cross" width="110px">
|
20 |
</div>
|
21 |
|
22 |
-
<div class="mm60
|
23 |
-
<?php
|
|
|
|
|
|
|
|
|
24 |
</div>
|
25 |
|
26 |
-
<div class="mm60
|
27 |
-
<
|
28 |
-
|
29 |
-
</
|
30 |
-
|
31 |
-
<div class="mm60 right-align" style="position: absolute; top: 15px; right: 30px;">
|
32 |
-
<a href="#" class="btn inline btn-with-img btn-img-low-pad btn-pad bmi-copper" data-copy="backup-error-pre">
|
33 |
-
<div class="text">
|
34 |
-
<img src="<?php echo $this->get_asset('images', 'copy-icon.png'); ?>" alt="copy-img">
|
35 |
-
<div class="f18 semibold"><?php _e('Copy', 'backup-backup') ?></div>
|
36 |
-
</div>
|
37 |
-
</a>
|
38 |
-
</div>
|
39 |
</div>
|
40 |
|
41 |
-
<div class="mm60
|
42 |
-
<?php
|
43 |
-
|
44 |
-
?>
|
45 |
</div>
|
46 |
|
47 |
-
<div class="mm60
|
48 |
-
<
|
49 |
-
<a href="<?php echo get_site_url(); ?>/?backup-migration=PROGRESS_LOGS&progress-id=latest.log&backup-id=current&t=<?php echo time(); ?>"
|
50 |
-
class="hoverable nodec secondary" download="backup_error_log.txt">
|
51 |
-
<?php _e('Download logs', 'backup-backup') ?>
|
52 |
-
</a>
|
53 |
-
</div>
|
54 |
-
<div class="flex2">
|
55 |
-
<a class="btn inline semibold mm60 f16" href="https://wordpress.org/support/plugin/backup-backup/" target="_blank">
|
56 |
-
<?php _e('Go to Support Forum', 'backup-backup') ?>
|
57 |
-
</a>
|
58 |
-
</div>
|
59 |
-
<div class="flex1 f16 tooltip-html info-cursor" tooltip="<?php _e("Your account on Wordpress.org (where you open a new support thread) is different to the one you login to your WordPress dashboard (where you are now). If you don't have a WordPress.org account yet, please sign up at the top right on here. It only takes a minute :) Thank you!", 'backup-backup') ?>">
|
60 |
-
<?php _e('Cannot login there?', 'backup-backup') ?>
|
61 |
-
</div>
|
62 |
</div>
|
63 |
|
64 |
</div>
|
6 |
// Exit on direct access
|
7 |
if (!defined('ABSPATH')) exit;
|
8 |
|
9 |
+
$backupErrorInstruction = __('Please click on the button below to enable us to investigate.', 'backup-backup');
|
10 |
+
|
11 |
+
$messageBackupError1 = __("That's unusual! But no worries – we're happy to look into it, and fix it for you (%s1for free!%s2)", 'backup-backup');
|
12 |
+
$messageBackupError1 = str_replace('%s1', '<b>', $messageBackupError1);
|
13 |
+
$messageBackupError1 = str_replace('%s2', '</b>', $messageBackupError1);
|
14 |
+
|
15 |
+
$bmiTroubleshootingLogShareInfo = __("You'll share: Website URL, %s1backup logs%s2, our plugin logs & configuration, basic data about your site.", 'backup-backup');
|
16 |
+
$bmiTroubleshootingLogShareInfo2 = __("No confidential data such as email gets shared.", 'backup-backup');
|
17 |
+
|
18 |
+
$bmiTroubleshootingLogShareInfo = str_replace('%s1', '<a href="#" class="download-backup-log-url hoverable secondary" download="backup_logs.txt">', $bmiTroubleshootingLogShareInfo);
|
19 |
+
$bmiTroubleshootingLogShareInfo = str_replace('%s2', '</a>', $bmiTroubleshootingLogShareInfo);
|
20 |
+
|
21 |
?>
|
22 |
|
23 |
<div class="modal" id="backup-error-modal">
|
31 |
<img src="<?php echo $this->get_asset('images', 'x-face.png'); ?>" alt="red-cross" width="110px">
|
32 |
</div>
|
33 |
|
34 |
+
<div class="mm60 f22 lh28">
|
35 |
+
<?php echo $messageBackupError1; ?>
|
36 |
+
</div>
|
37 |
+
|
38 |
+
<div class="mm60 f22 mbl mtl lh28">
|
39 |
+
<?php echo $backupErrorInstruction; ?>
|
40 |
</div>
|
41 |
|
42 |
+
<div class="mm60">
|
43 |
+
<a class="btn inline semibold mm60 f16 bmi-send-troubleshooting-logs" href="#!" target="_blank">
|
44 |
+
<?php _e('Share debug infos with BackupBliss team', 'backup-backup') ?>
|
45 |
+
</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
</div>
|
47 |
|
48 |
+
<div class="mm60 f16 lh28 mtl">
|
49 |
+
<?php echo $bmiTroubleshootingLogShareInfo; ?><br>
|
50 |
+
<?php echo $bmiTroubleshootingLogShareInfo2; ?>
|
|
|
51 |
</div>
|
52 |
|
53 |
+
<div class="mm60 f18 center mb mtl">
|
54 |
+
<a href="#" class="modal-closer text-muted" data-close="backup-error-modal"><?php _e('Close window', 'backup-backup') ?></a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
</div>
|
56 |
|
57 |
</div>
|
includes/dashboard/modals/backup-progress-modal.php
CHANGED
File without changes
|
includes/dashboard/modals/backup-success-modal.php
CHANGED
@@ -96,7 +96,7 @@
|
|
96 |
</div>
|
97 |
|
98 |
<div class="f18 inline align-right">
|
99 |
-
<a href="#" class="nlink hoverable
|
100 |
<?php _e('Download logs', 'backup-backup') ?>
|
101 |
</a>
|
102 |
</div>
|
96 |
</div>
|
97 |
|
98 |
<div class="f18 inline align-right">
|
99 |
+
<a href="#" class="nlink hoverable download-backup-log-url" download="backup_logs.txt">
|
100 |
<?php _e('Download logs', 'backup-backup') ?>
|
101 |
</a>
|
102 |
</div>
|
includes/dashboard/modals/freeze-loading.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Namespace
|
4 |
+
namespace BMI\Plugin\Dashboard;
|
5 |
+
|
6 |
+
// Exit on direct access
|
7 |
+
if (!defined('ABSPATH')) {
|
8 |
+
exit;
|
9 |
+
}
|
10 |
+
|
11 |
+
?>
|
12 |
+
|
13 |
+
<div class="modal modal-no-close modal-off-fixed modal-no-background-center" id="freeze-loading-modal">
|
14 |
+
|
15 |
+
<div class="modal-centered-items">
|
16 |
+
<div class="modal-wrapper no-hpad no-vpad" style="max-width: 900px; max-width: min(900px, 80vw)">
|
17 |
+
<div class="modal-content">
|
18 |
+
|
19 |
+
<div class="modal-freeze-loader"></div><br>
|
20 |
+
<b class="f24"><?php _e('Loading...', 'backup-backup'); ?></b>
|
21 |
+
|
22 |
+
</div>
|
23 |
+
</div>
|
24 |
+
</div>
|
25 |
+
|
26 |
+
</div>
|
includes/dashboard/modals/logs-sharing-ask.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Namespace
|
4 |
+
namespace BMI\Plugin\Dashboard;
|
5 |
+
|
6 |
+
// Exit on direct access
|
7 |
+
if (!defined('ABSPATH')) {
|
8 |
+
exit;
|
9 |
+
}
|
10 |
+
|
11 |
+
?>
|
12 |
+
|
13 |
+
<div class="modal" id="logs-sharing-ask-modal">
|
14 |
+
|
15 |
+
<div class="modal-wrapper no-hpad" style="max-width: 660px; max-width: min(660px, 80vw);">
|
16 |
+
<a href="#" class="modal-close">×</a>
|
17 |
+
<div class="modal-content">
|
18 |
+
|
19 |
+
<div class="mm60 f26 medium black"><?php _e('Do you agree to share logs?', 'backup-backup') ?></div>
|
20 |
+
<div class="prenotices">
|
21 |
+
|
22 |
+
<div class="prenotice prenotic-1">
|
23 |
+
<div class="text">
|
24 |
+
<ul class="bmi-list-bullet">
|
25 |
+
<li><?php _e('You will directly support development of the plugin.', 'backup-backup') ?></li>
|
26 |
+
<li><?php _e('Shared logs and info will be securely stored at our servers.', 'backup-backup') ?></li>
|
27 |
+
<li><?php _e('In case of error, we can provide you much better and quicker support.', 'backup-backup') ?></li>
|
28 |
+
<li><?php _e('Shared logs can be viewed only by our support team and plugin developers.', 'backup-backup') ?></li>
|
29 |
+
</ul>
|
30 |
+
</div>
|
31 |
+
</div>
|
32 |
+
|
33 |
+
</div>
|
34 |
+
<div class="mm60 center">
|
35 |
+
<div class="cf bmi-ask-logs-btns">
|
36 |
+
<div class="left bmi-btn-logs-cont">
|
37 |
+
<a href="#" class="btn" id="share-logs-allowed">
|
38 |
+
<div class="text text-center">
|
39 |
+
<div class="f18 regular"><?php _e('Yes, I want to help! :)', 'backup-backup') ?></div>
|
40 |
+
</div>
|
41 |
+
</a>
|
42 |
+
</div>
|
43 |
+
<div class="right bmi-btn-logs-cont">
|
44 |
+
<a href="#" class="btn" id="share-logs-not-allowed">
|
45 |
+
<div class="text text-center">
|
46 |
+
<div class="f18 regular"><?php _e('No!', 'backup-backup') ?></div>
|
47 |
+
</div>
|
48 |
+
</a>
|
49 |
+
</div>
|
50 |
+
</div>
|
51 |
+
<div class="text-grey text-muted mtl f18 inline modal-underline-link" id="ignore-share-log-request-for-now">
|
52 |
+
<?php _e('Ask me later, run the backup for now', 'backup-backup') ?>
|
53 |
+
</div>
|
54 |
+
</div>
|
55 |
+
|
56 |
+
</div>
|
57 |
+
</div>
|
58 |
+
|
59 |
+
</div>
|
includes/dashboard/modals/prenotice-modal.php
CHANGED
File without changes
|
includes/dashboard/modals/restore-error-modal.php
CHANGED
@@ -6,6 +6,18 @@
|
|
6 |
// Exit on direct access
|
7 |
if (!defined('ABSPATH')) exit;
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
?>
|
10 |
|
11 |
<div class="modal" id="restore-error-modal">
|
@@ -19,46 +31,27 @@
|
|
19 |
<?php _e('Restore failed', 'backup-backup') ?>
|
20 |
</div>
|
21 |
|
22 |
-
<div class="mm60
|
23 |
-
<?php
|
|
|
|
|
|
|
|
|
24 |
</div>
|
25 |
|
26 |
-
<div class="mm60
|
27 |
-
<
|
28 |
-
|
29 |
-
</
|
30 |
-
|
31 |
-
<div class="mm60 right-align" style="position: absolute; top: 15px; right: 30px;">
|
32 |
-
<a href="#" class="btn inline btn-with-img btn-img-low-pad btn-pad bmi-copper" data-copy="restore-error-pre">
|
33 |
-
<div class="text">
|
34 |
-
<img src="<?php echo $this->get_asset('images', 'copy-icon.png'); ?>" alt="copy-img">
|
35 |
-
<div class="f18 semibold"><?php _e('Copy', 'backup-backup') ?></div>
|
36 |
-
</div>
|
37 |
-
</a>
|
38 |
-
</div>
|
39 |
</div>
|
40 |
|
41 |
-
<div class="mm60
|
42 |
-
<?php
|
43 |
-
|
44 |
-
?>
|
45 |
</div>
|
46 |
|
47 |
-
<div class="mm60
|
48 |
-
<
|
49 |
-
<a href="<?php echo get_site_url(); ?>/?backup-migration=PROGRESS_LOGS&progress-id=latest_migration.log&backup-id=current&t=<?php echo time(); ?>"
|
50 |
-
class="hoverable nodec secondary" download="restoration_error_log.txt">
|
51 |
-
<?php _e('Download logs', 'backup-backup') ?>
|
52 |
-
</a>
|
53 |
-
</div>
|
54 |
-
<div class="flex2">
|
55 |
-
<a class="btn inline semibold mm60 f16" href="https://wordpress.org/support/plugin/backup-backup/" target="_blank">
|
56 |
-
<?php _e('Go to Support Forum', 'backup-backup') ?>
|
57 |
-
</a>
|
58 |
-
</div>
|
59 |
-
<div class="flex1 f16 tooltip-html info-cursor" tooltip="<?php _e("Your account on Wordpress.org (where you open a new support thread) is different to the one you login to your WordPress dashboard (where you are now). If you don't have a WordPress.org account yet, please sign up at the top right on here. It only takes a minute :) Thank you!", 'backup-backup') ?>">
|
60 |
-
<?php _e('Cannot login there?', 'backup-backup') ?>
|
61 |
-
</div>
|
62 |
</div>
|
63 |
|
64 |
</div>
|
6 |
// Exit on direct access
|
7 |
if (!defined('ABSPATH')) exit;
|
8 |
|
9 |
+
$restoreErrorInstruction = __('Please click on the button below to enable us to investigate.', 'backup-backup');
|
10 |
+
|
11 |
+
$messageRestoreError1 = __("That's unusual! But no worries – we're happy to look into it, and fix it for you (%s1for free!%s2)", 'backup-backup');
|
12 |
+
$messageRestoreError1 = str_replace('%s1', '<b>', $messageRestoreError1);
|
13 |
+
$messageRestoreError1 = str_replace('%s2', '</b>', $messageRestoreError1);
|
14 |
+
|
15 |
+
$bmiTroubleshootingLogShareInfo = __("You'll share: Website URL, %s1restore logs%s2, our plugin logs & configuration, basic data about your site.", 'backup-backup');
|
16 |
+
$bmiTroubleshootingLogShareInfo2 = __("No confidential data such as email gets shared.", 'backup-backup');
|
17 |
+
|
18 |
+
$bmiTroubleshootingLogShareInfo = str_replace('%s1', '<a href="#" class="download-restore-log-url hoverable secondary" download="restore_logs.txt">', $bmiTroubleshootingLogShareInfo);
|
19 |
+
$bmiTroubleshootingLogShareInfo = str_replace('%s2', '</a>', $bmiTroubleshootingLogShareInfo);
|
20 |
+
|
21 |
?>
|
22 |
|
23 |
<div class="modal" id="restore-error-modal">
|
31 |
<?php _e('Restore failed', 'backup-backup') ?>
|
32 |
</div>
|
33 |
|
34 |
+
<div class="mm60 f22 lh28">
|
35 |
+
<?php echo $messageRestoreError1; ?>
|
36 |
+
</div>
|
37 |
+
|
38 |
+
<div class="mm60 f22 mbl mtl lh28">
|
39 |
+
<?php echo $restoreErrorInstruction; ?>
|
40 |
</div>
|
41 |
|
42 |
+
<div class="mm60">
|
43 |
+
<a class="btn inline semibold mm60 f16 bmi-send-troubleshooting-logs" href="#!" target="_blank">
|
44 |
+
<?php _e('Share debug infos with BackupBliss team', 'backup-backup') ?>
|
45 |
+
</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
</div>
|
47 |
|
48 |
+
<div class="mm60 f16 lh28 mtl">
|
49 |
+
<?php echo $bmiTroubleshootingLogShareInfo; ?><br>
|
50 |
+
<?php echo $bmiTroubleshootingLogShareInfo2; ?>
|
|
|
51 |
</div>
|
52 |
|
53 |
+
<div class="mm60 f18 center mb mtl">
|
54 |
+
<a href="#" class="modal-closer text-muted" data-close="backup-error-modal"><?php _e('Close window', 'backup-backup') ?></a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
</div>
|
56 |
|
57 |
</div>
|
includes/dashboard/modals/restore-success-modal.php
CHANGED
@@ -95,8 +95,7 @@
|
|
95 |
</div>
|
96 |
|
97 |
<div class="center f17 mbl">
|
98 |
-
<a href="
|
99 |
-
download="restoration_logs.txt">
|
100 |
<?php _e("Download the log", 'backup-backup'); ?></a> <?php _e("of the restoration process", 'backup-backup'); ?>
|
101 |
</div>
|
102 |
|
95 |
</div>
|
96 |
|
97 |
<div class="center f17 mbl">
|
98 |
+
<a href="#!" class="download-restore-log-url" download="restoration_logs.txt">
|
|
|
99 |
<?php _e("Download the log", 'backup-backup'); ?></a> <?php _e("of the restoration process", 'backup-backup'); ?>
|
100 |
</div>
|
101 |
|
includes/dashboard/modules/backup_controller.php
CHANGED
File without changes
|
includes/dashboard/modules/backups-table-header.php
CHANGED
File without changes
|
includes/dashboard/modules/backups-under-table.php
CHANGED
File without changes
|
includes/dashboard/modules/super-quick-migration.php
CHANGED
File without changes
|
includes/dashboard/modules/upload-backup.php
CHANGED
File without changes
|
includes/dashboard/settings.php
CHANGED
@@ -14,11 +14,15 @@
|
|
14 |
} else $configu_sets = '';
|
15 |
|
16 |
?>
|
17 |
-
|
|
|
|
|
18 |
<style>
|
19 |
#wpfooter { display: none !important; }
|
20 |
#wpfooter #footer-left { display: none; }
|
21 |
#wpfooter #footer-upgrade { display: none; }
|
|
|
|
|
22 |
</style>
|
23 |
<div id="bmi-preload">
|
24 |
<div class="progress">
|
@@ -208,6 +212,9 @@
|
|
208 |
<?php require_once 'modals/delete-confirm-modal.php'; ?>
|
209 |
<?php require_once 'modals/reset-confirm-modal.php'; ?>
|
210 |
<?php require_once 'modals/bfs-modal.php'; ?>
|
|
|
|
|
|
|
211 |
<?php do_action('bmi_load_premium_modals'); ?>
|
212 |
|
213 |
<!-- Other modules -->
|
14 |
} else $configu_sets = '';
|
15 |
|
16 |
?>
|
17 |
+
<script type="text/javascript">
|
18 |
+
if (document.querySelector('#modal-css')) document.querySelector('#modal-css').remove();
|
19 |
+
</script>
|
20 |
<style>
|
21 |
#wpfooter { display: none !important; }
|
22 |
#wpfooter #footer-left { display: none; }
|
23 |
#wpfooter #footer-upgrade { display: none; }
|
24 |
+
#wp-auth-check-wrap { display: none !important; }
|
25 |
+
.modal { transform: translateY(0%) !important; }
|
26 |
</style>
|
27 |
<div id="bmi-preload">
|
28 |
<div class="progress">
|
212 |
<?php require_once 'modals/delete-confirm-modal.php'; ?>
|
213 |
<?php require_once 'modals/reset-confirm-modal.php'; ?>
|
214 |
<?php require_once 'modals/bfs-modal.php'; ?>
|
215 |
+
<?php require_once 'modals/after-logs-sent.php'; ?>
|
216 |
+
<?php require_once 'modals/freeze-loading.php'; ?>
|
217 |
+
<?php //require_once 'modals/logs-sharing-ask.php'; ?>
|
218 |
<?php do_action('bmi_load_premium_modals'); ?>
|
219 |
|
220 |
<!-- Other modules -->
|
includes/dashboard/templates/AA-Template.php
CHANGED
File without changes
|
includes/dashboard/templates/backup-row-template.php
CHANGED
File without changes
|
includes/dashboard/translations.php
CHANGED
@@ -37,7 +37,7 @@
|
|
37 |
<?php endif; ?>
|
38 |
</div>
|
39 |
<div id="premium-tooltip-pre"><b><u><?php _e('Pro feature:', 'backup-backup'); ?></u></b></div>
|
40 |
-
|
41 |
<div id="bmi-success-copy">
|
42 |
<?php _e('Text copied successfully', 'backup-backup') ?>
|
43 |
</div>
|
@@ -161,6 +161,20 @@
|
|
161 |
<div id="bmi-force-stop-success">
|
162 |
<?php _e("The process should be stopped now.", 'backup-backup') ?>
|
163 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
<div id="BMI_URL_ROOT"><?php echo plugin_dir_url(BMI_ROOT_FILE); ?></div>
|
165 |
<div id="BMI_BLOG_URL"><?php echo get_site_url(); ?></div>
|
166 |
<div id="BMI_REV"><?php echo BMI_REV; ?></div>
|
37 |
<?php endif; ?>
|
38 |
</div>
|
39 |
<div id="premium-tooltip-pre"><b><u><?php _e('Pro feature:', 'backup-backup'); ?></u></b></div>
|
40 |
+
|
41 |
<div id="bmi-success-copy">
|
42 |
<?php _e('Text copied successfully', 'backup-backup') ?>
|
43 |
</div>
|
161 |
<div id="bmi-force-stop-success">
|
162 |
<?php _e("The process should be stopped now.", 'backup-backup') ?>
|
163 |
</div>
|
164 |
+
<div id="bmi-support-send-success">
|
165 |
+
<?php _e("Logs shared successfully.", 'backup-backup') ?>
|
166 |
+
</div>
|
167 |
+
<div id="bmi-support-send-fail">
|
168 |
+
<?php _e("There was an error while sharing logs for support.", 'backup-backup') ?>
|
169 |
+
</div>
|
170 |
+
<div id="bmi-support-send-start">
|
171 |
+
<?php _e("Sending your logs, please wait (up to 15 seconds)...", 'backup-backup') ?>
|
172 |
+
</div>
|
173 |
+
<?php if (false) { ?>
|
174 |
+
<div id="bmi-share-logs-thank-you">
|
175 |
+
<?php _e("Thank you very much for your support!", 'backup-backup') ?>
|
176 |
+
</div>
|
177 |
+
<?php } ?>
|
178 |
<div id="BMI_URL_ROOT"><?php echo plugin_dir_url(BMI_ROOT_FILE); ?></div>
|
179 |
<div id="BMI_BLOG_URL"><?php echo get_site_url(); ?></div>
|
180 |
<div id="BMI_REV"><?php echo BMI_REV; ?></div>
|
includes/database/better-backup-v3.php
ADDED
@@ -0,0 +1,467 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Author: Mikołaj `iClyde` Chodorowski
|
5 |
+
* Contact: kontakt@iclyde.pl
|
6 |
+
* Package: Backup Migration – WP Plugin
|
7 |
+
*/
|
8 |
+
|
9 |
+
// Namespace
|
10 |
+
namespace BMI\Plugin\Database;
|
11 |
+
|
12 |
+
// Use
|
13 |
+
use BMI\Plugin\BMI_Logger AS Logger;
|
14 |
+
use BMI\Plugin\Progress\BMI_ZipProgress AS Progress;
|
15 |
+
use BMI\Plugin\Dashboard AS Dashboard;
|
16 |
+
|
17 |
+
// Exit on direct access
|
18 |
+
if (!defined('ABSPATH')) exit;
|
19 |
+
|
20 |
+
// echo "Memory usage at the beginning: " . (memory_get_usage() / 1024 / 1024) . " MB \n";
|
21 |
+
// function bmi_find_wordpress_base_path() {
|
22 |
+
//
|
23 |
+
// $dir = dirname(__FILE__);
|
24 |
+
// $previous = null;
|
25 |
+
//
|
26 |
+
// do {
|
27 |
+
//
|
28 |
+
// if (file_exists($dir . '/wp-config.php')) return $dir;
|
29 |
+
// if ($previous == $dir) break;
|
30 |
+
// $previous = $dir;
|
31 |
+
//
|
32 |
+
// } while ($dir = dirname($dir));
|
33 |
+
//
|
34 |
+
// return null;
|
35 |
+
//
|
36 |
+
// }
|
37 |
+
//
|
38 |
+
// define('BASE_PATH', bmi_find_wordpress_base_path() . '/');
|
39 |
+
// define('WP_USE_THEMES', false);
|
40 |
+
//
|
41 |
+
// // Use WP Globals and load WordPress
|
42 |
+
// global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header;
|
43 |
+
// require_once BASE_PATH . 'wp-load.php';
|
44 |
+
// echo "Memory usage after core load: " . (memory_get_usage() / 1024 / 1024) . " MB \n";
|
45 |
+
// ini_set('memory_limit', '2M');
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Database exporting
|
49 |
+
* Main Class, requires $wpdb
|
50 |
+
*/
|
51 |
+
class BMI_Database_Exporter {
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Private local variables
|
55 |
+
*/
|
56 |
+
private $total_tables = 0;
|
57 |
+
private $recipes = [];
|
58 |
+
private $tables_by_size = [];
|
59 |
+
public $total_queries = 0;
|
60 |
+
public $total_rows = 0;
|
61 |
+
public $total_size = 0;
|
62 |
+
public $files = [];
|
63 |
+
|
64 |
+
/**
|
65 |
+
* __construct - Initialization and logger resolver
|
66 |
+
*
|
67 |
+
* @return self
|
68 |
+
*/
|
69 |
+
function __construct($storage, &$logger) {
|
70 |
+
|
71 |
+
/**
|
72 |
+
* WP Global Database variable
|
73 |
+
*/
|
74 |
+
global $wpdb;
|
75 |
+
$this->wpdb = &$wpdb;
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Logger of BMI core
|
79 |
+
*/
|
80 |
+
$this->logger = &$logger;
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Storage directory
|
84 |
+
*/
|
85 |
+
// $this->storage = trailingslashit(__DIR__) . 'data';
|
86 |
+
$this->storage = $storage;
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Percentage escape to replace
|
90 |
+
* This way we know what the randomized string is
|
91 |
+
*/
|
92 |
+
$this->percentage = trim($this->wpdb->prepare('%s', '%'), "'");
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Max rows to pass each query
|
96 |
+
*/
|
97 |
+
$this->max_rows = BMI_DB_MAX_ROWS_PER_QUERY;
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Max size in bytes of single query export/import
|
101 |
+
*/
|
102 |
+
$this->max_query_size = 1 * 1024 * 1024;
|
103 |
+
|
104 |
+
$this->table_prefix = time();
|
105 |
+
$this->init_start = microtime(true);
|
106 |
+
$this->logger->log("Memory usage after initialization: " . number_format(memory_get_usage() / 1024 / 1024, 2) . " MB", 'INFO');
|
107 |
+
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* export - Export initializer
|
112 |
+
*
|
113 |
+
* @return filename/filenames
|
114 |
+
*/
|
115 |
+
public function export() {
|
116 |
+
|
117 |
+
// Table names
|
118 |
+
$this->get_table_names_and_sizes();
|
119 |
+
$this->logger->log("Scan found $this->total_tables tables ($this->total_rows rows), estimated total size: $this->total_size MB.", 'INFO');
|
120 |
+
$this->logger->log("Memory usage after getting table names: " . number_format(memory_get_usage() / 1024 / 1024, 2) . " MB ", 'INFO');
|
121 |
+
|
122 |
+
// Recipes
|
123 |
+
$this->logger->log("Getting table recipes...", 'INFO');
|
124 |
+
$this->table_recipes();
|
125 |
+
$this->logger->log("Table recipes have been exported.", 'INFO');
|
126 |
+
$this->logger->log("Memory usage after loading recipes: " . number_format(memory_get_usage() / 1024 / 1024, 2) . " MB ", 'INFO');
|
127 |
+
|
128 |
+
// Save Recipes
|
129 |
+
$this->logger->log("Saving recipes...", 'INFO');
|
130 |
+
$this->save_recipes();
|
131 |
+
$this->logger->log("Recipes saved.", 'INFO');
|
132 |
+
$this->logger->log("Memory usage after recipe off-load: " . number_format(memory_get_usage() / 1024 / 1024, 2) . " MB", 'INFO');
|
133 |
+
|
134 |
+
// Tables data
|
135 |
+
$this->logger->log("Exporting table data...", 'INFO');
|
136 |
+
$this->get_tables_data();
|
137 |
+
$this->logger->log("Table data exported.", 'INFO');
|
138 |
+
$this->logger->log("Memory usage after data export: " . number_format(memory_get_usage() / 1024 / 1024, 2) . " MB", 'INFO');
|
139 |
+
|
140 |
+
$end = number_format(microtime(true) - $this->init_start, 4);
|
141 |
+
$this->logger->log("Entire process took: $end s", 'INFO');
|
142 |
+
|
143 |
+
}
|
144 |
+
|
145 |
+
/**
|
146 |
+
* get_table_names_and_sizes - Gets table names and sizes
|
147 |
+
*
|
148 |
+
* @return {array} associative array table_name => [size => its size in MB, rows => rows count]
|
149 |
+
*/
|
150 |
+
private function get_table_names_and_sizes() {
|
151 |
+
|
152 |
+
$tables = $this->wpdb->get_results('SHOW TABLES');
|
153 |
+
$shouldExcludeTables = Dashboard\bmi_get_config('BACKUP:DATABASE:EXCLUDE');
|
154 |
+
|
155 |
+
$excludedTables = [];
|
156 |
+
if (defined('BMI_BACKUP_PRO') && BMI_BACKUP_PRO == 1) {
|
157 |
+
$excludedTables = Dashboard\bmi_get_config('BACKUP:DATABASE:EXCLUDE:LIST');
|
158 |
+
if (!is_array($excludedTables) || empty($excludedTables)) $excludedTables = [];
|
159 |
+
}
|
160 |
+
|
161 |
+
foreach ($tables as $table_index => $table_object) {
|
162 |
+
foreach ($table_object as $database_name => $table_name) {
|
163 |
+
|
164 |
+
if (in_array($table_name, $excludedTables) && $shouldExcludeTables) {
|
165 |
+
$str = __('Excluding %s table from backup (due to exclusion rules).', 'backup-backup');
|
166 |
+
$str = str_replace('%s', $table_name, $str);
|
167 |
+
$this->logger->log($str, 'INFO');
|
168 |
+
|
169 |
+
continue;
|
170 |
+
}
|
171 |
+
|
172 |
+
$query = "SELECT table_name AS `table`, round(((data_length + index_length) / 1024 / 1024), 2) AS `size`, ";
|
173 |
+
$query .= "(SELECT COUNT(*) FROM `$table_name`) AS `rows`";
|
174 |
+
$query .= "FROM information_schema.TABLES ";
|
175 |
+
$query .= "WHERE table_schema = %s AND table_name = %s";
|
176 |
+
$results = $this->wpdb->get_results($this->wpdb->prepare($query, DB_NAME, $table_name));
|
177 |
+
|
178 |
+
if (!is_object($results[0])) {
|
179 |
+
$this->logger->log("Could not get info about: $table_name (#01)", 'INFO');
|
180 |
+
continue;
|
181 |
+
}
|
182 |
+
|
183 |
+
$table_name_returned = trim($results[0]->table);
|
184 |
+
if ($table_name != $table_name_returned || strlen(trim($table_name)) <= 0) {
|
185 |
+
$this->logger->log("Could not get info about: $table_name (#02)", 'INFO');
|
186 |
+
continue;
|
187 |
+
}
|
188 |
+
|
189 |
+
$this->tables_by_size[$table_name_returned] = array(
|
190 |
+
'size' => floatval($results[0]->size),
|
191 |
+
'rows' => intval($results[0]->rows)
|
192 |
+
);
|
193 |
+
|
194 |
+
$this->total_size += floatval($results[0]->size);
|
195 |
+
$this->total_rows += intval($results[0]->rows);
|
196 |
+
$this->total_tables++;
|
197 |
+
|
198 |
+
}
|
199 |
+
}
|
200 |
+
|
201 |
+
return $this->tables_by_size;
|
202 |
+
|
203 |
+
}
|
204 |
+
|
205 |
+
/**
|
206 |
+
* table_recipes - Gets CREATION recipe of each table
|
207 |
+
*
|
208 |
+
* @return {array} - Creation recipes for each table_name => recipe
|
209 |
+
*/
|
210 |
+
private function table_recipes() {
|
211 |
+
|
212 |
+
foreach ($this->tables_by_size as $table_name => $table_object) {
|
213 |
+
|
214 |
+
$query = "SHOW CREATE TABLE $table_name";
|
215 |
+
$result = $this->wpdb->get_results($query);
|
216 |
+
foreach ($result as $index => $result_object) {
|
217 |
+
foreach ($result_object as $column_name => $column_value) {
|
218 |
+
|
219 |
+
if ($column_value == $table_name) continue;
|
220 |
+
else {
|
221 |
+
|
222 |
+
$column_value = str_replace("`" . $table_name . "`", "`" . $this->table_prefix . '_' . $table_name . "`", $column_value);
|
223 |
+
|
224 |
+
$recipe = 'CREATE TABLE IF NOT EXISTS ';
|
225 |
+
$recipe .= substr($column_value, 13);
|
226 |
+
$recipe = str_replace("\n ", "", $recipe);
|
227 |
+
$recipe = str_replace("\n", "", $recipe);
|
228 |
+
|
229 |
+
$this->recipes[$table_name] = $recipe;
|
230 |
+
|
231 |
+
}
|
232 |
+
|
233 |
+
}
|
234 |
+
}
|
235 |
+
|
236 |
+
}
|
237 |
+
|
238 |
+
return $this->recipes;
|
239 |
+
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* save_recipes - Save recipes and off-load the memory
|
244 |
+
*
|
245 |
+
* @return {void}
|
246 |
+
*/
|
247 |
+
private function save_recipes() {
|
248 |
+
|
249 |
+
$time_prefix = $this->table_prefix;
|
250 |
+
foreach ($this->recipes as $table_name => $table_recipe) {
|
251 |
+
|
252 |
+
$this->total_queries += 3;
|
253 |
+
$recipe = "/* CUSTOM VARS START */\n";
|
254 |
+
$recipe .= "/* REAL_TABLE_NAME: `$table_name`; */\n";
|
255 |
+
$recipe .= "/* PRE_TABLE_NAME: `$time_prefix" . "_" . "$table_name`; */\n";
|
256 |
+
$recipe .= "/* CUSTOM VARS END */\n\n";
|
257 |
+
|
258 |
+
$recipe .= $table_recipe . ";\n";
|
259 |
+
|
260 |
+
$this->total_rows++;
|
261 |
+
$location = $this->file_name($table_name);
|
262 |
+
$file = fopen($location, 'w');
|
263 |
+
fwrite($file, $recipe);
|
264 |
+
|
265 |
+
fclose($file);
|
266 |
+
unset($file);
|
267 |
+
|
268 |
+
$this->files[] = $location;
|
269 |
+
unset($location);
|
270 |
+
|
271 |
+
}
|
272 |
+
|
273 |
+
unset($this->recipes);
|
274 |
+
|
275 |
+
}
|
276 |
+
|
277 |
+
private function getArraySize(&$a, $baseSize = 0) {
|
278 |
+
|
279 |
+
$maxSize = $this->max_query_size;
|
280 |
+
$totalSize = 0 + $baseSize;
|
281 |
+
$i = 0;
|
282 |
+
$reachedLimit = false;
|
283 |
+
|
284 |
+
foreach ($a as $k => $v) {
|
285 |
+
if (is_object($v) || is_array($v)) {
|
286 |
+
$subSize = $this->getArraySize($v);
|
287 |
+
$size = $subSize['size'];
|
288 |
+
if (($totalSize + $size) > $maxSize && $totalSize != 0) {
|
289 |
+
$reachedLimit = true;
|
290 |
+
break;
|
291 |
+
} else {
|
292 |
+
$totalSize += $size;
|
293 |
+
$i++;
|
294 |
+
}
|
295 |
+
} else if (strval($v)) {
|
296 |
+
$totalSize += strlen($v);
|
297 |
+
}
|
298 |
+
}
|
299 |
+
|
300 |
+
return [
|
301 |
+
'size' => $totalSize,
|
302 |
+
'index' => $i,
|
303 |
+
'limit' => $reachedLimit
|
304 |
+
];
|
305 |
+
|
306 |
+
}
|
307 |
+
|
308 |
+
/**
|
309 |
+
* get_tables_data - Table data getter
|
310 |
+
*
|
311 |
+
* @return {int} Total rows count
|
312 |
+
*/
|
313 |
+
private function get_tables_data() {
|
314 |
+
|
315 |
+
foreach ($this->tables_by_size as $table_name => $table_object) {
|
316 |
+
|
317 |
+
$start_time = microtime(true);
|
318 |
+
$this->logger->log("Getting data of table: " . $table_name . " (" . number_format ($table_object['size'], 2) . " MB)", 'INFO');
|
319 |
+
$rows = intval($table_object['rows']);
|
320 |
+
|
321 |
+
$this->wpdb->query("SET foreign_key_checks = 0;");
|
322 |
+
|
323 |
+
$currentBufferSize = 0;
|
324 |
+
$bufferResult = [];
|
325 |
+
|
326 |
+
for ($i = 0; $i < $rows;) {
|
327 |
+
|
328 |
+
$query = $this->wpdb->prepare("SELECT * FROM `$table_name` LIMIT %d, $this->max_rows", $i);
|
329 |
+
$result = $this->wpdb->get_results($query);
|
330 |
+
|
331 |
+
$valuesSize = $this->getArraySize($result, $currentBufferSize);
|
332 |
+
$rowsAmount = sizeof($result);
|
333 |
+
$valuesBytesSize = $valuesSize['size'] - $currentBufferSize;
|
334 |
+
$valuesMaxRow = $valuesSize['index'];
|
335 |
+
$valuesLimit = $valuesSize['limit'];
|
336 |
+
|
337 |
+
if ($valuesMaxRow < $rowsAmount && $valuesMaxRow != 0) $result = array_slice($result, 0, $valuesMaxRow);
|
338 |
+
|
339 |
+
$i += $valuesMaxRow;
|
340 |
+
$currentBufferSize += $valuesBytesSize;
|
341 |
+
|
342 |
+
if ($valuesMaxRow != 0) $bufferResult = array_merge($bufferResult, $result);
|
343 |
+
|
344 |
+
if ($currentBufferSize >= $this->max_query_size || $i >= $rows || $valuesLimit == true) {
|
345 |
+
|
346 |
+
$currentBufferSize = 0;
|
347 |
+
$this->save_data($bufferResult, $table_name);
|
348 |
+
unset($bufferResult);
|
349 |
+
$bufferResult = [];
|
350 |
+
|
351 |
+
}
|
352 |
+
|
353 |
+
unset($result);
|
354 |
+
|
355 |
+
}
|
356 |
+
|
357 |
+
$this->wpdb->query("SET foreign_key_checks = 1;");
|
358 |
+
|
359 |
+
$this->logger->log("Table: " . $table_name . " cloned, operation took: " . number_format((microtime(true) - $start_time), 5) . " ms", 'INFO');
|
360 |
+
unset($start_time);
|
361 |
+
|
362 |
+
}
|
363 |
+
|
364 |
+
}
|
365 |
+
|
366 |
+
/**
|
367 |
+
* save_data - Saves table data/row as query
|
368 |
+
*
|
369 |
+
* @param {wpdb object} &$result Database query result
|
370 |
+
* @param {string} &$table_name Table name
|
371 |
+
* @return {void}
|
372 |
+
*/
|
373 |
+
private function save_data(&$result, &$table_name) {
|
374 |
+
|
375 |
+
$columns_schema_added = false;
|
376 |
+
$file = fopen($this->file_name($table_name), 'a+');
|
377 |
+
|
378 |
+
$this->total_queries++;
|
379 |
+
$query = "INSERT INTO `" . $this->table_prefix . "_" . $table_name . "` ";
|
380 |
+
|
381 |
+
foreach ($result as $index => $result_object) {
|
382 |
+
|
383 |
+
$data_in_order = array();
|
384 |
+
$format_in_order = array();
|
385 |
+
$columns_in_order = array();
|
386 |
+
|
387 |
+
foreach ($result_object as $column_name => $value) {
|
388 |
+
|
389 |
+
$data_in_order[] = $value;
|
390 |
+
$columns_in_order[] = "`$column_name`";
|
391 |
+
|
392 |
+
if (is_numeric($value)) {
|
393 |
+
|
394 |
+
if (is_float($value)) $format_in_order[] = '%f';
|
395 |
+
else $format_in_order[] = '%d';
|
396 |
+
|
397 |
+
} else $format_in_order[] = '%s';
|
398 |
+
|
399 |
+
}
|
400 |
+
|
401 |
+
if ($columns_schema_added === false) {
|
402 |
+
|
403 |
+
$query .= "(" . implode(', ', $columns_in_order) . ") VALUES (";
|
404 |
+
$columns_schema_added = true;
|
405 |
+
|
406 |
+
} else {
|
407 |
+
|
408 |
+
$query = "),(";
|
409 |
+
|
410 |
+
}
|
411 |
+
|
412 |
+
$columns = sizeof($columns_in_order);
|
413 |
+
unset($columns_in_order);
|
414 |
+
|
415 |
+
// $query .= "/* VALUES START */\n";
|
416 |
+
for ($i = 0; $i < $columns; ++$i) {
|
417 |
+
|
418 |
+
if ($format_in_order[$i] == '%f') {
|
419 |
+
|
420 |
+
$query .= floatval($data_in_order[$i]);
|
421 |
+
|
422 |
+
} elseif ($format_in_order[$i] == '%d') {
|
423 |
+
|
424 |
+
$query .= intval($data_in_order[$i]);
|
425 |
+
|
426 |
+
} else {
|
427 |
+
|
428 |
+
$query .= $this->wpdb->prepare("%s", $data_in_order[$i]);
|
429 |
+
$query = str_replace($this->percentage, '%', $query);
|
430 |
+
|
431 |
+
}
|
432 |
+
|
433 |
+
if ($i < ($columns - 1)) $query .= ",";
|
434 |
+
|
435 |
+
}
|
436 |
+
|
437 |
+
unset($data_in_order);
|
438 |
+
unset($format_in_order);
|
439 |
+
unset($columns_in_order);
|
440 |
+
|
441 |
+
fwrite($file, $query);
|
442 |
+
|
443 |
+
}
|
444 |
+
|
445 |
+
// fwrite($file, ");\n/* QUERY END */\n\n");
|
446 |
+
fwrite($file, ");\n");
|
447 |
+
fclose($file);
|
448 |
+
unset($file);
|
449 |
+
|
450 |
+
}
|
451 |
+
|
452 |
+
/**
|
453 |
+
* file_name - Replaces table name to file name friendly format
|
454 |
+
*
|
455 |
+
* @param {string} $table_name Table name
|
456 |
+
* @return {string} Friendly format for file
|
457 |
+
*/
|
458 |
+
private function file_name($table_name) {
|
459 |
+
|
460 |
+
$friendly_name = preg_replace("/[^A-Za-z0-9_-]/", '', $table_name);
|
461 |
+
$friendly_name = trailingslashit($this->storage) . $friendly_name . '.sql';
|
462 |
+
|
463 |
+
return $friendly_name;
|
464 |
+
|
465 |
+
}
|
466 |
+
|
467 |
+
}
|
includes/database/even-better-restore-v3.php
CHANGED
@@ -55,7 +55,18 @@ class BMI_Even_Better_Database_Restore {
|
|
55 |
'cerber_blocks',
|
56 |
'cerber_acl',
|
57 |
'statistics_views',
|
58 |
-
'pcachewpr'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
];
|
60 |
|
61 |
/**
|
@@ -472,7 +483,7 @@ class BMI_Even_Better_Database_Restore {
|
|
472 |
if (!in_array($plugin_name, $failed_plugins)) {
|
473 |
|
474 |
$failed_plugins[] = $plugin_name;
|
475 |
-
error_log($e);
|
476 |
|
477 |
}
|
478 |
|
@@ -484,12 +495,12 @@ class BMI_Even_Better_Database_Restore {
|
|
484 |
if (strpos($msg, 'add_rule()') != false || strpos($msg, 'rewrite.php:143') != false) {
|
485 |
|
486 |
$activated_plugins[] = $plugin_name;
|
487 |
-
error_log($e);
|
488 |
|
489 |
} else {
|
490 |
|
491 |
$failed_plugins[] = $plugin_name;
|
492 |
-
error_log($e);
|
493 |
|
494 |
}
|
495 |
|
@@ -721,8 +732,8 @@ class BMI_Even_Better_Database_Restore {
|
|
721 |
|
722 |
private function initMessage() {
|
723 |
|
724 |
-
$this->logger->log(__('Successfully detected backup created with
|
725 |
-
$this->logger->log(__('Restoring database (using
|
726 |
|
727 |
if (file_exists($this->tablemap)) {
|
728 |
@unlink($this->tablemap);
|
55 |
'cerber_blocks',
|
56 |
'cerber_acl',
|
57 |
'statistics_views',
|
58 |
+
'pcachewpr',
|
59 |
+
'statistics_visitor_relationships',
|
60 |
+
'statistics_visitor',
|
61 |
+
'statistics_visit',
|
62 |
+
'statistics_search',
|
63 |
+
'statistics_pages',
|
64 |
+
'icl_languages_translations',
|
65 |
+
'icl_string_pages',
|
66 |
+
'icl_string_translations',
|
67 |
+
'itsec_log',
|
68 |
+
'actionscheduler_actions',
|
69 |
+
'aepc_logs'
|
70 |
];
|
71 |
|
72 |
/**
|
483 |
if (!in_array($plugin_name, $failed_plugins)) {
|
484 |
|
485 |
$failed_plugins[] = $plugin_name;
|
486 |
+
error_log(strval($e));
|
487 |
|
488 |
}
|
489 |
|
495 |
if (strpos($msg, 'add_rule()') != false || strpos($msg, 'rewrite.php:143') != false) {
|
496 |
|
497 |
$activated_plugins[] = $plugin_name;
|
498 |
+
error_log(strval($e));
|
499 |
|
500 |
} else {
|
501 |
|
502 |
$failed_plugins[] = $plugin_name;
|
503 |
+
error_log(strval($e));
|
504 |
|
505 |
}
|
506 |
|
732 |
|
733 |
private function initMessage() {
|
734 |
|
735 |
+
$this->logger->log(__('Successfully detected backup created with v2 engine, importing...', 'backup-backup'), 'INFO');
|
736 |
+
$this->logger->log(__('Restoring database (using v3 engine)...', 'backup-backup'), 'STEP');
|
737 |
|
738 |
if (file_exists($this->tablemap)) {
|
739 |
@unlink($this->tablemap);
|
includes/database/even-better-restore-v4.php
ADDED
@@ -0,0 +1,709 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Author: Mikołaj `iClyde` Chodorowski
|
5 |
+
* Contact: kontakt@iclyde.pl
|
6 |
+
* Package: Backup Migration – WP Plugin
|
7 |
+
*/
|
8 |
+
|
9 |
+
// Namespace
|
10 |
+
namespace BMI\Plugin\Database;
|
11 |
+
|
12 |
+
// Use
|
13 |
+
use BMI\Plugin\BMI_Logger AS Logger;
|
14 |
+
use BMI\Plugin\Backup_Migration_Plugin as BMP;
|
15 |
+
use BMI\Plugin\Progress\BMI_ZipProgress AS Progress;
|
16 |
+
use BMI\Plugin\Database\BMI_Search_Replace_Engine as BMISearchReplace;
|
17 |
+
|
18 |
+
// Exit on direct access
|
19 |
+
if (!defined('ABSPATH')) exit;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Database Restore Enginge v3
|
23 |
+
*/
|
24 |
+
class BMI_Even_Better_Database_Restore {
|
25 |
+
|
26 |
+
// Unwanted tables
|
27 |
+
private $unwantedTables = [
|
28 |
+
'wfblockediplog',
|
29 |
+
'wfblocks7',
|
30 |
+
'wfcrawlers',
|
31 |
+
'wffilechanges',
|
32 |
+
'wffilemods',
|
33 |
+
'wfhits',
|
34 |
+
'wfhoover',
|
35 |
+
'wfissues',
|
36 |
+
'wfknownfilelist',
|
37 |
+
'wflivetraffichuman',
|
38 |
+
'wflocs',
|
39 |
+
'wflogins',
|
40 |
+
'wfnotifications',
|
41 |
+
'wfpendingissues',
|
42 |
+
'wfreversecache',
|
43 |
+
'wfsnipcache',
|
44 |
+
'wfstatus',
|
45 |
+
'wftrafficrate',
|
46 |
+
'actionscheduler_logs',
|
47 |
+
'slim_stats',
|
48 |
+
'woocommerce_sessions',
|
49 |
+
'yoast_indexable',
|
50 |
+
'slim_events',
|
51 |
+
'cerber_files',
|
52 |
+
'cerber_traffic',
|
53 |
+
'cerber_log',
|
54 |
+
'cerber_countries',
|
55 |
+
'cerber_blocks',
|
56 |
+
'cerber_acl',
|
57 |
+
'statistics_views',
|
58 |
+
'pcachewpr',
|
59 |
+
'statistics_visitor_relationships',
|
60 |
+
'statistics_visitor',
|
61 |
+
'statistics_visit',
|
62 |
+
'statistics_search',
|
63 |
+
'statistics_pages',
|
64 |
+
'icl_languages_translations',
|
65 |
+
'icl_string_pages',
|
66 |
+
'icl_string_translations',
|
67 |
+
'itsec_log',
|
68 |
+
'actionscheduler_actions',
|
69 |
+
'aepc_logs'
|
70 |
+
];
|
71 |
+
|
72 |
+
/**
|
73 |
+
* __construct - Make connection
|
74 |
+
*
|
75 |
+
* @return @self
|
76 |
+
*/
|
77 |
+
function __construct($storage, $firstDB, &$manifest, &$logger, $splitting, $isCLI) {
|
78 |
+
|
79 |
+
$this->isCLI = $isCLI;
|
80 |
+
$this->splitting = $splitting;
|
81 |
+
$this->storage = $storage;
|
82 |
+
$this->logger = &$logger;
|
83 |
+
$this->manifest = &$manifest;
|
84 |
+
$this->tablemap = BMI_INCLUDES . DIRECTORY_SEPARATOR . 'htaccess' . DIRECTORY_SEPARATOR . '.table_map';
|
85 |
+
|
86 |
+
if ($firstDB) $this->initMessage();
|
87 |
+
|
88 |
+
$this->map = $this->getTableMap();
|
89 |
+
$this->seek = &$this->map['seek'];
|
90 |
+
|
91 |
+
}
|
92 |
+
|
93 |
+
public function start() {
|
94 |
+
|
95 |
+
if ($this->isCLI) {
|
96 |
+
|
97 |
+
while ($nextFile = $this->getNextFile()) {
|
98 |
+
$this->processFile($nextFile);
|
99 |
+
}
|
100 |
+
|
101 |
+
return true;
|
102 |
+
|
103 |
+
} else {
|
104 |
+
|
105 |
+
$nextFile = $this->getNextFile();
|
106 |
+
if ($nextFile === false) return true;
|
107 |
+
else {
|
108 |
+
|
109 |
+
$this->processFile($nextFile);
|
110 |
+
|
111 |
+
return false;
|
112 |
+
|
113 |
+
}
|
114 |
+
|
115 |
+
}
|
116 |
+
|
117 |
+
}
|
118 |
+
|
119 |
+
private function getTableMap() {
|
120 |
+
|
121 |
+
if (file_exists($this->tablemap)) {
|
122 |
+
|
123 |
+
$data = json_decode(file_get_contents($this->tablemap), true);
|
124 |
+
$this->map = $data;
|
125 |
+
|
126 |
+
} else {
|
127 |
+
|
128 |
+
$data = [
|
129 |
+
'tables' => [],
|
130 |
+
'seek' => [
|
131 |
+
'last_seek' => 0,
|
132 |
+
'last_file' => '...',
|
133 |
+
'last_start' => 0,
|
134 |
+
'total_tables' => sizeof(array_diff(scandir($this->storage), ['..', '.'])),
|
135 |
+
'active_plugins' => 'a:1:{i:0;s:31:"backup-backup/backup-backup.php";}'
|
136 |
+
]
|
137 |
+
];
|
138 |
+
|
139 |
+
file_put_contents($this->tablemap, json_encode($data));
|
140 |
+
|
141 |
+
}
|
142 |
+
|
143 |
+
return $data;
|
144 |
+
|
145 |
+
}
|
146 |
+
|
147 |
+
private function getTableProgress() {
|
148 |
+
|
149 |
+
$total_tables = $this->seek['total_tables'];
|
150 |
+
$tables_left = sizeof(array_diff(scandir($this->storage), ['..', '.']));
|
151 |
+
|
152 |
+
$finished_tables = ($total_tables - $tables_left) + 1;
|
153 |
+
$percentage = number_format(($finished_tables / $total_tables) * 100, 2);
|
154 |
+
|
155 |
+
$this->logger->progress(50 + ((number_format($percentage, 0) / 2) - 10));
|
156 |
+
|
157 |
+
return $finished_tables . '/' . $total_tables . ' (' . $percentage . '%)';
|
158 |
+
|
159 |
+
}
|
160 |
+
|
161 |
+
private function queryFile(&$objFile, $filePath, $tableName, $realTableName) {
|
162 |
+
|
163 |
+
global $wpdb;
|
164 |
+
|
165 |
+
$seek = &$this->seek['last_seek'];
|
166 |
+
if ($seek == 0) {
|
167 |
+
$seek = 5;
|
168 |
+
$wpdb->query("DROP TABLE IF EXISTS `" . $tableName . "`;");
|
169 |
+
|
170 |
+
$str = __("Started restoration of %table_name% %total_tables% table", 'backup-backup');
|
171 |
+
$str = str_replace('%table_name%', $realTableName, $str);
|
172 |
+
$str = str_replace('%total_tables%', $this->getTableProgress(), $str);
|
173 |
+
$this->logger->log($str, 'INFO');
|
174 |
+
|
175 |
+
// Check if file can be cleaned
|
176 |
+
$this->filterFile($filePath, basename($filePath));
|
177 |
+
}
|
178 |
+
|
179 |
+
$wpdb->suppress_errors();
|
180 |
+
|
181 |
+
$wpdb->query('SET autocommit = 0;');
|
182 |
+
$wpdb->query('SET foreign_key_checks = 0;');
|
183 |
+
$wpdb->query("SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO';");
|
184 |
+
$wpdb->query('START TRANSACTION;');
|
185 |
+
|
186 |
+
$sql = '';
|
187 |
+
while (!$objFile->eof()) {
|
188 |
+
$objFile->seek($seek); $seek++;
|
189 |
+
$line = rtrim($objFile->current(), "\n");
|
190 |
+
if (strlen($line) !== 0) {
|
191 |
+
$sql = $line;
|
192 |
+
unset($line);
|
193 |
+
break;
|
194 |
+
}
|
195 |
+
}
|
196 |
+
|
197 |
+
$wpdb->query($sql);
|
198 |
+
unset($sql);
|
199 |
+
$wpdb->query('COMMIT;');
|
200 |
+
$wpdb->query('SET autocommit = 1;');
|
201 |
+
$wpdb->query('SET foreign_key_checks = 1;');
|
202 |
+
|
203 |
+
$str = __("Progress of %table_name%: %progress%", 'backup-backup');
|
204 |
+
$str = str_replace('%table_name%', $realTableName, $str);
|
205 |
+
|
206 |
+
$objFile->seek($objFile->getSize());
|
207 |
+
$total_size = $objFile->key() - 5;
|
208 |
+
$objFile->seek($seek);
|
209 |
+
|
210 |
+
if ($total_size <= 0) $total_size = 1;
|
211 |
+
if (($seek - 5) <= 0) $seek = 6;
|
212 |
+
|
213 |
+
$progress = ($seek - 5) . '/' . $total_size . " (" . number_format(($seek - 5) / $total_size * 100, 2) . "%)";
|
214 |
+
$str = str_replace('%progress%', $progress, $str);
|
215 |
+
$this->logger->log($str, 'INFO');
|
216 |
+
|
217 |
+
$wpdb->show_errors();
|
218 |
+
|
219 |
+
if ($objFile->eof()) {
|
220 |
+
return true;
|
221 |
+
} else {
|
222 |
+
return false;
|
223 |
+
}
|
224 |
+
|
225 |
+
}
|
226 |
+
|
227 |
+
private function addNewTableToMap($from, $to, $file) {
|
228 |
+
|
229 |
+
if (!array_key_exists($from, $this->map['tables'])) {
|
230 |
+
$this->map['tables'][$from] = $to;
|
231 |
+
}
|
232 |
+
|
233 |
+
file_put_contents($this->tablemap, json_encode($this->map));
|
234 |
+
|
235 |
+
}
|
236 |
+
|
237 |
+
private function processFile($file) {
|
238 |
+
|
239 |
+
if ($this->seek['last_seek'] == 0) {
|
240 |
+
$this->seek['last_start'] = microtime(true);
|
241 |
+
}
|
242 |
+
|
243 |
+
$objFile = new \SplFileObject($file);
|
244 |
+
|
245 |
+
$objFile->seek(1);
|
246 |
+
$realTableName = explode('`', $objFile->current())[1];
|
247 |
+
|
248 |
+
$objFile->seek(2);
|
249 |
+
$tmpTableName = explode('`', $objFile->current())[1];
|
250 |
+
|
251 |
+
$finished = $this->queryFile($objFile, $file, $tmpTableName, $realTableName);
|
252 |
+
|
253 |
+
if ($finished && file_exists($file)) {
|
254 |
+
$this->seek['last_seek'] = 0;
|
255 |
+
$this->seek['last_file'] = '...';
|
256 |
+
@unlink($file);
|
257 |
+
|
258 |
+
$totalTime = microtime(true) - intval($this->seek['last_start']);
|
259 |
+
$totalTime = number_format($totalTime, 5);
|
260 |
+
|
261 |
+
$str = __("Table %table_name% restoration took %time% seconds", 'backup-backup');
|
262 |
+
$str = str_replace('%table_name%', $realTableName, $str);
|
263 |
+
$str = str_replace('%time%', $totalTime, $str);
|
264 |
+
|
265 |
+
$this->logger->log($str, 'SUCCESS');
|
266 |
+
$this->seek['last_start'] = 0;
|
267 |
+
}
|
268 |
+
|
269 |
+
$this->addNewTableToMap($tmpTableName, $realTableName, $file);
|
270 |
+
|
271 |
+
return true;
|
272 |
+
|
273 |
+
}
|
274 |
+
|
275 |
+
private function parseDomain($domain, $removeWWW = true) {
|
276 |
+
|
277 |
+
if (substr($domain, 0, 8) == 'https://') $domain = substr($domain, 8);
|
278 |
+
if (substr($domain, 0, 7) == 'http://') $domain = substr($domain, 7);
|
279 |
+
if ($removeWWW === true) {
|
280 |
+
if (substr($domain, 0, 4) == 'www.') $domain = substr($domain, 4);
|
281 |
+
}
|
282 |
+
$domain = untrailingslashit($domain);
|
283 |
+
|
284 |
+
return $domain;
|
285 |
+
|
286 |
+
}
|
287 |
+
|
288 |
+
private function replaceTableNames($tables) {
|
289 |
+
|
290 |
+
global $wpdb;
|
291 |
+
|
292 |
+
$this->logger->log(__('Performing table replacement', 'backup-backup'), 'STEP');
|
293 |
+
|
294 |
+
$wpdb->suppress_errors();
|
295 |
+
foreach ($tables as $oldTable => $newTable) {
|
296 |
+
|
297 |
+
$sql = "DROP TABLE IF EXISTS `" . $newTable . "`;";
|
298 |
+
$wpdb->query($sql);
|
299 |
+
|
300 |
+
$sql = "ALTER TABLE `" . $oldTable . "` RENAME TO `" . $newTable . "`;";
|
301 |
+
$wpdb->query($sql);
|
302 |
+
|
303 |
+
$str = __('Table %old% renamed to %new%', 'backup-backup');
|
304 |
+
$str = str_replace('%old%', $oldTable, $str);
|
305 |
+
$str = str_replace('%new%', $newTable, $str);
|
306 |
+
$this->logger->log($str, 'INFO');
|
307 |
+
|
308 |
+
}
|
309 |
+
|
310 |
+
$wpdb->show_errors();
|
311 |
+
$this->logger->log(__('All tables replaced', 'backup-backup'), 'SUCCESS');
|
312 |
+
|
313 |
+
}
|
314 |
+
|
315 |
+
private function performReplace() {
|
316 |
+
|
317 |
+
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'search-replace.php';
|
318 |
+
|
319 |
+
$backupRootDir = $this->manifest->config->ABSPATH;
|
320 |
+
$currentRootDir = ABSPATH;
|
321 |
+
|
322 |
+
$backupDomain = $this->parseDomain($this->manifest->dbdomain);
|
323 |
+
$currentDomain = $this->parseDomain(get_option('siteurl'), false);
|
324 |
+
|
325 |
+
$progress = 0;
|
326 |
+
|
327 |
+
$replaceEngine = new BMISearchReplace(array_keys($this->map['tables']));
|
328 |
+
|
329 |
+
if ($backupRootDir != $currentRootDir || $currentDomain != $this->parseDomain($backupDomain, false)) {
|
330 |
+
$this->logger->log(__('Performing Search & Replace', 'backup-backup'), 'STEP');
|
331 |
+
} else {
|
332 |
+
$this->logger->log(__('This backup was made on the same site, ommiting search & replace.', 'backup-backup'), 'INFO');
|
333 |
+
$progress = 8;
|
334 |
+
$this->logger->progress(98);
|
335 |
+
}
|
336 |
+
|
337 |
+
if ($backupRootDir != $currentRootDir) {
|
338 |
+
|
339 |
+
$dtables = 0; $drows = 0; $dchange = 0; $dupdates = 0;
|
340 |
+
|
341 |
+
$r = $replaceEngine->perform($backupRootDir, $currentRootDir);
|
342 |
+
$dtables += $r['tables']; $drows += $r['rows']; $dchange += $r['change']; $dupdates += $r['updates'];
|
343 |
+
|
344 |
+
$info = __("Searched %tables% tables and %rows% rows for paths, changed %changes%/%updates% rows.", 'backup-backup');
|
345 |
+
$info = str_replace('%tables%', $dtables, $info);
|
346 |
+
$info = str_replace('%rows%', $drows, $info);
|
347 |
+
$info = str_replace('%changes%', $dchange, $info);
|
348 |
+
$info = str_replace('%updates%', $dupdates, $info);
|
349 |
+
|
350 |
+
$this->logger->log($info, 'INFO');
|
351 |
+
|
352 |
+
} else {
|
353 |
+
|
354 |
+
$progress++;
|
355 |
+
$this->logger->progress(90 + $progress);
|
356 |
+
|
357 |
+
}
|
358 |
+
|
359 |
+
if ($currentDomain != $this->parseDomain($backupDomain, false)) {
|
360 |
+
$ssl = is_ssl() == true ? 'https://' : 'http://';
|
361 |
+
|
362 |
+
$dtables = 0; $drows = 0; $dchange = 0; $dupdates = 0;
|
363 |
+
|
364 |
+
$possibleDomainsBackup = [
|
365 |
+
"https://www." . $backupDomain,
|
366 |
+
"http://www." . $backupDomain,
|
367 |
+
"https://" . $backupDomain,
|
368 |
+
"http://" . $backupDomain,
|
369 |
+
$backupDomain
|
370 |
+
];
|
371 |
+
|
372 |
+
$possibleDomainsCurrent = [
|
373 |
+
$ssl . $currentDomain,
|
374 |
+
$ssl . $currentDomain,
|
375 |
+
$ssl . $currentDomain,
|
376 |
+
$ssl . $currentDomain,
|
377 |
+
$currentDomain
|
378 |
+
];
|
379 |
+
|
380 |
+
$r = $replaceEngine->perform($possibleDomainsBackup[0], $possibleDomainsCurrent[0]);
|
381 |
+
$dtables += $r['tables']; $drows += $r['rows']; $dchange += $r['change']; $dupdates += $r['updates'];
|
382 |
+
$progress++; $this->logger->progress(90 + $progress);
|
383 |
+
|
384 |
+
$r = $replaceEngine->perform($possibleDomainsBackup[1], $possibleDomainsCurrent[1]);
|
385 |
+
$dchange += $r['change']; $dupdates += $r['updates'];
|
386 |
+
$progress++; $this->logger->progress(90 + $progress);
|
387 |
+
|
388 |
+
$r = $replaceEngine->perform($possibleDomainsBackup[2], $possibleDomainsCurrent[2]);
|
389 |
+
$dchange += $r['change']; $dupdates += $r['updates'];
|
390 |
+
$progress++; $this->logger->progress(90 + $progress);
|
391 |
+
|
392 |
+
$r = $replaceEngine->perform($possibleDomainsBackup[3], $possibleDomainsCurrent[3]);
|
393 |
+
$dchange += $r['change']; $dupdates += $r['updates'];
|
394 |
+
$progress++; $this->logger->progress(90 + $progress);
|
395 |
+
|
396 |
+
if (!(substr($currentDomain, -strlen($backupDomain)) === $backupDomain)) {
|
397 |
+
$r = $replaceEngine->perform($possibleDomainsBackup[4], $possibleDomainsCurrent[4]);
|
398 |
+
$dchange += $r['change']; $dupdates += $r['updates'];
|
399 |
+
}
|
400 |
+
$progress++; $this->logger->progress(90 + $progress);
|
401 |
+
|
402 |
+
$info = __("Searched %tables% tables and %rows% rows for domain, changed %changes%/%updates% rows.", 'backup-backup');
|
403 |
+
$info = str_replace('%tables%', $dtables, $info);
|
404 |
+
$info = str_replace('%rows%', $drows, $info);
|
405 |
+
$info = str_replace('%changes%', $dchange, $info);
|
406 |
+
$info = str_replace('%updates%', $dupdates, $info);
|
407 |
+
|
408 |
+
$this->logger->log($info, 'INFO');
|
409 |
+
}
|
410 |
+
|
411 |
+
if ($backupRootDir != $currentRootDir || $currentDomain != $this->parseDomain($backupDomain, false)) {
|
412 |
+
$this->logger->log(__('Search & Replace finished successfully.', 'backup-backup'), 'SUCCESS');
|
413 |
+
}
|
414 |
+
|
415 |
+
$this->replaceTableNames($this->map['tables']);
|
416 |
+
$progress += 2; $this->logger->progress(90 + $progress);
|
417 |
+
|
418 |
+
return true;
|
419 |
+
|
420 |
+
}
|
421 |
+
|
422 |
+
private function try_activate_plugins($plugins, $sucstr_source, $failstr_source, $failed_plugins = []) {
|
423 |
+
|
424 |
+
$plugins_copy = array_values($plugins);
|
425 |
+
$should_continue = false;
|
426 |
+
$activated_plugins = [];
|
427 |
+
$failed_plugins = $failed_plugins;
|
428 |
+
$disallowed_plugins = [
|
429 |
+
'bluehost-wordpress-plugin/bluehost-wordpress-plugin.php',
|
430 |
+
'sg-cachepress/sg-cachepress.php',
|
431 |
+
'wordpress-starter/siteground-wizard.php',
|
432 |
+
'revslider/revslider.php',
|
433 |
+
'easy-soundcloud-shortcode/easy-soundcloud-shortcode.php',
|
434 |
+
'easy-soundcloud-shortcode/EasySoundcloudShortcode.php'
|
435 |
+
];
|
436 |
+
|
437 |
+
for ($i = 0; $i < sizeof($plugins_copy); ++$i) {
|
438 |
+
|
439 |
+
$plugin_name = $plugins_copy[$i];
|
440 |
+
$plugin_display = $plugin_name;
|
441 |
+
|
442 |
+
$shouldActivate = true;
|
443 |
+
|
444 |
+
if (empty($plugin_name)) {
|
445 |
+
$shouldActivate = false;
|
446 |
+
$plugin_display = '(---)';
|
447 |
+
} else if (strpos($plugin_name, '/') === false) {
|
448 |
+
$shouldActivate = false;
|
449 |
+
}
|
450 |
+
|
451 |
+
$sucstr = str_replace('%plugin_name%', $plugin_display, $sucstr_source);
|
452 |
+
$failstr = str_replace('%plugin_name%', $plugin_display, $failstr_source);
|
453 |
+
|
454 |
+
if ($shouldActivate) {
|
455 |
+
try {
|
456 |
+
|
457 |
+
if (validate_plugin_requirements($plugin_name) && !in_array($plugin_name, $disallowed_plugins)) {
|
458 |
+
|
459 |
+
$resultWP = activate_plugin($plugin_name, '', true, true);
|
460 |
+
|
461 |
+
$this->logger->log($sucstr, 'INFO');
|
462 |
+
$activated_plugins[] = $plugin_name;
|
463 |
+
|
464 |
+
$should_continue = true;
|
465 |
+
break;
|
466 |
+
|
467 |
+
} else {
|
468 |
+
|
469 |
+
if (!in_array($plugin_name, $failed_plugins)) {
|
470 |
+
$failed_plugins[] = $plugin_name;
|
471 |
+
}
|
472 |
+
|
473 |
+
}
|
474 |
+
|
475 |
+
} catch (\Exception $e) {
|
476 |
+
|
477 |
+
if (!in_array($plugin_name, $failed_plugins)) {
|
478 |
+
|
479 |
+
$failed_plugins[] = $plugin_name;
|
480 |
+
error_log(strval($e));
|
481 |
+
|
482 |
+
}
|
483 |
+
|
484 |
+
} catch (\Throwable $e) {
|
485 |
+
|
486 |
+
if (!in_array($plugin_name, $failed_plugins)) {
|
487 |
+
|
488 |
+
$msg = $e->getMessage();
|
489 |
+
if (strpos($msg, 'add_rule()') != false || strpos($msg, 'rewrite.php:143') != false) {
|
490 |
+
|
491 |
+
$activated_plugins[] = $plugin_name;
|
492 |
+
error_log(strval($e));
|
493 |
+
|
494 |
+
} else {
|
495 |
+
|
496 |
+
$failed_plugins[] = $plugin_name;
|
497 |
+
error_log(strval($e));
|
498 |
+
|
499 |
+
}
|
500 |
+
|
501 |
+
}
|
502 |
+
|
503 |
+
}
|
504 |
+
|
505 |
+
} else {
|
506 |
+
|
507 |
+
$this->logger->log($failstr, 'WARN');
|
508 |
+
|
509 |
+
}
|
510 |
+
|
511 |
+
}
|
512 |
+
|
513 |
+
return [ 'failed' => $failed_plugins, 'active' => $activated_plugins, 'should_continue' => $should_continue ];
|
514 |
+
|
515 |
+
}
|
516 |
+
|
517 |
+
private function enablePlugins() {
|
518 |
+
|
519 |
+
global $wpdb;
|
520 |
+
|
521 |
+
$this->logger->log(__('Enabling plugins included in the backup', 'backup-backup'), 'STEP');
|
522 |
+
|
523 |
+
if (is_serialized($this->seek['active_plugins'])) {
|
524 |
+
|
525 |
+
$plugins = unserialize($this->seek['active_plugins']);
|
526 |
+
usort($plugins, function ($a, $b) { return strlen($a) - strlen($b); });
|
527 |
+
$plugins = array_values($plugins);
|
528 |
+
|
529 |
+
$sucstr_source = __('Plugin %plugin_name% enabled successfully.', 'backup-backup');
|
530 |
+
$failstr_source = __('Failed to enable plugin %plugin_name%, trying to not end at fatal error...', 'backup-backup');
|
531 |
+
|
532 |
+
$fullyActive = [];
|
533 |
+
$failed_plugins = [];
|
534 |
+
|
535 |
+
if (!function_exists('activate_plugin')) {
|
536 |
+
require_once(ABSPATH .'/wp-admin/includes/plugin.php');
|
537 |
+
}
|
538 |
+
|
539 |
+
$one_more_time = true;
|
540 |
+
$try_again = true;
|
541 |
+
while ($try_again) {
|
542 |
+
|
543 |
+
$res = $this->try_activate_plugins($plugins, $sucstr_source, $failstr_source, $failed_plugins);
|
544 |
+
|
545 |
+
$fullyActive = array_unique(array_merge($fullyActive, $res['active']));
|
546 |
+
$plugins = array_diff($plugins, $res['active']);
|
547 |
+
$failed_plugins = array_unique(array_diff(array_merge($failed_plugins, $res['failed']), $fullyActive));
|
548 |
+
|
549 |
+
$try_again = $res['should_continue'];
|
550 |
+
if ($try_again == false && $one_more_time == true) {
|
551 |
+
$one_more_time = false;
|
552 |
+
$try_again = true;
|
553 |
+
}
|
554 |
+
|
555 |
+
}
|
556 |
+
|
557 |
+
for ($i = 0; $i < sizeof($failed_plugins); ++$i) {
|
558 |
+
|
559 |
+
$failstr = str_replace('%plugin_name%', $failed_plugins[$i], $failstr_source);
|
560 |
+
$this->logger->log($failstr, 'WARN');
|
561 |
+
|
562 |
+
}
|
563 |
+
|
564 |
+
if (!in_array('backup-backup/backup-backup.php', $fullyActive)) {
|
565 |
+
$fullyActive[] = 'backup-backup/backup-backup.php';
|
566 |
+
}
|
567 |
+
|
568 |
+
update_option('active_plugins', $fullyActive);
|
569 |
+
|
570 |
+
}
|
571 |
+
|
572 |
+
$this->logger->progress(100);
|
573 |
+
$this->logger->log(__('All plugins enabled, you are ready to go :)', 'backup-backup'), 'SUCCESS');
|
574 |
+
|
575 |
+
}
|
576 |
+
|
577 |
+
public function alter_tables() {
|
578 |
+
|
579 |
+
$this->logger->progress(90);
|
580 |
+
$this->prepareFinalDatabase();
|
581 |
+
$this->performReplace();
|
582 |
+
$this->enablePlugins();
|
583 |
+
|
584 |
+
}
|
585 |
+
|
586 |
+
private function prepareFinalDatabase() {
|
587 |
+
|
588 |
+
global $wpdb;
|
589 |
+
|
590 |
+
$tables = array_keys($this->map['tables']);
|
591 |
+
$unique_prefix = explode('_', $tables[0])[0];
|
592 |
+
$backupPrefix = $this->manifest->config->table_prefix;
|
593 |
+
|
594 |
+
$options_table = $unique_prefix . '_' . $backupPrefix . 'options';
|
595 |
+
if (!in_array($options_table, $tables)) {
|
596 |
+
$tablename = false;
|
597 |
+
for ($i = 0; $i < sizeof($tables); ++$i) {
|
598 |
+
$table = $tables[$i];
|
599 |
+
if (substr($table, -7) == 'options') {
|
600 |
+
$tablename = $table;
|
601 |
+
break;
|
602 |
+
}
|
603 |
+
}
|
604 |
+
|
605 |
+
$options_table = $tablename;
|
606 |
+
}
|
607 |
+
|
608 |
+
if ($options_table != false && in_array($options_table, $tables)) {
|
609 |
+
|
610 |
+
$sql = "DELETE FROM " . $options_table . " WHERE option_name LIKE ('%\_transient\_%')";
|
611 |
+
$wpdb->query($sql);
|
612 |
+
|
613 |
+
$active_plugins = $wpdb->get_results('SELECT option_value FROM `' . $options_table . '` WHERE option_name = "active_plugins"');
|
614 |
+
$active_plugins = $active_plugins[0]->option_value;
|
615 |
+
|
616 |
+
$this->seek['active_plugins'] = $active_plugins;
|
617 |
+
|
618 |
+
update_option('active_plugins', ['backup-backup/backup-backup.php']);
|
619 |
+
|
620 |
+
$ssl = is_ssl() == true ? 'https://' : 'http://';
|
621 |
+
$currentDomain = $ssl . $this->parseDomain(get_option('siteurl'), false);
|
622 |
+
|
623 |
+
$sql = 'UPDATE ' . $options_table . ' SET option_value = %s WHERE option_name = "siteurl"';
|
624 |
+
$wpdb->query($wpdb->prepare($sql, $currentDomain));
|
625 |
+
|
626 |
+
$sql = 'UPDATE ' . $options_table . ' SET option_value = %s WHERE option_name = "home"';
|
627 |
+
$wpdb->query($wpdb->prepare($sql, $currentDomain));
|
628 |
+
|
629 |
+
}
|
630 |
+
|
631 |
+
}
|
632 |
+
|
633 |
+
private function filterFile($path, $name) {
|
634 |
+
|
635 |
+
$blacklist = $this->unwantedTables;
|
636 |
+
$tablename = strtolower(substr($name, 0, -4));
|
637 |
+
|
638 |
+
$shouldBeExcluded = false;
|
639 |
+
for ($i = 0; $i < sizeof($blacklist); ++$i) {
|
640 |
+
|
641 |
+
$rule = strtolower($blacklist[$i]);
|
642 |
+
if (substr($tablename, -(strlen($rule))) == $rule) {
|
643 |
+
$shouldBeExcluded = true;
|
644 |
+
break;
|
645 |
+
}
|
646 |
+
|
647 |
+
}
|
648 |
+
|
649 |
+
if ($shouldBeExcluded == true) {
|
650 |
+
|
651 |
+
$file = new \SplFileObject($path);
|
652 |
+
$file->seek($file->getSize());
|
653 |
+
$total_lines = $file->key() + 1;
|
654 |
+
|
655 |
+
if ($total_lines >= 6) {
|
656 |
+
|
657 |
+
$str = "\n\n\n\n\n";
|
658 |
+
|
659 |
+
$file->seek(5);
|
660 |
+
$str .= trim($file->current());
|
661 |
+
|
662 |
+
$this->logger->log(str_replace('%s', substr($name, 0, -4), __('Cleaning up contents of %s table.', 'backup-backup')), 'INFO');
|
663 |
+
file_put_contents($path, $str);
|
664 |
+
|
665 |
+
$file = null;
|
666 |
+
|
667 |
+
}
|
668 |
+
|
669 |
+
}
|
670 |
+
|
671 |
+
}
|
672 |
+
|
673 |
+
private function getNextFile() {
|
674 |
+
|
675 |
+
if ($this->seek['last_file'] == '...') {
|
676 |
+
|
677 |
+
$nextFile = false;
|
678 |
+
|
679 |
+
$sqlFiles = array_diff(scandir($this->storage), ['..', '.']);
|
680 |
+
$sqlFiles = array_values($sqlFiles);
|
681 |
+
|
682 |
+
if (sizeof($sqlFiles) > 0) {
|
683 |
+
$nextFilePath = $this->storage . DIRECTORY_SEPARATOR . $sqlFiles[0];
|
684 |
+
return $nextFilePath;
|
685 |
+
}
|
686 |
+
|
687 |
+
$this->seek['last_file'] = $nextFile;
|
688 |
+
return $nextFile;
|
689 |
+
|
690 |
+
} else {
|
691 |
+
|
692 |
+
return $this->seek['last_file'];
|
693 |
+
|
694 |
+
}
|
695 |
+
|
696 |
+
}
|
697 |
+
|
698 |
+
private function initMessage() {
|
699 |
+
|
700 |
+
$this->logger->log(__('Successfully detected backup created with v3 engine, importing...', 'backup-backup'), 'INFO');
|
701 |
+
$this->logger->log(__('Restoring database (using v4 engine)...', 'backup-backup'), 'STEP');
|
702 |
+
|
703 |
+
if (file_exists($this->tablemap)) {
|
704 |
+
@unlink($this->tablemap);
|
705 |
+
}
|
706 |
+
|
707 |
+
}
|
708 |
+
|
709 |
+
}
|
includes/database/manager.php
CHANGED
File without changes
|
includes/database/search-replace.php
CHANGED
@@ -91,7 +91,7 @@ class BMI_Search_Replace_Engine {
|
|
91 |
$row_count = $row_count[0]->num;
|
92 |
if ($row_count == 0) continue;
|
93 |
|
94 |
-
$page_size =
|
95 |
$pages = ceil($row_count / $page_size);
|
96 |
|
97 |
for ($page = 0; $page < $pages; $page++) {
|
@@ -130,17 +130,23 @@ class BMI_Search_Replace_Engine {
|
|
130 |
if ($upd && !empty($where_sql)) {
|
131 |
$sql = 'UPDATE ' . $table . ' SET ' . implode(', ', $update_sql) . ' WHERE ' . implode(' AND ', array_filter($where_sql));
|
132 |
$wpdb->query($sql);
|
|
|
|
|
133 |
$report['updates']++;
|
134 |
|
135 |
if ($wpdb->last_error !== '') {
|
136 |
-
error_log($wpdb->last_query);
|
137 |
-
error_log($wpdb->last_result);
|
138 |
-
error_log($wpdb->last_error);
|
139 |
}
|
140 |
}
|
141 |
|
|
|
|
|
142 |
}
|
143 |
|
|
|
|
|
144 |
}
|
145 |
|
146 |
}
|
91 |
$row_count = $row_count[0]->num;
|
92 |
if ($row_count == 0) continue;
|
93 |
|
94 |
+
$page_size = 500;
|
95 |
$pages = ceil($row_count / $page_size);
|
96 |
|
97 |
for ($page = 0; $page < $pages; $page++) {
|
130 |
if ($upd && !empty($where_sql)) {
|
131 |
$sql = 'UPDATE ' . $table . ' SET ' . implode(', ', $update_sql) . ' WHERE ' . implode(' AND ', array_filter($where_sql));
|
132 |
$wpdb->query($sql);
|
133 |
+
unset($sql);
|
134 |
+
|
135 |
$report['updates']++;
|
136 |
|
137 |
if ($wpdb->last_error !== '') {
|
138 |
+
// error_log(strval($wpdb->last_query));
|
139 |
+
// error_log(strval($wpdb->last_result));
|
140 |
+
// error_log(strval($wpdb->last_error));
|
141 |
}
|
142 |
}
|
143 |
|
144 |
+
unset($row);
|
145 |
+
|
146 |
}
|
147 |
|
148 |
+
unset($data);
|
149 |
+
|
150 |
}
|
151 |
|
152 |
}
|
includes/extracter/extract.php
CHANGED
@@ -33,7 +33,6 @@
|
|
33 |
// Requirements
|
34 |
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'manager.php';
|
35 |
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'better-restore.php';
|
36 |
-
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'even-better-restore-v3.php';
|
37 |
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'smart-sort.php';
|
38 |
|
39 |
// IsCLI?
|
@@ -57,7 +56,7 @@
|
|
57 |
$this->cleanupbefore = Dashboard\bmi_get_config('OTHER:RESTORE:BEFORE:CLEANUP') ? true : false;
|
58 |
|
59 |
// Restore start time
|
60 |
-
$this->start = microtime(true);
|
61 |
|
62 |
// File amount by default 0 later we replace it with scan
|
63 |
$this->fileAmount = 0;
|
@@ -71,7 +70,7 @@
|
|
71 |
$this->fileAmount = intval($options['amount']);
|
72 |
}
|
73 |
if (isset($options['start'])) {
|
74 |
-
$this->start =
|
75 |
}
|
76 |
$this->continueFile = false;
|
77 |
if (isset($options['continueFile'])) {
|
@@ -168,6 +167,7 @@
|
|
168 |
$this->src = BMI_BACKUPS . DIRECTORY_SEPARATOR . $this->backup_name;
|
169 |
|
170 |
$this->v3Importer = null;
|
|
|
171 |
|
172 |
}
|
173 |
|
@@ -277,6 +277,91 @@
|
|
277 |
@unlink($tblmap);
|
278 |
}
|
279 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
280 |
}
|
281 |
|
282 |
public function makeUnZIP() {
|
@@ -676,43 +761,6 @@
|
|
676 |
|
677 |
}
|
678 |
|
679 |
-
private function rrmdir($dir) {
|
680 |
-
|
681 |
-
if (is_dir($dir)) {
|
682 |
-
|
683 |
-
$objects = scandir($dir);
|
684 |
-
foreach ($objects as $object) {
|
685 |
-
|
686 |
-
if ($object != "." && $object != "..") {
|
687 |
-
|
688 |
-
if (is_dir($dir . DIRECTORY_SEPARATOR . $object) && !is_link($dir . DIRECTORY_SEPARATOR . $object)) {
|
689 |
-
|
690 |
-
$this->rrmdir($dir . DIRECTORY_SEPARATOR . $object);
|
691 |
-
|
692 |
-
} else {
|
693 |
-
|
694 |
-
@unlink($dir . DIRECTORY_SEPARATOR . $object);
|
695 |
-
|
696 |
-
}
|
697 |
-
|
698 |
-
}
|
699 |
-
|
700 |
-
}
|
701 |
-
|
702 |
-
@rmdir($dir);
|
703 |
-
|
704 |
-
} else {
|
705 |
-
|
706 |
-
if (file_exists($dir) && is_file($dir)) {
|
707 |
-
|
708 |
-
@unlink($dir);
|
709 |
-
|
710 |
-
}
|
711 |
-
|
712 |
-
}
|
713 |
-
|
714 |
-
}
|
715 |
-
|
716 |
public function cleanupCurrentThemesAndPlugins() {
|
717 |
|
718 |
if ($this->cleanupbefore == true) {
|
@@ -1150,10 +1198,19 @@
|
|
1150 |
|
1151 |
}
|
1152 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1153 |
// Restore files
|
1154 |
$this->restoreBackupFromFiles($manifest);
|
1155 |
|
1156 |
-
|
1157 |
if (untrailingslashit($manifest->dbdomain) != untrailingslashit($this->siteurl)) {
|
1158 |
|
1159 |
// Restore WP Config if it's different domain
|
@@ -1207,7 +1264,12 @@
|
|
1207 |
$wasDisabled = 0;
|
1208 |
if ($this->v3engine) {
|
1209 |
|
1210 |
-
$this->
|
|
|
|
|
|
|
|
|
|
|
1211 |
$wasDisabled = 1;
|
1212 |
|
1213 |
} else if (!$this->splitting) {
|
@@ -1321,6 +1383,14 @@
|
|
1321 |
$manifest = $this->getCurrentManifest();
|
1322 |
}
|
1323 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1324 |
// Try to restore database
|
1325 |
if (!$this->isCLI) {
|
1326 |
|
@@ -1387,6 +1457,14 @@
|
|
1387 |
// And do the rest
|
1388 |
// Step 9 runs only at the end of database import
|
1389 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1390 |
// Get manifest
|
1391 |
if (!isset($manifest)) {
|
1392 |
$manifest = $this->getCurrentManifest();
|
@@ -1441,7 +1519,11 @@
|
|
1441 |
touch($autologin_file);
|
1442 |
|
1443 |
// Final verbose
|
1444 |
-
|
|
|
|
|
|
|
|
|
1445 |
Logger::log('Site restored...');
|
1446 |
|
1447 |
// Return success
|
33 |
// Requirements
|
34 |
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'manager.php';
|
35 |
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'better-restore.php';
|
|
|
36 |
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'smart-sort.php';
|
37 |
|
38 |
// IsCLI?
|
56 |
$this->cleanupbefore = Dashboard\bmi_get_config('OTHER:RESTORE:BEFORE:CLEANUP') ? true : false;
|
57 |
|
58 |
// Restore start time
|
59 |
+
$this->start = intval(microtime(true));
|
60 |
|
61 |
// File amount by default 0 later we replace it with scan
|
62 |
$this->fileAmount = 0;
|
70 |
$this->fileAmount = intval($options['amount']);
|
71 |
}
|
72 |
if (isset($options['start'])) {
|
73 |
+
$this->start = intval($options['start']);
|
74 |
}
|
75 |
$this->continueFile = false;
|
76 |
if (isset($options['continueFile'])) {
|
167 |
$this->src = BMI_BACKUPS . DIRECTORY_SEPARATOR . $this->backup_name;
|
168 |
|
169 |
$this->v3Importer = null;
|
170 |
+
$this->usingDbEngineV4 = null;
|
171 |
|
172 |
}
|
173 |
|
277 |
@unlink($tblmap);
|
278 |
}
|
279 |
|
280 |
+
$allowedFiles = ['wp-config.php', '.htaccess', '.litespeed', '.default.json'];
|
281 |
+
foreach (glob(untrailingslashit(ABSPATH) . DIRECTORY_SEPARATOR . 'backup-migration_??????????') as $filename) {
|
282 |
+
|
283 |
+
$basename = basename($filename);
|
284 |
+
|
285 |
+
if (is_dir($filename) && !in_array($basename, ['.', '..'])) {
|
286 |
+
$filesToBeRemoved[] = $filename;
|
287 |
+
}
|
288 |
+
|
289 |
+
}
|
290 |
+
|
291 |
+
foreach (glob(BMI_INCLUDES . DIRECTORY_SEPARATOR . 'htaccess' . DIRECTORY_SEPARATOR . '.*') as $filename) {
|
292 |
+
|
293 |
+
$basename = basename($filename);
|
294 |
+
|
295 |
+
if (in_array($basename, ['.', '..'])) continue;
|
296 |
+
if (is_file($filename) && !in_array($basename, $allowedFiles)) {
|
297 |
+
$filesToBeRemoved[] = $filename;
|
298 |
+
}
|
299 |
+
|
300 |
+
}
|
301 |
+
|
302 |
+
foreach (glob(BMI_INCLUDES . DIRECTORY_SEPARATOR . 'htaccess' . DIRECTORY_SEPARATOR . 'restore_scan_*') as $filename) {
|
303 |
+
|
304 |
+
$basename = basename($filename);
|
305 |
+
|
306 |
+
if (in_array($basename, ['.', '..'])) continue;
|
307 |
+
if (is_file($filename) && !in_array($basename, $allowedFiles)) {
|
308 |
+
$filesToBeRemoved[] = $filename;
|
309 |
+
}
|
310 |
+
|
311 |
+
}
|
312 |
+
|
313 |
+
foreach (glob(untrailingslashit(ABSPATH) . DIRECTORY_SEPARATOR . 'wp-config.??????????.php') as $filename) {
|
314 |
+
|
315 |
+
$basename = basename($filename);
|
316 |
+
|
317 |
+
if (in_array($basename, ['.', '..'])) continue;
|
318 |
+
if (is_file($filename) && !in_array($filename, $allowedFiles)) {
|
319 |
+
$filesToBeRemoved[] = $filename;
|
320 |
+
}
|
321 |
+
|
322 |
+
}
|
323 |
+
|
324 |
+
foreach ($filesToBeRemoved as $file) {
|
325 |
+
$this->rrmdir($file);
|
326 |
+
}
|
327 |
+
|
328 |
+
}
|
329 |
+
|
330 |
+
private function rrmdir($dir) {
|
331 |
+
|
332 |
+
if (is_dir($dir)) {
|
333 |
+
|
334 |
+
$objects = scandir($dir);
|
335 |
+
foreach ($objects as $object) {
|
336 |
+
|
337 |
+
if ($object != "." && $object != "..") {
|
338 |
+
|
339 |
+
if (is_dir($dir . DIRECTORY_SEPARATOR . $object) && !is_link($dir . DIRECTORY_SEPARATOR . $object)) {
|
340 |
+
|
341 |
+
$this->rrmdir($dir . DIRECTORY_SEPARATOR . $object);
|
342 |
+
|
343 |
+
} else {
|
344 |
+
|
345 |
+
@unlink($dir . DIRECTORY_SEPARATOR . $object);
|
346 |
+
|
347 |
+
}
|
348 |
+
|
349 |
+
}
|
350 |
+
|
351 |
+
}
|
352 |
+
|
353 |
+
@rmdir($dir);
|
354 |
+
|
355 |
+
} else {
|
356 |
+
|
357 |
+
if (file_exists($dir) && is_file($dir)) {
|
358 |
+
|
359 |
+
@unlink($dir);
|
360 |
+
|
361 |
+
}
|
362 |
+
|
363 |
+
}
|
364 |
+
|
365 |
}
|
366 |
|
367 |
public function makeUnZIP() {
|
761 |
|
762 |
}
|
763 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
764 |
public function cleanupCurrentThemesAndPlugins() {
|
765 |
|
766 |
if ($this->cleanupbefore == true) {
|
1198 |
|
1199 |
}
|
1200 |
|
1201 |
+
// Even remove extracted WP-config if it's different site.
|
1202 |
+
if (untrailingslashit($manifest->dbdomain) != untrailingslashit($this->siteurl)) {
|
1203 |
+
|
1204 |
+
// Unlink wp-config inside extracted directory
|
1205 |
+
$extractedWpConfigPath = $this->tmp . DIRECTORY_SEPARATOR . 'wordpress' . DIRECTORY_SEPARATOR . 'wp-config.php';
|
1206 |
+
if (file_exists($extractedWpConfigPath)) @unlink($extractedWpConfigPath);
|
1207 |
+
|
1208 |
+
}
|
1209 |
+
|
1210 |
// Restore files
|
1211 |
$this->restoreBackupFromFiles($manifest);
|
1212 |
|
1213 |
+
|
1214 |
if (untrailingslashit($manifest->dbdomain) != untrailingslashit($this->siteurl)) {
|
1215 |
|
1216 |
// Restore WP Config if it's different domain
|
1264 |
$wasDisabled = 0;
|
1265 |
if ($this->v3engine) {
|
1266 |
|
1267 |
+
if ($this->usingDbEngineV4) {
|
1268 |
+
$this->migration->log(__('Splitting process is disabled because v4 restore engine is enabled.', 'backup-backup'), 'INFO');
|
1269 |
+
} else {
|
1270 |
+
$this->migration->log(__('Splitting process is disabled because v3 restore engine is enabled.', 'backup-backup'), 'INFO');
|
1271 |
+
}
|
1272 |
+
|
1273 |
$wasDisabled = 1;
|
1274 |
|
1275 |
} else if (!$this->splitting) {
|
1383 |
$manifest = $this->getCurrentManifest();
|
1384 |
}
|
1385 |
|
1386 |
+
if (isset($manifest->db_backup_engine) && $manifest->db_backup_engine === 'v4') {
|
1387 |
+
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'even-better-restore-v4.php';
|
1388 |
+
$this->usingDbEngineV4 = true;
|
1389 |
+
} else {
|
1390 |
+
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'even-better-restore-v3.php';
|
1391 |
+
$this->usingDbEngineV4 = false;
|
1392 |
+
}
|
1393 |
+
|
1394 |
// Try to restore database
|
1395 |
if (!$this->isCLI) {
|
1396 |
|
1457 |
// And do the rest
|
1458 |
// Step 9 runs only at the end of database import
|
1459 |
|
1460 |
+
if (isset($manifest->db_backup_engine) && $manifest->db_backup_engine === 'v4') {
|
1461 |
+
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'even-better-restore-v4.php';
|
1462 |
+
$this->usingDbEngineV4 = true;
|
1463 |
+
} else {
|
1464 |
+
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'even-better-restore-v3.php';
|
1465 |
+
$this->usingDbEngineV4 = false;
|
1466 |
+
}
|
1467 |
+
|
1468 |
// Get manifest
|
1469 |
if (!isset($manifest)) {
|
1470 |
$manifest = $this->getCurrentManifest();
|
1519 |
touch($autologin_file);
|
1520 |
|
1521 |
// Final verbose
|
1522 |
+
if ((intval(microtime(true)) - intval($this->start)) > 0) {
|
1523 |
+
$this->migration->log(__('Restore process took: ', 'backup-backup') . (intval(microtime(true)) - intval($this->start)) . ' seconds.', 'INFO');
|
1524 |
+
} else {
|
1525 |
+
$this->migration->log(__('Restore process fully finished.', 'INFO'));
|
1526 |
+
}
|
1527 |
Logger::log('Site restored...');
|
1528 |
|
1529 |
// Return success
|
includes/initializer.php
CHANGED
@@ -1219,6 +1219,23 @@
|
|
1219 |
return $str;
|
1220 |
}
|
1221 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1222 |
public static function merge_arrays(&$array1, &$array2) {
|
1223 |
for ($i = 0; $i < sizeof($array2); ++$i) {
|
1224 |
$array1[] = $array2[$i];
|
1219 |
return $str;
|
1220 |
}
|
1221 |
|
1222 |
+
public static function canShareLogsOrShouldAsk() {
|
1223 |
+
|
1224 |
+
return 'not-allowed';
|
1225 |
+
|
1226 |
+
// REMOVED CODE:
|
1227 |
+
// $isAllowed = get_option('BMI_LOGS_SHARING_IS_ALLOWED', 'unknown');
|
1228 |
+
// $isAllowedConfig = Dashboard\bmi_get_config('LOGS::SHARING');
|
1229 |
+
//
|
1230 |
+
// if ($isAllowed == 'unknown' || empty($isAllowedConfig)) return 'ask';
|
1231 |
+
// else if ($isAllowed === 'yes' && $isAllowedConfig === 'yes') {
|
1232 |
+
// return 'allowed';
|
1233 |
+
// } else if ($isAllowed === 'no' && $isAllowedConfig === 'no') {
|
1234 |
+
// return 'not-allowed';
|
1235 |
+
// } else return 'ask';
|
1236 |
+
|
1237 |
+
}
|
1238 |
+
|
1239 |
public static function merge_arrays(&$array1, &$array2) {
|
1240 |
for ($i = 0; $i < sizeof($array2); ++$i) {
|
1241 |
$array1[] = $array2[$i];
|
includes/logger.php
CHANGED
File without changes
|
includes/progress/zip.php
CHANGED
@@ -37,7 +37,7 @@
|
|
37 |
|
38 |
}
|
39 |
|
40 |
-
public function createManifest() {
|
41 |
|
42 |
global $table_prefix;
|
43 |
|
@@ -56,6 +56,7 @@
|
|
56 |
'dbdomain' => get_option('siteurl'),
|
57 |
'uid' => get_current_user_id(),
|
58 |
'source_query_output' => BMI_DB_MAX_ROWS_PER_QUERY,
|
|
|
59 |
'config' => array(
|
60 |
'ABSPATH' => ABSPATH,
|
61 |
'DB_NAME' => DB_NAME,
|
37 |
|
38 |
}
|
39 |
|
40 |
+
public function createManifest($dbBackupEngine = 'v4') {
|
41 |
|
42 |
global $table_prefix;
|
43 |
|
56 |
'dbdomain' => get_option('siteurl'),
|
57 |
'uid' => get_current_user_id(),
|
58 |
'source_query_output' => BMI_DB_MAX_ROWS_PER_QUERY,
|
59 |
+
'db_backup_engine' => $dbBackupEngine,
|
60 |
'config' => array(
|
61 |
'ABSPATH' => ABSPATH,
|
62 |
'DB_NAME' => DB_NAME,
|
includes/scanner/backups.php
CHANGED
File without changes
|
includes/scanner/files.php
CHANGED
File without changes
|
includes/zipper/src/zip.php
CHANGED
@@ -163,11 +163,26 @@ class Zip {
|
|
163 |
|
164 |
} else {
|
165 |
|
166 |
-
|
167 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
|
169 |
-
// Get database dump
|
170 |
-
$this->zip_progress->log(__("Making database backup (using V2 engine, requires at least v1.1.0 to restore)", 'backup-backup'), 'STEP');
|
171 |
$this->zip_progress->log(__("Iterating database...", 'backup-backup'), 'INFO');
|
172 |
|
173 |
if (!is_dir($better_database_files_dir)) @mkdir($better_database_files_dir, 0755, true);
|
@@ -276,7 +291,7 @@ class Zip {
|
|
276 |
}
|
277 |
}
|
278 |
|
279 |
-
$lib->addFromString('bmi_backup_manifest.json', $this->zip_progress->createManifest());
|
280 |
$lib->addFromString('bmi_logs_this_backup.log', $logs);
|
281 |
$this->zip_progress->progress($max . '/' . $max);
|
282 |
|
@@ -302,7 +317,7 @@ class Zip {
|
|
302 |
|
303 |
// Run the backup in background
|
304 |
if ((!defined('BMI_USING_CLI_FUNCTIONALITY') || BMI_USING_CLI_FUNCTIONALITY === false) && ($legacy === false || BMI_CLI_ENABLED === true) && sizeof($this->org_files) > 10) {
|
305 |
-
file_put_contents($database_file_dir . 'bmi_backup_manifest.json', $this->zip_progress->createManifest());
|
306 |
$url = plugins_url(null) . '/backup-backup/includes/backup-heart.php';
|
307 |
$identy = 'BMI-' . rand(10000000, 999999999);
|
308 |
$remote_settings = [
|
@@ -320,6 +335,7 @@ class Zip {
|
|
320 |
'abs_dir' => trailingslashit(ABSPATH),
|
321 |
'root_dir' => plugin_dir_path(BMI_ROOT_FILE),
|
322 |
'browser' => false,
|
|
|
323 |
'url' => $url
|
324 |
];
|
325 |
|
@@ -508,7 +524,7 @@ class Zip {
|
|
508 |
|
509 |
$this->zip_progress->end();
|
510 |
|
511 |
-
file_put_contents($database_file_dir . 'bmi_backup_manifest.json', $this->zip_progress->createManifest());
|
512 |
file_put_contents($database_file_dir . 'bmi_logs_this_backup.log', file_get_contents(BMI_BACKUPS . DIRECTORY_SEPARATOR . 'latest.log'));
|
513 |
|
514 |
$this->zip_progress->start(true);
|
163 |
|
164 |
} else {
|
165 |
|
166 |
+
$dbBackupEngine = 'v4';
|
167 |
+
|
168 |
+
if ($dbBackupEngine == 'v4') {
|
169 |
+
|
170 |
+
// Require Database Manager
|
171 |
+
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'better-backup-v3.php';
|
172 |
+
|
173 |
+
// Get database dump
|
174 |
+
$this->zip_progress->log(__("Making database backup (using v3 engine, requires at least v1.2.2 to restore)", 'backup-backup'), 'STEP');
|
175 |
+
|
176 |
+
} else {
|
177 |
+
|
178 |
+
// Require Database Manager
|
179 |
+
require_once BMI_INCLUDES . DIRECTORY_SEPARATOR . 'database' . DIRECTORY_SEPARATOR . 'better-backup.php';
|
180 |
+
|
181 |
+
// Get database dump
|
182 |
+
$this->zip_progress->log(__("Making database backup (using v2 engine, requires at least v1.1.0 to restore)", 'backup-backup'), 'STEP');
|
183 |
+
|
184 |
+
}
|
185 |
|
|
|
|
|
186 |
$this->zip_progress->log(__("Iterating database...", 'backup-backup'), 'INFO');
|
187 |
|
188 |
if (!is_dir($better_database_files_dir)) @mkdir($better_database_files_dir, 0755, true);
|
291 |
}
|
292 |
}
|
293 |
|
294 |
+
$lib->addFromString('bmi_backup_manifest.json', $this->zip_progress->createManifest($dbBackupEngine));
|
295 |
$lib->addFromString('bmi_logs_this_backup.log', $logs);
|
296 |
$this->zip_progress->progress($max . '/' . $max);
|
297 |
|
317 |
|
318 |
// Run the backup in background
|
319 |
if ((!defined('BMI_USING_CLI_FUNCTIONALITY') || BMI_USING_CLI_FUNCTIONALITY === false) && ($legacy === false || BMI_CLI_ENABLED === true) && sizeof($this->org_files) > 10) {
|
320 |
+
file_put_contents($database_file_dir . 'bmi_backup_manifest.json', $this->zip_progress->createManifest($dbBackupEngine));
|
321 |
$url = plugins_url(null) . '/backup-backup/includes/backup-heart.php';
|
322 |
$identy = 'BMI-' . rand(10000000, 999999999);
|
323 |
$remote_settings = [
|
335 |
'abs_dir' => trailingslashit(ABSPATH),
|
336 |
'root_dir' => plugin_dir_path(BMI_ROOT_FILE),
|
337 |
'browser' => false,
|
338 |
+
'shareallowed' => BMP::canShareLogsOrShouldAsk(),
|
339 |
'url' => $url
|
340 |
];
|
341 |
|
524 |
|
525 |
$this->zip_progress->end();
|
526 |
|
527 |
+
file_put_contents($database_file_dir . 'bmi_backup_manifest.json', $this->zip_progress->createManifest($dbBackupEngine));
|
528 |
file_put_contents($database_file_dir . 'bmi_logs_this_backup.log', file_get_contents(BMI_BACKUPS . DIRECTORY_SEPARATOR . 'latest.log'));
|
529 |
|
530 |
$this->zip_progress->start(true);
|
includes/zipper/zipping.php
CHANGED
File without changes
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: Migrate
|
3 |
Tags: Backup, Migration, Migrate, Backups, Restore, All In One, Duplicate, Clone, Import, Export, Transfer
|
4 |
Requires at least: 4.6
|
5 |
-
Tested up to: 6.0
|
6 |
-
Stable tag: 1.2.
|
7 |
License: GPLv3
|
8 |
Requires PHP: 5.6
|
9 |
|
@@ -73,7 +73,7 @@ Backup file size depends on the criteria you select on the “What will be backe
|
|
73 |
|
74 |
Yes. You can create full site backups, automatic backups, and migrate your site (duplicate site) free of charge. [Backup Migration Pro](https://sellcodes.com/oZxnXtc2) provides more sophisticated filters and selections of files that will be included/excluded from backups (affecting backup size), faster backup creation times, number of external backup storage locations, backup encryption, backup file compression methods, advanced backup triggers, additional backup notifications by email, priority support, and more.
|
75 |
|
76 |
-
= Is cloud backup available?
|
77 |
Backup to cloud are some of the upcoming features, that will be available,
|
78 |
In Free version: Google Drive, FTP, Amazon S3, Rackspace, DreamObjects, Openstack and
|
79 |
In Premium version: Google cloud, SFTP/SCP, Microsoft Azure, OneDrive, Backblaze, and more.
|
@@ -89,11 +89,13 @@ Besides having the most intuitive interface and smoothest user experience, Backu
|
|
89 |
- XCloner: Automatic backups are dependant on wp cron; full restore not available on a local server;
|
90 |
- Total Upkeep: They lack the advanced selective backups and exclusion rules, lacks a monthly backup schedule
|
91 |
|
92 |
-
=
|
|
|
93 |
|
|
|
94 |
So far we have translated the plugin into these languages:
|
95 |
|
96 |
-
Arabic: [إنشاء نسخة احتياطية واستعادة النسخ الاحتياطية وترحيل المواقع. أفضل مكون إضافي لمواقع الترحيل والاستنساخ!]
|
97 |
Chinese (China): [创建备份、还原备份和迁移站点。 迁移和克隆网站的最佳插件!](https://cn.wordpress.org/plugins/backup-backup/)
|
98 |
Croatian: [Izradite sigurnosnu kopiju, vratite sigurnosne kopije i migrirajte web-mjesta. Najbolji dodatak za migraciju i kloniranje web stranica!](https://hr.wordpress.org/plugins/backup-backup/)
|
99 |
Dutch: [Maak back-ups, herstel back-ups en migreer sites. De beste plug-in voor het migreren en klonen van websites!](https://nl.wordpress.org/plugins/backup-backup/)
|
@@ -141,6 +143,27 @@ Vietnamese: [Tạo sao lưu, khôi phục các bản sao lưu và di chuyển c
|
|
141 |
|
142 |
== Changelog ==
|
143 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
= 1.2.1 =
|
145 |
* Adjusted typos in our FAQ for migration process
|
146 |
* Updated blacklist of plugins to activate after migration
|
@@ -380,17 +403,24 @@ Vietnamese: [Tạo sao lưu, khôi phục các bản sao lưu và di chuyển c
|
|
380 |
* Initial release
|
381 |
|
382 |
== Upgrade Notice ==
|
383 |
-
= 1.2.
|
384 |
-
What's new in 1.2.
|
385 |
-
*
|
386 |
-
*
|
387 |
-
*
|
388 |
-
*
|
389 |
-
*
|
390 |
-
*
|
391 |
-
* Added
|
392 |
-
*
|
393 |
-
*
|
394 |
-
*
|
395 |
-
* Added
|
396 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Contributors: Migrate
|
3 |
Tags: Backup, Migration, Migrate, Backups, Restore, All In One, Duplicate, Clone, Import, Export, Transfer
|
4 |
Requires at least: 4.6
|
5 |
+
Tested up to: 6.0.1
|
6 |
+
Stable tag: 1.2.2
|
7 |
License: GPLv3
|
8 |
Requires PHP: 5.6
|
9 |
|
73 |
|
74 |
Yes. You can create full site backups, automatic backups, and migrate your site (duplicate site) free of charge. [Backup Migration Pro](https://sellcodes.com/oZxnXtc2) provides more sophisticated filters and selections of files that will be included/excluded from backups (affecting backup size), faster backup creation times, number of external backup storage locations, backup encryption, backup file compression methods, advanced backup triggers, additional backup notifications by email, priority support, and more.
|
75 |
|
76 |
+
= Is cloud backup available? =
|
77 |
Backup to cloud are some of the upcoming features, that will be available,
|
78 |
In Free version: Google Drive, FTP, Amazon S3, Rackspace, DreamObjects, Openstack and
|
79 |
In Premium version: Google cloud, SFTP/SCP, Microsoft Azure, OneDrive, Backblaze, and more.
|
89 |
- XCloner: Automatic backups are dependant on wp cron; full restore not available on a local server;
|
90 |
- Total Upkeep: They lack the advanced selective backups and exclusion rules, lacks a monthly backup schedule
|
91 |
|
92 |
+
= How to upload my backup file? =
|
93 |
+
Uploading a backup can be simply done by navigating to the Manage & Restore Backup(s) section of the BM plugin (tab on the right side). There you have “Upload backup file” button, after clicking on it, you need to select a proper backup that is made by this plugin only. You cannot use backups from other plugins (to restore those, go back to those plugins and restore them this way). If you use “Super-quick migration” (section b), your backup will ba automaticaly uploaded. If you are having trouble uploading the backup file, go bac and ensure that the folder designated for backups is writtable. You can find the backup destination in plugin section “Where shall the backup(s) be stored?
|
94 |
|
95 |
+
= Is the plugin also available in my language? =
|
96 |
So far we have translated the plugin into these languages:
|
97 |
|
98 |
+
Arabic: [إنشاء نسخة احتياطية واستعادة النسخ الاحتياطية وترحيل المواقع. أفضل مكون إضافي لمواقع الترحيل والاستنساخ!](https://ar.wordpress.org/plugins/backup-backup/)
|
99 |
Chinese (China): [创建备份、还原备份和迁移站点。 迁移和克隆网站的最佳插件!](https://cn.wordpress.org/plugins/backup-backup/)
|
100 |
Croatian: [Izradite sigurnosnu kopiju, vratite sigurnosne kopije i migrirajte web-mjesta. Najbolji dodatak za migraciju i kloniranje web stranica!](https://hr.wordpress.org/plugins/backup-backup/)
|
101 |
Dutch: [Maak back-ups, herstel back-ups en migreer sites. De beste plug-in voor het migreren en klonen van websites!](https://nl.wordpress.org/plugins/backup-backup/)
|
143 |
|
144 |
== Changelog ==
|
145 |
|
146 |
+
= 1.2.2 =
|
147 |
+
* Fixed some plugin conflicts causing styling issues in our plugin
|
148 |
+
* Removed unnecessary error logging
|
149 |
+
* Resolved issues with PHP 8 and PHP 8.1 internal log format
|
150 |
+
* Added more blacklisted tables to restoration process
|
151 |
+
* Added pre-loader between calculation and backup load
|
152 |
+
* Added new troubleshooting method, allows to share complete logs with one click
|
153 |
+
* Added new backup and restoration engine for database (much quicker!)
|
154 |
+
* Decreased possibility of out of memory issues during URL adjustment
|
155 |
+
* Improved stability of PHP CLI restoration process
|
156 |
+
* Fixed issues of too quick restorations, decreasing false-positive errors
|
157 |
+
* Added handler for browser-side errors, decreasing chance of frozen process
|
158 |
+
* Fixed issues when log in pop-up was display during or after restoration
|
159 |
+
* Fixed issues when backed-up wp-config.php was overriding main wp-config.php
|
160 |
+
* Adjusted log display to be more smooth (no delays, quicker steps update)
|
161 |
+
* Fixed formatting issues in readme file (FAQ)
|
162 |
+
* Fixed automatic cleanup of files after migration
|
163 |
+
* Fixed issue when restoration was not continued after download (Super-Quick Migration)
|
164 |
+
* Modified error windows for backup and restore process
|
165 |
+
* Tested with WordPress 6.0.1
|
166 |
+
|
167 |
= 1.2.1 =
|
168 |
* Adjusted typos in our FAQ for migration process
|
169 |
* Updated blacklist of plugins to activate after migration
|
403 |
* Initial release
|
404 |
|
405 |
== Upgrade Notice ==
|
406 |
+
= 1.2.2 =
|
407 |
+
What's new in 1.2.2?
|
408 |
+
* Fixed some plugin conflicts causing styling issues in our plugin
|
409 |
+
* Removed unnecessary error logging
|
410 |
+
* Resolved issues with PHP 8 and PHP 8.1 internal log format
|
411 |
+
* Added more blacklisted tables to restoration process
|
412 |
+
* Added pre-loader between calculation and backup load
|
413 |
+
* Added new troubleshooting method, allows to share complete logs with one click
|
414 |
+
* Added new backup and restoration engine for database (much quicker!)
|
415 |
+
* Decreased possibility of out of memory issues during URL adjustment
|
416 |
+
* Improved stability of PHP CLI restoration process
|
417 |
+
* Fixed issues of too quick restorations, decreasing false-positive errors
|
418 |
+
* Added handler for browser-side errors, decreasing chance of frozen process
|
419 |
+
* Fixed issues when log in pop-up was display during or after restoration
|
420 |
+
* Fixed issues when backed-up wp-config.php was overriding main wp-config.php
|
421 |
+
* Adjusted log display to be more smooth (no delays, quicker steps update)
|
422 |
+
* Fixed formatting issues in readme file (FAQ)
|
423 |
+
* Fixed automatic cleanup of files after migration
|
424 |
+
* Fixed issue when restoration was not continued after download (Super-Quick Migration)
|
425 |
+
* Modified error windows for backup and restore process
|
426 |
+
* Tested with WordPress 6.0.1
|
uninstall.php
CHANGED
File without changes
|