(function(n){"use strict";typeof define=="function"&&define.amd?define(["jquery","jquery-ui/ui/widget"],n):typeof exports=="object"?n(require("jquery"),require("./vendor/jquery.ui.widget")):n(window.jQuery)})(function(n){"use strict";function t(t){var i=t==="dragover";return function(r){r.dataTransfer=r.originalEvent&&r.originalEvent.dataTransfer;var u=r.dataTransfer;u&&n.inArray("Files",u.types)!==-1&&this._trigger(t,n.Event(t,{delegatedEvent:r}))!==!1&&(r.preventDefault(),i&&(u.dropEffect="copy"))}}n.support.fileInput=!(new RegExp("(Android (1\\.[0156]|2\\.[01]))|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)|(w(eb)?OSBrowser)|(webOS)|(Kindle/(1\\.0|2\\.[05]|3\\.0))").test(window.navigator.userAgent)||n('<input type="file"/>').prop("disabled"));n.support.xhrFileUpload=!!(window.ProgressEvent&&window.FileReader);n.support.xhrFormDataFileUpload=!!window.FormData;n.support.blobSlice=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);n.widget("blueimp.fileupload",{options:{dropZone:n(document),pasteZone:undefined,fileInput:undefined,replaceFileInput:!0,paramName:undefined,singleFileUploads:!0,limitMultiFileUploads:undefined,limitMultiFileUploadSize:undefined,limitMultiFileUploadSizeOverhead:512,sequentialUploads:!1,limitConcurrentUploads:undefined,forceIframeTransport:!1,redirect:undefined,redirectParamName:undefined,postMessage:undefined,multipart:!0,maxChunkSize:undefined,uploadedBytes:undefined,recalculateProgress:!0,progressInterval:100,bitrateInterval:500,autoUpload:!0,uniqueFilenames:undefined,messages:{uploadedBytes:"Uploaded bytes exceed file size"},i18n:function(t,i){return t=this.messages[t]||t.toString(),i&&n.each(i,function(n,i){t=t.replace("{"+n+"}",i)}),t},formData:function(n){return n.serializeArray()},add:function(t,i){if(t.isDefaultPrevented())return!1;(i.autoUpload||i.autoUpload!==!1&&n(this).fileupload("option","autoUpload"))&&i.process().done(function(){i.submit()})},processData:!1,contentType:!1,cache:!1,timeout:0},_specialOptions:["fileInput","dropZone","pasteZone","multipart","forceIframeTransport"],_blobSlice:n.support.blobSlice&&function(){var n=this.slice||this.webkitSlice||this.mozSlice;return n.apply(this,arguments)},_BitrateTimer:function(){this.timestamp=Date.now?Date.now():(new Date).getTime();this.loaded=0;this.bitrate=0;this.getBitrate=function(n,t,i){var r=n-this.timestamp;return(!this.bitrate||!i||r>i)&&(this.bitrate=(t-this.loaded)*(1e3/r)*8,this.loaded=t,this.timestamp=n),this.bitrate}},_isXHRUpload:function(t){return!t.forceIframeTransport&&(!t.multipart&&n.support.xhrFileUpload||n.support.xhrFormDataFileUpload)},_getFormData:function(t){var i;return n.type(t.formData)==="function"?t.formData(t.form):n.isArray(t.formData)?t.formData:n.type(t.formData)==="object"?(i=[],n.each(t.formData,function(n,t){i.push({name:n,value:t})}),i):[]},_getTotal:function(t){var i=0;return n.each(t,function(n,t){i+=t.size||1}),i},_initProgressObject:function(t){var i={loaded:0,total:0,bitrate:0};t._progress?n.extend(t._progress,i):t._progress=i},_initResponseObject:function(n){var t;if(n._response)for(t in n._response)Object.prototype.hasOwnProperty.call(n._response,t)&&delete n._response[t];else n._response={}},_onProgress:function(t,i){if(t.lengthComputable){var r=Date.now?Date.now():(new Date).getTime(),u;if(i._time&&i.progressInterval&&r-i._time<i.progressInterval&&t.loaded!==t.total)return;i._time=r;u=Math.floor(t.loaded/t.total*(i.chunkSize||i._progress.total))+(i.uploadedBytes||0);this._progress.loaded+=u-i._progress.loaded;this._progress.bitrate=this._bitrateTimer.getBitrate(r,this._progress.loaded,i.bitrateInterval);i._progress.loaded=i.loaded=u;i._progress.bitrate=i.bitrate=i._bitrateTimer.getBitrate(r,u,i.bitrateInterval);this._trigger("progress",n.Event("progress",{delegatedEvent:t}),i);this._trigger("progressall",n.Event("progressall",{delegatedEvent:t}),this._progress)}},_initProgressListener:function(t){var r=this,i=t.xhr?t.xhr():n.ajaxSettings.xhr();i.upload&&(n(i.upload).bind("progress",function(n){var i=n.originalEvent;n.lengthComputable=i.lengthComputable;n.loaded=i.loaded;n.total=i.total;r._onProgress(n,t)}),t.xhr=function(){return i})},_deinitProgressListener:function(t){var i=t.xhr?t.xhr():n.ajaxSettings.xhr();i.upload&&n(i.upload).unbind("progress")},_isInstanceOf:function(n,t){return Object.prototype.toString.call(t)==="[object "+n+"]"},_getUniqueFilename:function(n,t){return(n=String(n),t[n])?(n=n.replace(/(?: \(([\d]+)\))?(\.[^.]+)?$/,function(n,t,i){var r=t?Number(t)+1:1,u=i||"";return" ("+r+")"+u}),this._getUniqueFilename(n,t)):(t[n]=!0,n)},_initXHRData:function(t){var u=this,i,r=t.files[0],e=t.multipart||!n.support.xhrFileUpload,f=n.type(t.paramName)==="array"?t.paramName[0]:t.paramName;t.headers=n.extend({},t.headers);t.contentRange&&(t.headers["Content-Range"]=t.contentRange);e&&!t.blob&&this._isInstanceOf("File",r)||(t.headers["Content-Disposition"]='attachment; filename="'+encodeURI(r.uploadName||r.name)+'"');e?n.support.xhrFormDataFileUpload&&(t.postMessage?(i=this._getFormData(t),t.blob?i.push({name:f,value:t.blob}):n.each(t.files,function(r,u){i.push({name:n.type(t.paramName)==="array"&&t.paramName[r]||f,value:u})})):(u._isInstanceOf("FormData",t.formData)?i=t.formData:(i=new FormData,n.each(this._getFormData(t),function(n,t){i.append(t.name,t.value)})),t.blob?i.append(f,t.blob,r.uploadName||r.name):n.each(t.files,function(r,e){if(u._isInstanceOf("File",e)||u._isInstanceOf("Blob",e)){var o=e.uploadName||e.name;t.uniqueFilenames&&(o=u._getUniqueFilename(o,t.uniqueFilenames));i.append(n.type(t.paramName)==="array"&&t.paramName[r]||f,e,o)}})),t.data=i):(t.contentType=r.type||"application/octet-stream",t.data=t.blob||r);t.blob=null},_initIframeSettings:function(t){var i=n("<a><\/a>").prop("href",t.url).prop("host");t.dataType="iframe "+(t.dataType||"");t.formData=this._getFormData(t);t.redirect&&i&&i!==location.host&&t.formData.push({name:t.redirectParamName||"redirect",value:t.redirect})},_initDataSettings:function(n){this._isXHRUpload(n)?(this._chunkedUpload(n,!0)||(n.data||this._initXHRData(n),this._initProgressListener(n)),n.postMessage&&(n.dataType="postmessage "+(n.dataType||""))):this._initIframeSettings(n)},_getParamName:function(t){var r=n(t.fileInput),i=t.paramName;return i?n.isArray(i)||(i=[i]):(i=[],r.each(function(){for(var t=n(this),u=t.prop("name")||"files[]",r=(t.prop("files")||[1]).length;r;)i.push(u),r-=1}),i.length||(i=[r.prop("name")||"files[]"])),i},_initFormSettings:function(t){t.form&&t.form.length||(t.form=n(t.fileInput.prop("form")),t.form.length||(t.form=n(this.options.fileInput.prop("form"))));t.paramName=this._getParamName(t);t.url||(t.url=t.form.prop("action")||location.href);t.type=(t.type||n.type(t.form.prop("method"))==="string"&&t.form.prop("method")||"").toUpperCase();t.type!=="POST"&&t.type!=="PUT"&&t.type!=="PATCH"&&(t.type="POST");t.formAcceptCharset||(t.formAcceptCharset=t.form.attr("accept-charset"))},_getAJAXSettings:function(t){var i=n.extend({},this.options,t);return this._initFormSettings(i),this._initDataSettings(i),i},_getDeferredState:function(n){return n.state?n.state():n.isResolved()?"resolved":n.isRejected()?"rejected":"pending"},_enhancePromise:function(n){return n.success=n.done,n.error=n.fail,n.complete=n.always,n},_getXHRPromise:function(t,i,r){var u=n.Deferred(),f=u.promise();return i=i||this.options.context||f,t===!0?u.resolveWith(i,r):t===!1&&u.rejectWith(i,r),f.abort=u.promise,this._enhancePromise(f)},_addConvenienceMethods:function(t,i){var r=this,u=function(t){return n.Deferred().resolveWith(r,t).promise()};i.process=function(t,f){return(t||f)&&(i._processQueue=this._processQueue=(this._processQueue||u([this])).then(function(){return i.errorThrown?n.Deferred().rejectWith(r,[i]).promise():u(arguments)}).then(t,f)),this._processQueue||u([this])};i.submit=function(){return this.state()!=="pending"&&(i.jqXHR=this.jqXHR=r._trigger("submit",n.Event("submit",{delegatedEvent:t}),this)!==!1&&r._onSend(t,this)),this.jqXHR||r._getXHRPromise()};i.abort=function(){return this.jqXHR?this.jqXHR.abort():(this.errorThrown="abort",r._trigger("fail",null,this),r._getXHRPromise(!1))};i.state=function(){return this.jqXHR?r._getDeferredState(this.jqXHR):this._processQueue?r._getDeferredState(this._processQueue):void 0};i.processing=function(){return!this.jqXHR&&this._processQueue&&r._getDeferredState(this._processQueue)==="pending"};i.progress=function(){return this._progress};i.response=function(){return this._response}},_getUploadedBytes:function(n){var i=n.getResponseHeader("Range"),t=i&&i.split("-"),r=t&&t.length>1&&parseInt(t[1],10);return r&&r+1},_chunkedUpload:function(t,i){t.uploadedBytes=t.uploadedBytes||0;var r=this,e=t.files[0],o=e.size,u=t.uploadedBytes,f=t.maxChunkSize||o,l=this._blobSlice,s=n.Deferred(),h=s.promise(),a,c;return!(this._isXHRUpload(t)&&l&&(u||(n.type(f)==="function"?f(t):f)<o))||t.data?!1:i?!0:u>=o?(e.error=t.i18n("uploadedBytes"),this._getXHRPromise(!1,t.context,[null,"error",e.error])):(c=function(){var i=n.extend({},t),h=i._progress.loaded;i.blob=l.call(e,u,u+(n.type(f)==="function"?f(i):f),e.type);i.chunkSize=i.blob.size;i.contentRange="bytes "+u+"-"+(u+i.chunkSize-1)+"/"+o;r._trigger("chunkbeforesend",null,i);r._initXHRData(i);r._initProgressListener(i);a=(r._trigger("chunksend",null,i)!==!1&&n.ajax(i)||r._getXHRPromise(!1,i.context)).done(function(f,e,l){u=r._getUploadedBytes(l)||u+i.chunkSize;h+i.chunkSize-i._progress.loaded&&r._onProgress(n.Event("progress",{lengthComputable:!0,loaded:u-i.uploadedBytes,total:u-i.uploadedBytes}),i);t.uploadedBytes=i.uploadedBytes=u;i.result=f;i.textStatus=e;i.jqXHR=l;r._trigger("chunkdone",null,i);r._trigger("chunkalways",null,i);u<o?c():s.resolveWith(i.context,[f,e,l])}).fail(function(n,t,u){i.jqXHR=n;i.textStatus=t;i.errorThrown=u;r._trigger("chunkfail",null,i);r._trigger("chunkalways",null,i);s.rejectWith(i.context,[n,t,u])}).always(function(){r._deinitProgressListener(i)})},this._enhancePromise(h),h.abort=function(){return a.abort()},c(),h)},_beforeSend:function(n,t){this._active===0&&(this._trigger("start"),this._bitrateTimer=new this._BitrateTimer,this._progress.loaded=this._progress.total=0,this._progress.bitrate=0);this._initResponseObject(t);this._initProgressObject(t);t._progress.loaded=t.loaded=t.uploadedBytes||0;t._progress.total=t.total=this._getTotal(t.files)||1;t._progress.bitrate=t.bitrate=0;this._active+=1;this._progress.loaded+=t.loaded;this._progress.total+=t.total},_onDone:function(t,i,r,u){var f=u._progress.total,e=u._response;u._progress.loaded<f&&this._onProgress(n.Event("progress",{lengthComputable:!0,loaded:f,total:f}),u);e.result=u.result=t;e.textStatus=u.textStatus=i;e.jqXHR=u.jqXHR=r;this._trigger("done",null,u)},_onFail:function(n,t,i,r){var u=r._response;r.recalculateProgress&&(this._progress.loaded-=r._progress.loaded,this._progress.total-=r._progress.total);u.jqXHR=r.jqXHR=n;u.textStatus=r.textStatus=t;u.errorThrown=r.errorThrown=i;this._trigger("fail",null,r)},_onAlways:function(n,t,i,r){this._trigger("always",null,r)},_onSend:function(t,i){i.submit||this._addConvenienceMethods(t,i);var r=this,f,s,e,h,u=r._getAJAXSettings(i),o=function(){return r._sending+=1,u._bitrateTimer=new r._BitrateTimer,f=f||((s||r._trigger("send",n.Event("send",{delegatedEvent:t}),u)===!1)&&r._getXHRPromise(!1,u.context,s)||r._chunkedUpload(u)||n.ajax(u)).done(function(n,t,i){r._onDone(n,t,i,u)}).fail(function(n,t,i){r._onFail(n,t,i,u)}).always(function(n,t,i){if(r._deinitProgressListener(u),r._onAlways(n,t,i,u),r._sending-=1,r._active-=1,u.limitConcurrentUploads&&u.limitConcurrentUploads>r._sending)for(var f=r._slots.shift();f;){if(r._getDeferredState(f)==="pending"){f.resolve();break}f=r._slots.shift()}r._active===0&&r._trigger("stop")})};return(this._beforeSend(t,u),this.options.sequentialUploads||this.options.limitConcurrentUploads&&this.options.limitConcurrentUploads<=this._sending)?(this.options.limitConcurrentUploads>1?(e=n.Deferred(),this._slots.push(e),h=e.then(o)):(this._sequence=this._sequence.then(o,o),h=this._sequence),h.abort=function(){return(s=[undefined,"abort","abort"],!f)?(e&&e.rejectWith(u.context,s),o()):f.abort()},this._enhancePromise(h)):o()},_onAdd:function(t,i){var a=this,p=!0,f=n.extend({},this.options,i),u=i.files,v=u.length,o=f.limitMultiFileUploads,c=f.limitMultiFileUploadSize,b=f.limitMultiFileUploadSizeOverhead,w=0,l=this._getParamName(f),s,e,h,r,y=0;if(!v)return!1;if(c&&u[0].size===undefined&&(c=undefined),(f.singleFileUploads||o||c)&&this._isXHRUpload(f))if(f.singleFileUploads||c||!o)if(!f.singleFileUploads&&c)for(h=[],s=[],r=0;r<v;r=r+1)w+=u[r].size+b,(r+1===v||w+u[r+1].size+b>c||o&&r+1-y>=o)&&(h.push(u.slice(y,r+1)),e=l.slice(y,r+1),e.length||(e=l),s.push(e),y=r+1,w=0);else s=l;else for(h=[],s=[],r=0;r<v;r+=o)h.push(u.slice(r,r+o)),e=l.slice(r,r+o),e.length||(e=l),s.push(e);else h=[u],s=[l];return i.originalFiles=u,n.each(h||u,function(r,u){var f=n.extend({},i);return f.files=h?u:[u],f.paramName=s[r],a._initResponseObject(f),a._initProgressObject(f),a._addConvenienceMethods(t,f),p=a._trigger("add",n.Event("add",{delegatedEvent:t}),f)}),p},_replaceFileInput:function(t){var i=t.fileInput,r=i.clone(!0),u=i.is(document.activeElement);t.fileInputClone=r;n("<form><\/form>").append(r)[0].reset();i.after(r).detach();u&&r.focus();n.cleanData(i.unbind("remove"));this.options.fileInput=this.options.fileInput.map(function(n,t){return t===i[0]?r[0]:t});i[0]===this.element[0]&&(this.element=r)},_handleFileTreeEntry:function(t,i){var s=this,r=n.Deferred(),u=[],e,f=function(n){n&&!n.entry&&(n.entry=t);r.resolve([n])},h=function(n){s._handleFileTreeEntries(n,i+t.name+"/").done(function(n){r.resolve(n)}).fail(f)},o=function(){e.readEntries(function(n){n.length?(u=u.concat(n),o()):h(u)},f)};return i=i||"",t.isFile?t._file?(t._file.relativePath=i,r.resolve(t._file)):t.file(function(n){n.relativePath=i;r.resolve(n)},f):t.isDirectory?(e=t.createReader(),o()):r.resolve([]),r.promise()},_handleFileTreeEntries:function(t,i){var r=this;return n.when.apply(n,n.map(t,function(n){return r._handleFileTreeEntry(n,i)})).then(function(){return Array.prototype.concat.apply([],arguments)})},_getDroppedFiles:function(t){t=t||{};var i=t.items;return i&&i.length&&(i[0].webkitGetAsEntry||i[0].getAsEntry)?this._handleFileTreeEntries(n.map(i,function(n){var t;return n.webkitGetAsEntry?(t=n.webkitGetAsEntry(),t&&(t._file=n.getAsFile()),t):n.getAsEntry()})):n.Deferred().resolve(n.makeArray(t.files)).promise()},_getSingleFileInputFiles:function(t){t=n(t);var r=t.prop("webkitEntries")||t.prop("entries"),i,u;if(r&&r.length)return this._handleFileTreeEntries(r);if(i=n.makeArray(t.prop("files")),i.length)i[0].name===undefined&&i[0].fileName&&n.each(i,function(n,t){t.name=t.fileName;t.size=t.fileSize});else{if(u=t.prop("value"),!u)return n.Deferred().resolve([]).promise();i=[{name:u.replace(/^.*\\/,"")}]}return n.Deferred().resolve(i).promise()},_getFileInputFiles:function(t){return!(t instanceof n)||t.length===1?this._getSingleFileInputFiles(t):n.when.apply(n,n.map(t,this._getSingleFileInputFiles)).then(function(){return Array.prototype.concat.apply([],arguments)})},_onChange:function(t){var r=this,i={fileInput:n(t.target),form:n(t.target.form)};this._getFileInputFiles(i.fileInput).always(function(u){i.files=u;r.options.replaceFileInput&&r._replaceFileInput(i);r._trigger("change",n.Event("change",{delegatedEvent:t}),i)!==!1&&r._onAdd(t,i)})},_onPaste:function(t){var i=t.originalEvent&&t.originalEvent.clipboardData&&t.originalEvent.clipboardData.items,r={files:[]};i&&i.length&&(n.each(i,function(n,t){var i=t.getAsFile&&t.getAsFile();i&&r.files.push(i)}),this._trigger("paste",n.Event("paste",{delegatedEvent:t}),r)!==!1&&this._onAdd(t,r))},_onDrop:function(t){t.dataTransfer=t.originalEvent&&t.originalEvent.dataTransfer;var u=this,i=t.dataTransfer,r={};i&&i.files&&i.files.length&&(t.preventDefault(),this._getDroppedFiles(i).always(function(i){r.files=i;u._trigger("drop",n.Event("drop",{delegatedEvent:t}),r)!==!1&&u._onAdd(t,r)}))},_onDragOver:t("dragover"),_onDragEnter:t("dragenter"),_onDragLeave:t("dragleave"),_initEventHandlers:function(){this._isXHRUpload(this.options)&&(this._on(this.options.dropZone,{dragover:this._onDragOver,drop:this._onDrop,dragenter:this._onDragEnter,dragleave:this._onDragLeave}),this._on(this.options.pasteZone,{paste:this._onPaste}));n.support.fileInput&&this._on(this.options.fileInput,{change:this._onChange})},_destroyEventHandlers:function(){this._off(this.options.dropZone,"dragenter dragleave dragover drop");this._off(this.options.pasteZone,"paste");this._off(this.options.fileInput,"change")},_destroy:function(){this._destroyEventHandlers()},_setOption:function(t,i){var r=n.inArray(t,this._specialOptions)!==-1;r&&this._destroyEventHandlers();this._super(t,i);r&&(this._initSpecialOptions(),this._initEventHandlers())},_initSpecialOptions:function(){var t=this.options;t.fileInput===undefined?t.fileInput=this.element.is('input[type="file"]')?this.element:this.element.find('input[type="file"]'):t.fileInput instanceof n||(t.fileInput=n(t.fileInput));t.dropZone instanceof n||(t.dropZone=n(t.dropZone));t.pasteZone instanceof n||(t.pasteZone=n(t.pasteZone))},_getRegExp:function(n){var t=n.split("/"),i=t.pop();return t.shift(),new RegExp(t.join("/"),i)},_isRegExpOption:function(t,i){return t!=="url"&&n.type(i)==="string"&&/^\/.*\/[igm]{0,3}$/.test(i)},_initDataAttributes:function(){var t=this,i=this.options,r=this.element.data();n.each(this.element[0].attributes,function(n,u){var f=u.name.toLowerCase(),e;/^data-/.test(f)&&(f=f.slice(5).replace(/-[a-z]/g,function(n){return n.charAt(1).toUpperCase()}),e=r[f],t._isRegExpOption(f,e)&&(e=t._getRegExp(e)),i[f]=e)})},_create:function(){this._initDataAttributes();this._initSpecialOptions();this._slots=[];this._sequence=this._getXHRPromise(!0);this._sending=this._active=0;this._initProgressObject(this);this._initEventHandlers()},active:function(){return this._active},progress:function(){return this._progress},add:function(t){var i=this;t&&!this.options.disabled&&(t.fileInput&&!t.files?this._getFileInputFiles(t.fileInput).always(function(n){t.files=n;i._onAdd(null,t)}):(t.files=n.makeArray(t.files),this._onAdd(null,t)))},send:function(t){if(t&&!this.options.disabled){if(t.fileInput&&!t.files){var e=this,i=n.Deferred(),u=i.promise(),r,f;return u.abort=function(){return(f=!0,r)?r.abort():(i.reject(null,"abort","abort"),u)},this._getFileInputFiles(t.fileInput).always(function(n){if(!f){if(!n.length){i.reject();return}t.files=n;r=e._onSend(null,t);r.then(function(n,t,r){i.resolve(n,t,r)},function(n,t,r){i.reject(n,t,r)})}}),this._enhancePromise(u)}if(t.files=n.makeArray(t.files),t.files.length)return this._onSend(null,t)}return this._getXHRPromise(!1,t&&t.context)}})})