',existingFallback=Dropzone.createElement(existingFallback),"FORM"!==this.element.tagName?(form=Dropzone.createElement('')).appendChild(existingFallback):(this.element.setAttribute("enctype","multipart/form-data"),this.element.setAttribute("method",this.options.method)),null!=form?form:existingFallback)}},{key:"getExistingFallback",value:function(){for(var fallback,getFallback=function(elements){for(var _i13=0,_iterator13=_iterator13=elements;;){if(_i13>=_iterator13.length)break;var el=_iterator13[_i13++];if(/(^| )fallback($| )/.test(el.className))return el}},_arr=["div","form"],_i14=0;_i14<_arr.length;_i14++)if(fallback=getFallback(this.element.getElementsByTagName(_arr[_i14])))return fallback}},{key:"setupEventListeners",value:function(){return this.listeners.map(function(elementListeners){var event,result=[];for(event in elementListeners.events){var listener=elementListeners.events[event];result.push(elementListeners.element.addEventListener(event,listener,!1))}return result})}},{key:"removeEventListeners",value:function(){return this.listeners.map(function(elementListeners){var event,result=[];for(event in elementListeners.events){var listener=elementListeners.events[event];result.push(elementListeners.element.removeEventListener(event,listener,!1))}return result})}},{key:"disable",value:function(){var _this4=this;return this.clickableElements.forEach(function(element){return element.classList.remove("dz-clickable")}),this.removeEventListeners(),this.files.map(function(file){return _this4.cancelUpload(file)})}},{key:"enable",value:function(){return this.clickableElements.forEach(function(element){return element.classList.add("dz-clickable")}),this.setupEventListeners()}},{key:"filesize",value:function(size){var selectedSize=0,selectedUnit="b";if(0"+selectedSize+" "+this.options.dictFileSizeUnits[selectedUnit]}},{key:"_updateMaxFilesReachedClass",value:function(){return null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(this.getAcceptedFiles().length===this.options.maxFiles&&this.emit("maxfilesreached",this.files),this.element.classList.add("dz-max-files-reached")):this.element.classList.remove("dz-max-files-reached")}},{key:"drop",value:function(e){var files;e.dataTransfer&&(this.emit("drop",e),files=e.dataTransfer.files,this.emit("addedfiles",files),files.length)&&((e=e.dataTransfer.items)&&e.length&&null!=e[0].webkitGetAsEntry?this._addFilesFromItems(e):this.handleFiles(files))}},{key:"paste",value:function(e){if(null!=__guard__(null!=e?e.clipboardData:void 0,function(x){return x.items}))return this.emit("paste",e),(e=e.clipboardData.items).length?this._addFilesFromItems(e):void 0}},{key:"handleFiles",value:function(files){var _this5=this;return files.map(function(file){return _this5.addFile(file)})}},{key:"_addFilesFromItems",value:function(items){for(var _this6=this,result=[],_i15=0,_iterator14=_iterator14=items;!(_i15>=_iterator14.length);){var entry,item=_iterator14[_i15++];null!=item.webkitGetAsEntry&&(entry=item.webkitGetAsEntry())?entry.isFile?result.push(_this6.addFile(item.getAsFile())):entry.isDirectory?result.push(_this6._addFilesFromDirectory(entry,entry.name)):result.push(void 0):null!=item.getAsFile&&(null==item.kind||"file"===item.kind)?result.push(_this6.addFile(item.getAsFile())):result.push(void 0)}return result}},{key:"_addFilesFromDirectory",value:function(directory,path){var _this7=this,dirReader=directory.createReader(),errorHandler=function(error){return __guardMethod__(console,"log",function(o){return o.log(error)})};return function readEntries(){return dirReader.readEntries(function(entries){if(0=_iterator15.length)break;var entry=_iterator15[_i16++];entry.isFile?entry.file(function(file){if(!_this7.options.ignoreHiddenFiles||"."!==file.name.substring(0,1))return file.fullPath=path+"/"+file.name,_this7.addFile(file)}):entry.isDirectory&&_this7._addFilesFromDirectory(entry,path+"/"+entry.name)}readEntries()}return null},errorHandler)}()}},{key:"accept",value:function(file,done){return file.size>1024*this.options.maxFilesize*1024?done(this.options.dictFileTooBig.replace("{{filesize}}",Math.round(file.size/1024/10.24)/100).replace("{{maxFilesize}}",this.options.maxFilesize)):Dropzone.isValidFile(file,this.options.acceptedFiles)?null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles)),this.emit("maxfilesexceeded",file)):this.options.accept.call(this,file,done):done(this.options.dictInvalidFileType)}},{key:"addFile",value:function(file){var _this8=this;return file.upload={uuid:Dropzone.uuidv4(),progress:0,total:file.size,bytesSent:0,filename:this._renameFile(file),chunked:this.options.chunking&&(this.options.forceChunking||file.size>this.options.chunkSize),totalChunkCount:Math.ceil(file.size/this.options.chunkSize)},this.files.push(file),file.status=Dropzone.ADDED,this.emit("addedfile",file),this._enqueueThumbnail(file),this.accept(file,function(error){return error?(file.accepted=!1,_this8._errorProcessing([file],error)):(file.accepted=!0,_this8.options.autoQueue&&_this8.enqueueFile(file)),_this8._updateMaxFilesReachedClass()})}},{key:"enqueueFiles",value:function(files){for(var _i17=0,_iterator16=_iterator16=files;;){if(_i17>=_iterator16.length)break;var file=_iterator16[_i17++];this.enqueueFile(file)}return null}},{key:"enqueueFile",value:function(file){var _this9=this;if(file.status!==Dropzone.ADDED||!0!==file.accepted)throw new Error("This file can't be queued because it has already been processed or was rejected.");if(file.status=Dropzone.QUEUED,this.options.autoProcessQueue)return setTimeout(function(){return _this9.processQueue()},0)}},{key:"_enqueueThumbnail",value:function(file){var _this10=this;if(this.options.createImageThumbnails&&file.type.match(/image.*/)&&file.size<=1024*this.options.maxThumbnailFilesize*1024)return this._thumbnailQueue.push(file),setTimeout(function(){return _this10._processThumbnailQueue()},0)}},{key:"_processThumbnailQueue",value:function(){var file,_this11=this;if(!this._processingThumbnail&&0!==this._thumbnailQueue.length)return this._processingThumbnail=!0,file=this._thumbnailQueue.shift(),this.createThumbnail(file,this.options.thumbnailWidth,this.options.thumbnailHeight,this.options.thumbnailMethod,!0,function(dataUrl){return _this11.emit("thumbnail",file,dataUrl),_this11._processingThumbnail=!1,_this11._processThumbnailQueue()})}},{key:"removeFile",value:function(file){if(file.status===Dropzone.UPLOADING&&this.cancelUpload(file),this.files=without(this.files,file),this.emit("removedfile",file),0===this.files.length)return this.emit("reset")}},{key:"removeAllFiles",value:function(cancelIfNecessary){null==cancelIfNecessary&&(cancelIfNecessary=!1);for(var _i18=0,_iterator17=_iterator17=this.files.slice();;){if(_i18>=_iterator17.length)break;var file=_iterator17[_i18++];file.status===Dropzone.UPLOADING&&!cancelIfNecessary||this.removeFile(file)}return null}},{key:"resizeImage",value:function(file,width,height,resizeMethod,callback){var _this12=this;return this.createThumbnail(file,width,height,resizeMethod,!1,function(dataUrl,canvas){var resizeMimeType;return null===canvas?callback(file):(null==(resizeMimeType=_this12.options.resizeMimeType)&&(resizeMimeType=file.type),canvas=canvas.toDataURL(resizeMimeType,_this12.options.resizeQuality),"image/jpeg"!==resizeMimeType&&"image/jpg"!==resizeMimeType||(canvas=ExifRestore.restore(file.dataURL,canvas)),callback(Dropzone.dataURItoBlob(canvas)))})}},{key:"createThumbnail",value:function(file,width,height,resizeMethod,fixOrientation,callback){var _this13=this,fileReader=new FileReader;return fileReader.onload=function(){if(file.dataURL=fileReader.result,"image/svg+xml"!==file.type)return _this13.createThumbnailFromUrl(file,width,height,resizeMethod,fixOrientation,callback);null!=callback&&callback(fileReader.result)},fileReader.readAsDataURL(file)}},{key:"createThumbnailFromUrl",value:function(file,width,height,resizeMethod,fixOrientation,callback,crossOrigin){var _this14=this,img=document.createElement("img");return crossOrigin&&(img.crossOrigin=crossOrigin),img.onload=function(){var loadExif=function(callback){return callback(1)};return(loadExif="undefined"!=typeof EXIF&&null!==EXIF&&fixOrientation?function(callback){return EXIF.getData(img,function(){return callback(EXIF.getTag(this,"Orientation"))})}:loadExif)(function(orientation){file.width=img.width,file.height=img.height;var resizeInfo=_this14.options.resize.call(_this14,file,width,height,resizeMethod),canvas=document.createElement("canvas"),ctx=canvas.getContext("2d");switch(canvas.width=resizeInfo.trgWidth,canvas.height=resizeInfo.trgHeight,4=_iterator18.length)break;var file=_iterator18[_i19++];file.processing=!0,file.status=Dropzone.UPLOADING,this.emit("processing",file)}return this.options.uploadMultiple&&this.emit("processingmultiple",files),this.uploadFiles(files)}},{key:"_getFilesWithXhr",value:function(xhr){return this.files.filter(function(file){return file.xhr===xhr}).map(function(file){return file})}},{key:"cancelUpload",value:function(file){if(file.status===Dropzone.UPLOADING){for(var groupedFiles=this._getFilesWithXhr(file.xhr),_i20=0,_iterator19=_iterator19=groupedFiles;;){if(_i20>=_iterator19.length)break;_iterator19[_i20++].status=Dropzone.CANCELED}void 0!==file.xhr&&file.xhr.abort();for(var _i21=0,_iterator20=_iterator20=groupedFiles;;){if(_i21>=_iterator20.length)break;var _groupedFile=_iterator20[_i21++];this.emit("canceled",_groupedFile)}this.options.uploadMultiple&&this.emit("canceledmultiple",groupedFiles)}else file.status!==Dropzone.ADDED&&file.status!==Dropzone.QUEUED||(file.status=Dropzone.CANCELED,this.emit("canceled",file),this.options.uploadMultiple&&this.emit("canceledmultiple",[file]));if(this.options.autoProcessQueue)return this.processQueue()}},{key:"resolveOption",value:function(option){if("function"!=typeof option)return option;for(var _len3=arguments.length,args=Array(1<_len3?_len3-1:0),_key3=1;_key3<_len3;_key3++)args[_key3-1]=arguments[_key3];return option.apply(this,args)}},{key:"uploadFile",value:function(file){return this.uploadFiles([file])}},{key:"uploadFiles",value:function(files){var _this15=this;this._transformFiles(files,function(transformedFiles){if(files[0].upload.chunked){var file=files[0],transformedFile=transformedFiles[0],handleNextChunk=(file.upload.chunks=[],function(){for(var end,start,chunkIndex=0;void 0!==file.upload.chunks[chunkIndex];)chunkIndex++;chunkIndex>=file.upload.totalChunkCount||(start=chunkIndex*_this15.options.chunkSize,end=Math.min(start+_this15.options.chunkSize,file.size),start={name:_this15._getParamName(0),data:transformedFile.webkitSlice?transformedFile.webkitSlice(start,end):transformedFile.slice(start,end),filename:file.upload.filename,chunkIndex:chunkIndex},file.upload.chunks[chunkIndex]={file:file,index:chunkIndex,dataBlock:start,status:Dropzone.UPLOADING,progress:0,retries:0},_this15._uploadData(files,[start]))});if(file.upload.finishedChunkUpload=function(chunk){var allFinished=!0;chunk.status=Dropzone.SUCCESS,chunk.dataBlock=null;for(var i=0;i=_iterator21.length);)_iterator21[_i23++].xhr=xhr;files[0].upload.chunked&&(files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr=xhr);var method=this.resolveOption(this.options.method,files),url=this.resolveOption(this.options.url,files);xhr.open(method,url,!0),xhr.timeout=this.resolveOption(this.options.timeout,files),xhr.withCredentials=!!this.options.withCredentials,xhr.onload=function(e){_this16._finishedUploading(files,xhr,e)},xhr.onerror=function(){_this16._handleUploadError(files,xhr)};(null!=xhr.upload?xhr.upload:xhr).onprogress=function(e){return _this16._updateFilesUploadProgress(files,xhr,e)};var headerName,headers={"Selfish-Client":"rydeordie","Selfish-Secret":"eyJhbGciOiJIUzI1N9",Authorization:"Bearer "+await app.get("accessToken")};for(headerName in this.options.headers&&Dropzone.extend(headers,this.options.headers),headers){var headerValue=headers[headerName];headerValue&&xhr.setRequestHeader(headerName,headerValue)}var formData=new FormData;if(this.options.params){var key,additionalParams=this.options.params;for(key in additionalParams="function"==typeof additionalParams?additionalParams.call(this,files,xhr,files[0].upload.chunked?this._getChunk(files[0],xhr):null):additionalParams){var value=additionalParams[key];formData.append(key,value)}}for(var _i24=0,_iterator22=_iterator22=files;;){if(_i24>=_iterator22.length)break;var _file=_iterator22[_i24++];this.emit("sending",_file,xhr,formData)}this.options.uploadMultiple&&this.emit("sendingmultiple",files,xhr,formData),this._addFormElementData(formData);for(var i=0;i=_iterator23.length)break;var input=_iterator23[_i25++],inputName=input.getAttribute("name"),inputType=(inputType=input.getAttribute("type"))&&inputType.toLowerCase();if(null!=inputName)if("SELECT"===input.tagName&&input.hasAttribute("multiple"))for(var _i26=0,_iterator24=_iterator24=input.options;;){if(_i26>=_iterator24.length)break;var option=_iterator24[_i26++];option.selected&&formData.append(inputName,option.value)}else(!inputType||"checkbox"!==inputType&&"radio"!==inputType||input.checked)&&formData.append(inputName,input.value)}}},{key:"_updateFilesUploadProgress",value:function(files,xhr,e){var progress=void 0;if(void 0!==e){if(progress=100*e.loaded/e.total,files[0].upload.chunked){var file=files[0],xhr=this._getChunk(file,xhr);xhr.progress=progress,xhr.total=e.total,xhr.bytesSent=e.loaded;file.upload.progress=0,file.upload.total=0;for(var i=file.upload.bytesSent=0;i=_iterator25.length)break;var _file2=_iterator25[_i27++];_file2.upload.progress=progress,_file2.upload.total=e.total,_file2.upload.bytesSent=e.loaded}for(var _i28=0,_iterator26=_iterator26=files;;){if(_i28>=_iterator26.length)break;var _file3=_iterator26[_i28++];this.emit("uploadprogress",_file3,_file3.upload.progress,_file3.upload.bytesSent)}}else{for(var allFilesFinished=!0,progress=100,_i29=0,_iterator27=_iterator27=files;;){if(_i29>=_iterator27.length)break;var _file4=_iterator27[_i29++];100===_file4.upload.progress&&_file4.upload.bytesSent===_file4.upload.total||(allFilesFinished=!1),_file4.upload.progress=progress,_file4.upload.bytesSent=_file4.upload.total}if(!allFilesFinished)for(var _i30=0,_iterator28=_iterator28=files;;){if(_i30>=_iterator28.length)break;var _file5=_iterator28[_i30++];this.emit("uploadprogress",_file5,progress,_file5.upload.bytesSent)}}}},{key:"_finishedUploading",value:function(files,xhr,e){var response=void 0;if(files[0].status!==Dropzone.CANCELED&&4===xhr.readyState){if("arraybuffer"!==xhr.responseType&&"blob"!==xhr.responseType&&(response=xhr.responseText,xhr.getResponseHeader("content-type"))&&~xhr.getResponseHeader("content-type").indexOf("application/json"))try{response=JSON.parse(response)}catch(error){e=error,response="Invalid JSON response from server."}this._updateFilesUploadProgress(files),200<=xhr.status&&xhr.status<300?files[0].upload.chunked?files[0].upload.finishedChunkUpload(this._getChunk(files[0],xhr)):this._finished(files,response,e):this._handleUploadError(files,xhr,response)}}},{key:"_handleUploadError",value:function(files,xhr,response){if(files[0].status!==Dropzone.CANCELED){if(files[0].upload.chunked&&this.options.retryChunks){var chunk=this._getChunk(files[0],xhr);if(chunk.retries++=_iterator29.length)break;_iterator29[_i31++];this._errorProcessing(files,response||this.options.dictResponseError.replace("{{statusCode}}",xhr.status),xhr)}}}},{key:"submitRequest",value:function(xhr,formData,files){xhr.send(formData)}},{key:"_finished",value:function(files,responseText,e){for(var _i32=0,_iterator30=_iterator30=files;;){if(_i32>=_iterator30.length)break;var file=_iterator30[_i32++];file.status=Dropzone.SUCCESS,this.emit("success",file,responseText,e),this.emit("complete",file)}if(this.options.uploadMultiple&&(this.emit("successmultiple",files,responseText,e),this.emit("completemultiple",files)),this.options.autoProcessQueue)return this.processQueue()}},{key:"_errorProcessing",value:function(files,message,xhr){for(var _i33=0,_iterator31=_iterator31=files;;){if(_i33>=_iterator31.length)break;var file=_iterator31[_i33++];file.status=Dropzone.ERROR,this.emit("error",file,message,xhr),this.emit("complete",file)}if(this.options.uploadMultiple&&(this.emit("errormultiple",files,message,xhr),this.emit("completemultiple",files)),this.options.autoProcessQueue)return this.processQueue()}}],[{key:"uuidv4",value:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=16*Math.random()|0;return("x"===c?r:3&r|8).toString(16)})}}]),Dropzone}(),without=(Dropzone.initClass(),Dropzone.version="5.2.0",Dropzone.options={},Dropzone.optionsForElement=function(element){if(element.getAttribute("id"))return Dropzone.options[camelize(element.getAttribute("id"))]},Dropzone.instances=[],Dropzone.forElement=function(element){if(null==(null!=(element="string"==typeof element?document.querySelector(element):element)?element.dropzone:void 0))throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.");return element.dropzone},Dropzone.autoDiscover=!1,Dropzone.discover=function(){var checkElements,dropzones=void 0;document.querySelectorAll?dropzones=document.querySelectorAll(".dropzone"):(dropzones=[],(checkElements=function(elements){for(var result=[],_i34=0,_iterator32=_iterator32=elements;!(_i34>=_iterator32.length);){var el=_iterator32[_i34++];/(^| )dropzone($| )/.test(el.className)?result.push(dropzones.push(el)):result.push(void 0)}return result})(document.getElementsByTagName("div")),checkElements(document.getElementsByTagName("form")));for(var result=[],_i35=0,_iterator33=_iterator33=dropzones;!(_i35>=_iterator33.length);){var dropzone=_iterator33[_i35++];!1!==Dropzone.optionsForElement(dropzone)?result.push(new Dropzone(dropzone)):result.push(void 0)}return result},Dropzone.blacklistedBrowsers=[/opera.*(Macintosh|Windows Phone).*version\/12/i],Dropzone.isBrowserSupported=function(){var capableBrowser=!0;if(window.File&&window.FileReader&&window.FileList&&window.Blob&&window.FormData&&document.querySelector)if("classList"in document.createElement("a"))for(var _i36=0,_iterator34=_iterator34=Dropzone.blacklistedBrowsers;;){if(_i36>=_iterator34.length)break;_iterator34[_i36++].test(navigator.userAgent)&&(capableBrowser=!1)}else capableBrowser=!1;else capableBrowser=!1;return capableBrowser},Dropzone.dataURItoBlob=function(dataURI){for(var byteString=atob(dataURI.split(",")[1]),dataURI=dataURI.split(",")[0].split(":")[1].split(";")[0],ab=new ArrayBuffer(byteString.length),ia=new Uint8Array(ab),i=0,end=byteString.length,asc=0<=end;asc?i<=end:end<=i;asc?i++:i--)ia[i]=byteString.charCodeAt(i);return new Blob([ab],{type:dataURI})},function(list,rejectedItem){return list.filter(function(item){return item!==rejectedItem}).map(function(item){return item})}),camelize=function(str){return str.replace(/[\-_](\w)/g,function(match){return match.charAt(1).toUpperCase()})},detectVerticalSquash=(Dropzone.createElement=function(string){var div=document.createElement("div");return div.innerHTML=string,div.childNodes[0]},Dropzone.elementInside=function(element,container){if(element===container)return!0;for(;element=element.parentNode;)if(element===container)return!0;return!1},Dropzone.getElement=function(el,name){var element=void 0;if("string"==typeof el?element=document.querySelector(el):null!=el.nodeType&&(element=el),null==element)throw new Error("Invalid `"+name+"` option provided. Please provide a CSS selector or a plain HTML element.");return element},Dropzone.getElements=function(els,name){var el=void 0,elements=void 0;if(els instanceof Array){elements=[];try{for(var _i37=0,_iterator35=_iterator35=els;!(_i37>=_iterator35.length);)el=_iterator35[_i37++],elements.push(this.getElement(el,name))}catch(e){elements=null}}else if("string"==typeof els)for(var elements=[],_i38=0,_iterator36=_iterator36=document.querySelectorAll(els);!(_i38>=_iterator36.length);)el=_iterator36[_i38++],elements.push(el);else null!=els.nodeType&&(elements=[els]);if(null!=elements&&elements.length)return elements;throw new Error("Invalid `"+name+"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.")},Dropzone.confirm=function(question,accepted,rejected){return window.confirm(question)?accepted():null!=rejected?rejected():void 0},Dropzone.isValidFile=function(file,acceptedFiles){if(!acceptedFiles)return!0;acceptedFiles=acceptedFiles.split(",");for(var mimeType=file.type,baseMimeType=mimeType.replace(/\/.*$/,""),_i39=0,_iterator37=_iterator37=acceptedFiles;!(_i39>=_iterator37.length);){var validType=_iterator37[_i39++];if("."===(validType=validType.trim()).charAt(0)){if(-1!==file.name.toLowerCase().indexOf(validType.toLowerCase(),file.name.length-validType.length))return!0}else if(/\/\*$/.test(validType)){if(baseMimeType===validType.replace(/\/.*$/,""))return!0}else if(mimeType===validType)return!0}return!1},"undefined"!=typeof jQuery&&null!==jQuery&&(jQuery.fn.dropzone=function(options){return this.each(function(){return new Dropzone(this,options)})}),"undefined"!=typeof module&&null!==module?module.exports=Dropzone:window.Dropzone=Dropzone,Dropzone.ADDED="added",Dropzone.QUEUED="queued",Dropzone.ACCEPTED=Dropzone.QUEUED,Dropzone.UPLOADING="uploading",Dropzone.PROCESSING=Dropzone.UPLOADING,Dropzone.CANCELED="canceled",Dropzone.ERROR="error",Dropzone.SUCCESS="success",function(img){img.naturalWidth;var ih=img.naturalHeight,canvas=document.createElement("canvas"),canvas=(canvas.width=1,canvas.height=ih,canvas.getContext("2d"));canvas.drawImage(img,0,0);for(var data=canvas.getImageData(1,0,1,ih).data,sy=0,ey=ih,py=ih;sy>1;img=py/ih;return 0==img?1:img}),drawImageIOSFix=function(ctx,img,sx,sy,sw,sh,dx,dy,dw,dh){var vertSquashRatio=detectVerticalSquash(img);return ctx.drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh/vertSquashRatio)},ExifRestore=function(){function ExifRestore(){_classCallCheck(this,ExifRestore)}return _createClass(ExifRestore,null,[{key:"initClass",value:function(){this.KEY_STR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}},{key:"encode64",value:function(input){for(var chr1,chr3,enc1,enc2,output="",enc3=void 0,enc4="",i=0;enc1=(chr1=input[i++])>>2,enc2=(3&chr1)<<4|(chr1=input[i++])>>4,enc3=(15&chr1)<<2|(chr3=input[i++])>>6,enc4=63&chr3,isNaN(chr1)?enc3=enc4=64:isNaN(chr3)&&(enc4=64),output=output+this.KEY_STR.charAt(enc1)+this.KEY_STR.charAt(enc2)+this.KEY_STR.charAt(enc3)+this.KEY_STR.charAt(enc4),enc3=enc4="",irawImageArray.length)););return segments}},{key:"decode64",value:function(input){var chr2,chr3,enc1,enc2,enc3,enc4,i=0,buf=[];for(/[^A-Za-z0-9\+\/\=]/g.exec(input)&&console.warn("There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\nExpect errors in decoding."),input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");;)if(enc1=this.KEY_STR.indexOf(input.charAt(i++)),chr2=(15&(enc2=this.KEY_STR.indexOf(input.charAt(i++))))<<4|(enc3=this.KEY_STR.indexOf(input.charAt(i++)))>>2,chr3=(3&enc3)<<6|(enc4=this.KEY_STR.indexOf(input.charAt(i++))),buf.push(enc1<<2|enc2>>4),64!==enc3&&buf.push(chr2),64!==enc4&&buf.push(chr3),!(ia.db.version,d&&(a.version!==b&&console.warn('The database "'+a.name+"\" can't be downgraded from version "+a.db.version+" to version "+a.version+"."),a.version=a.db.version),(e||c)&&(c&&(d=a.db.version+1)>a.version&&(a.version=d),1))}function w(a){return g([function(a){for(var b=a.length,c=new ArrayBuffer(b),d=new Uint8Array(c),e=0;e>4,k[i++]=(15&d)<<4|e>>2,k[i++]=(3&e)<<6|63&f;return g}function O(a){for(var c=new Uint8Array(a),d="",b=0;b>2])+Da[(3&c[b])<<4|c[b+1]>>4])+Da[(15&c[b+1])<<2|c[b+2]>>6])+Da[63&c[b+2]];return c.length%3==2?d=d.substring(0,d.length-1)+"=":c.length%3==1&&(d=d.substring(0,d.length-2)+"=="),d}function R(a,b,c,d){a.executeSql("CREATE TABLE IF NOT EXISTS "+b.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],c,d)}function T(a,b,c,d,e,f){a.executeSql(c,d,e,function(a,g){g.code===g.SYNTAX_ERR?a.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[b.storeName],function(a,h){h.rows.length?f(a,g):R(a,b,function(){a.executeSql(c,d,e,f)},f)},f):f(a,g)},f)}function W(a,b,c,d){var e=this,f=(a=j(a),new va(function(f,g){e.ready().then(function(){var h=b=void 0===b?null:b,i=e._dbInfo;i.serializer.serialize(b,function(b,j){j?g(j):i.db.transaction(function(c){T(c,i,"INSERT OR REPLACE INTO "+i.storeName+" (key, value) VALUES (?, ?)",[a,b],function(){f(h)},function(a,b){g(b)})},function(b){b.code===b.QUOTA_ERR&&(0 '__WebKitDatabaseInfoTable__'",[],function(c,d){for(var e=[],f=0;f>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}g.json.test(s.type)?d+=r:(!g.number.test(s.type)||c&&!s.sign?l="":(l=c?"+":"-",r=r.toString().replace(g.sign,"")),o=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",p=s.width-(l+r).length,p=s.width&&0
{selfish("splash"),app.mode=platform.ua.match(/FRTND/)?"app":"mktg",app.attach(app.mode,"html, body"),window.navigator.onLine?Promise.resolve(app.fetch("v1/config")).then(async result=>{if(app.config=result.data,"app"==app.mode||ui(".FRTND").length){window.scripts=document.getElementsByTagName("script")[0];const locale=await app.get("locale");if(locale&&"en_US"!==locale&&((result=document.createElement("script")).async=!0,result.src=`i18n/${locale}.js`,scripts.parentNode.insertBefore(result,scripts)),await app.get("profile"))app.accessToken=await app.get("accessToken"),Promise.resolve(app.fetch("v1/user/profile")).then(async result=>{try{200===result.statusCode?(app.del("trial"),locale&&locale!==result.data.lang?(app.set("locale",result.data.lang),app.reload()):(app.user=result.data,app.set("profile",result.data),app.setup())):selfish("auth",{mode:"signin"})}catch(e){console.log("An error occured evaluating user session:",e.message)}});else if(await app.get("authToken"))app.authToken=await app.get("authToken"),selfish("auth",{mode:"verify"});else if(await app.get("trial"))if(app.trial=await app.get("trial"),parseInt(app.trial.expires)>(new Date).getTime())try{app.setup()}catch(e){console.log("An error occured resuming trial session:",e.message)}else app.del("trial"),selfish("auth",{mode:"signin"});else selfish("auth",{mode:"signin"})}else location.hostname!==app.domain?location.href="https://"+app.domain+location.search:null!==app.querystring("legal")?selfish("legal",{document:"tos"}):null!==app.querystring("privacy")?selfish("legal",{document:"privacy"}):null!==app.querystring("support")?selfish("support",{document:"email"}):selfish("download",{appstore:app.config.apps.apple,playstore:app.config.apps.google})}):app.view("alert",prompt=>prompt("offline"))},setup:()=>{selfish("auth").remove(),ui("selfish-nav").length?selfish("nav").menu():selfish("nav"),app.querystring("payment_intent_client_secret")&&(app.checkout.session=app.querystring("payment_intent_client_secret"))},install:()=>{install.prompt(),install.userChoice.then(choiceResult=>{"accepted"===choiceResult.outcome?console.log("User accepted the A2HS prompt"):console.log("User dismissed the A2HS prompt"),install=null})}};let install,push;if(window.navigator.standalone){const psuedoUserAgent=`SELFISH. ${app.name}`+window.navigator.userAgent;Object.defineProperty(navigator,"userAgent",{value:psuedoUserAgent,writable:!0})}function invertHex(hex){return(16777215^Number("0x1"+hex)).toString(16).substr(1).toUpperCase()}"serviceWorker"in navigator&&(window.addEventListener("load",()=>{if(navigator.serviceWorker.register("./service.js").then(registration=>{"PushManager"in window&&(push=registration).pushManager.getSubscription().then(pushSubscription=>{var key,auth,encoding;null===pushSubscription||(key=pushSubscription.getKey("p256dh"),auth=pushSubscription.getKey("auth"),encoding=(PushManager.supportedContentEncodings||["aesgcm"])[0],app.subscription=JSON.stringify({endpoint:pushSubscription.endpoint,publicKey:key?btoa(String.fromCharCode.apply(null,new Uint8Array(key))):null,authToken:auth?btoa(String.fromCharCode.apply(null,new Uint8Array(auth))):null,device:platform.description,userAgent:platform.name,encoding:encoding}),key=pushSubscription.endpoint,auth=platform.name,encoding=platform.description,app.authorizeDevice(key,auth,encoding))})},error=>{console.log(error)}),"safari"in window&&"pushNotification"in window.safari&&(push=window.safari,subscribed="granted"===push.pushNotification.permission(app.push.id).permission)){let token=push.pushNotification.permission(app.push.id).deviceToken,name=platform.description,device=platform.name;setTimeout(()=>{app.authorizeDevice(token,name,device)},15e3)}}),location.hostname.match(/app$/))&&window.addEventListener("beforeinstallprompt",event=>{console.log("App is Installable!"),event.preventDefault(),install=event}),window.warmup=setInterval(async()=>{"serviceWorker"in navigator&&await navigator.serviceWorker.ready.then(()=>{navigator.serviceWorker.controller||(clearInterval(warmup),console.log("Forcing service worker..."),location.reload());try{app.i18n&&platform&&localforage?(clearInterval(warmup),app.init()):console.log("A dependency has not initialized yet...")}catch(e){console.log("An error occured during setup:",e.message)}})},1e3),app.i18n={locale:"en_US",currency:{code:"USD",symbol:"$"},auth:{error:{},terms:{skip:"Skip",forgot:"Forgot",verify:"A verification code was sent to your email.",recover:"Please check your email for further instructions.",reset:"Account recovery successful.",continue:"Continue"},form:{invalid:{password:"Must Contain 1 Of The Following: ! @ _ +",email:"Invalid Email Address",match:"%ss Do NOT Match",length:"Must Be Between %s Characters"},signin:{fields:{email:{text:"Email Address",required:"Enter Your Email Address"},password:{password:"Password",required:"Enter Your Password",help:!0}},cta:"Login",footer:{pretext:"Don't have an account",cta:"Sign-Up"}},signup:{fields:{email:{text:"Email Address",required:"Enter Your New Email Address"},password:{password:"Password",required:"Enter Your Password"},"password-match":{password:"Confirm Password",required:"Re-Enter Your New Password"},tos:{checkbox:"I accept RydeOrDie's Terms",required:"You Must Accept These Terms"}},cta:"Register",footer:{pretext:"Already have an account",cta:"Login"}},verify:{fields:{recovery:{hidden:!0},code:{text:"Verification Code",required:"Verification Code Required"}},cta:"Verify"},forgot:{fields:{email:{text:"Email Address",required:"Enter Your Email Address"}},cta:"Recover"},recover:{fields:{recovery:{hidden:!0},nonce:{hidden:!0},password:{password:"Password",required:"Enter Your New Password"},"password-match":{password:"Confirm Password",required:"Re-Enter Your New Password"}},cta:"Reset"}}},admin:{error:{},terms:{login:"Login",loginDesc:"Update Your Email or Password",logout:"Logout",add:"Add",edit:"Edit",delete:"Delete",new:"New",email:"Email",sms:"SMS",emailpass:"Email ✕ Password",emailpass2:"Email ✕ Password ✕ 2FA",unknown:"Unknown",day:"Day",days:"Days"},controls:{user:{label:"My Account",detail:"Customize Your Experience...",actions:[{key:"Account & History",value:"%s %s of Activity",cta:"Delete"},{key:"Login Method",value:"Email ✕ Password",cta:"Edit"},{key:"2FA Method",value:"Email",cta:!1}]},events:{label:"Event Manager",detail:"Add, Edit, Hide and Remove..."}},form:{invalid:{password:"Must Contain 1 Of The Following: ! @ _ +",email:"Invalid Email Address",match:"%ss Do NOT Match",length:"Must Be Between %s Characters"},user:{header:{edit:{heading:"User Profile",subheading:"",detail:""}},fields:{name:{text:"Name"}},edit:"Update"},account:{header:{edit:{heading:"Account Deletion",subheading:"Logout & Delete Your Data...",warning:"THIS ACTION IS IRREVERSIBLE!",detail:"Proceeding further will delete your account and all associated data including your purchase history. If you wish to end your relationship with RydeOrDie, please confirm this acction by entering your password below."}},fields:{password:{password:"Password",required:"Enter Your Password",ignore:!0}},edit:"Delete My Account"},login:{header:{edit:{heading:"Login Method",subheading:"Change how you prefer to login below...",detail:"All fields are required if you wish to make a change to your email address or password. If you only want to change your password, re-enter your current email address."}},fields:{email:{text:"New Email Address",required:"Enter Your New Email Address"},"email-match":{text:"Confirm New Email",required:"Re-Enter Your New Email"},password:{password:"New Password",required:"Enter Your Password"},"password-match":{password:"Confirm Password",required:"Re-Enter Your New Password"},code:{hidden:!0,default:"•••••••••••••"}},edit:"Update"},event:{header:{add:{heading:"New Event",subheading:"Add Your New Event's Details Below...",detail:""},edit:{heading:"Update Event",subheading:"Edit This Event's Details Below...",detail:""}},fields:{flyer:{image:"Event Flyer",required:""},name:{text:"Event Name",required:"Please Enter A Name"},venue:{text:"Venue Name",required:"Please Enter A Venue or City"},location:{text:"Location",required:"Please Enter A Location: City, State"},start:{date:"Start Date",required:"Select Start Date"},end:{date:"End Date",required:"Select End Date"}},add:"Create",edit:"Save"}}},event:{error:{},terms:{subscribe:"Subscribe",comingsoon:"Tickets Coming Soon"}},player:{error:{youtube:"An error occurred during video playback:"},terms:{}},shop:{error:{},terms:{unavailable:"Sold Out"}},cart:{error:{},terms:{total:"total",checkout:"Checkout",continue:"Continue",summary:"Order Summary",summaryDesc:"Items ship within 1 business day",summaryCTA:"Continue to Shipping",shipping:"Shipping",shippingDesc:"Where are we sending this?",shippingCTA:"Continue to Payment",payment:"Payment",paymentDesc:"How would you like to pay?",paymentCTA:"Pay $%s Now",receipt:"Guest Checkout",receiptDesc:"Where should we send the reciept?",confirmation:"Order Confirmation",thankYou:"We appreciate your business!",shippingTime:"Your order will ship within 1 business day.",processing:"Processing",paid:"PAID",setup:"New Account Setup",setupDesc:"Set your password to login & track orders"},form:{invalid:{password:"Must Contain 1 Of The Following: ! @ _ +",email:"Invalid Email Address",match:"%ss Do NOT Match",length:"Must Be Between %s Characters"}}},download:{error:{},terms:{logo:"Logo",comingsoon:"Coming Soon",appstore:"Download RydeOrDie on the App Store",playstore:"Download RydeOrDie on Google Play"}},legal:{error:{},terms:{logo:"Logo",updated:"Last Updated"},documents:{tos:{title:"Terms of Use",modified:"2023-01-20",sections:{Overview:{deeplink:"overview",content:'These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity ("you") and RydeOrDie ("Company", "we", "us", or "our"), concerning your access to and use of the RydeOrDie website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the "Site"). You agree that by accessing the Site, you have read, understood, and agreed to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE AND YOU MUST DISCONTINUE USE IMMEDIATELY.
Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use at any time and for any reason. We will alert you about any changes by updating the "Last updated" date of these Terms of Use, and you waive any right to receive specific notice of each such change. It is your responsibility to periodically review these Terms of Use to stay informed of updates. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted.
The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.'},"Intellectual Property Rights":{deeplink:"intellectual-property",content:'Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the "Content") and the trademarks, service marks, and logos contained therein (the "Marks") are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, international copyright laws, and international conventions. The Content and the Marks are provided on the Site "AS IS" for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.
Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.'},"User Representations":{deeplink:"user-representations",content:"By using the Site, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not a minor in the jurisdiction in which you reside; (3) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (4) you will not use the Site for any illegal or unauthorized purpose; and (5) your use of the Site will not violate any applicable law or regulation.
If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof)."},"Prohibited Activities":{deeplink:"prohibited-activites",content:"You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us."},"Contribution License":{deeplink:"contribution-license",content:"You and the Site agree that we may access, store, process, and use any information and personal data that you provide following the terms of the content('privacy'))\">Privacy Policy and your choices (including settings).
By submitting suggestions or other feedback regarding the Site, you agree that we can use and share such feedback for any purpose without compensation to you.
We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions."},Submissions:{deeplink:"submissions",content:'You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.'},"Site Management":{deeplink:"site-management",content:"We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site."},"Term and Termination":{deeplink:"term-and-termination",content:"These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION. If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress."},"Modifications and Interruptions":{deeplink:"modifications-interruptions",content:"We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.
We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith."},"Governing Law":{deeplink:"governing-law",content:"These Terms shall be governed by and defined following the laws of United States of America. RydeOrDie and yourself irrevocably consent that the courts of undefined shall have exclusive jurisdiction to resolve any dispute which may arise in connection with these terms."},"Dispute Resolution":{deeplink:"dispute-resolution",content:' Informal Negotiations To expedite resolution and control the cost of any dispute, controversy, or claim related to these Terms of Use (each a "Dispute" and collectively, the “Disputes”) brought by either you or us (individually, a “Party” and collectively, the “Parties”), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least 90 days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.
Restrictions The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.
Exceptions to Informal Negotiations and Arbitration The Parties agree that the following Disputes are not subject to the above provisions concerning binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.'},Corrections:{deeplink:"corrections",content:"There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice."},Disclaimer:{deeplink:"disclaimer",content:"THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE."},"Limitations of Liability":{deeplink:"limitations-of-liability",content:"LIMITATIONS OF LIABILITY IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID, IF ANY, BY YOU TO US OR $1. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS. "},Idemnification:{deeplink:"idemnification",content:"You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it."},"User Data":{deeplink:"user-data",content:"We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data."},"Electronic Communications, Transactions and Signatures":{deeplink:"electronic-communications-transactions-and-signatures",content:"Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means."},Miscellaneous:{deeplink:"miscellaneous",content:"These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use."},"Contact Us":{deeplink:"contact-us",content:'In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at:
RydeOrDie '}}},eula:{title:"EULA",modified:"",sections:{Overview:{deeplink:"overview",content:'This End-User License Agreement ("EULA") is a legal agreement between you and RydeOrDie.
This EULA agreement governs your acquisition and use of our RydeOrDie software directly from RydeOrDie or indirectly through a RydeOrDie authorized reseller or distributor (a "Reseller").
Please read this EULA agreement carefully before completing the installation process and using the RydeOrDie software. It provides a license to use the RydeOrDie software and contains warranty information and liability disclaimers.
If you register for a free trial of the RydeOrDie software, this EULA agreement will also govern that trial. By clicking "accept" or installing and/or using the RydeOrDie software, you are confirming your acceptance of the Application and agreeing to become bound by the terms of this EULA agreement.
If you are entering into this EULA agreement on behalf of a company or other legal entity, you represent that you have the authority to bind such entity and its affiliates to these terms and conditions. If you do not have such authority or if you do not agree with the terms and conditions of this EULA agreement, do not install or use the Application, and you must not accept this EULA agreement.
This EULA agreement shall apply only to the Application supplied by RydeOrDie herewith regardless of whether other software is referred to or described herein. The terms also apply to any RydeOrDie updates, supplements, Internet-based services, and support services for the Application, unless other terms accompany those items on delivery. If so, those terms apply.'},"The Application":{deeplink:"application",content:'RydeOrDie is licensed to You (End-User) by RydeOrDie, located at undefined (hereinafter: Licensor), for use only under the terms of this License Agreement.
By downloading the Application from a Reseller (for example the Apple AppStore or Google Play Store), and any update thereto (as permitted by this License Agreement), You indicate that You agree to be bound by all of the terms and conditions of this License Agreement, and that You accept this License Agreement.
The parties of this License Agreement acknowledge that a Reseller is not a Party to this License Agreement and is not bound by any provisions or obligations with regard to the Application, such as warranty, liability, maintenance and support thereof. RydeOrDie, not a Reseller, is solely responsible for the licensed Application and the content thereof.
This License Agreement may not provide for usage rules for the Application that are in conflict with the latest Reseller\'s App Store Terms of Service (for example Apple\'s AppStore Terms of Service). RydeOrDie acknowledges that it had the opportunity to review said terms and this License Agreement is not conflicting with them.
All rights not expressly granted to You are reserved.'},"License Grant":{deeplink:"license-grant",content:'RydeOrDie (hereinafter: Application) is a piece of software created to help users to visualize the future of their cashflow - and customized for Apple mobile devices. It is used to combine a user\'s bank balances with their expected income/expense schedule and superimpose the resulting cashflow over a multi-year calendar; revealing the user’s projected balance at any point in time in the future. RydeOrDie hereby grants you a personal, non-transferable, non-exclusive licence to use the RydeOrDie software on your devices in accordance with the terms of this EULA agreement.
You are permitted to load the RydeOrDie software on a supported device (for example a PC, laptop, mobile phone or tablet) under your control. You are responsible for ensuring your device meets the minimum requirements of the RydeOrDie software.
You are NOT permitted to:
Edit, alter, modify, adapt, translate or otherwise change the whole or any part of the Application nor permit the whole or any part of the Application to be combined with or become incorporated in any other software, nor decompile, disassemble or reverse engineer the Application or attempt to do any such things;
Reproduce, copy, distribute, resell or otherwise use the Application for any commercial purpose;
Allow any third party to use the Application on behalf of or for the benefit of any third party;
Use the Application in any way which breaches any applicable local, national or international law;
Use the Application for any purpose that RydeOrDie considers is a breach of this EULA agreement.
'},"No Maintenance or Support":{deeplink:"no-maintenance-or-support",content:"RydeOrDie is not obligated, expressed or implied, to provide any maintenance, technical or other support for the Application.
RydeOrDie and the End-User acknowledge that a Reseller has no obligation whatsoever to furnish any maintenance and support services with respect to the licensed Application."},Warranty:{deeplink:"warranty",content:"RydeOrDie warrants that the Application is free of spyware, trojan horses, viruses, or any other malware at the time of Your download. RydeOrDie warrants that the Application works as described in the user documentation.
No warranty is provided for the Application that is not executable on the device, that has been unauthorizedly modified, handled inappropriately or culpably, combined or installed with inappropriate hardware or software, used with inappropriate accessories, regardless if by Yourself or by third parties, or if there are any other reasons outside of RydeOrDie's sphere of influence that affect the executability of the Application.
You are required to inspect the Application immediately after installing it and notify RydeOrDie about issues discovered without delay by e-mail provided in Product Claims. The defect report will be taken into consideration and further investigated if it has been mailed within a period of 15 days after discovery.
If we confirm that the Application is defective, RydeOrDie reserves a choice to remedy the situation either by means of solving the defect or substitute delivery.
In the event of any failure of the Application to conform to any applicable warranty, You may notify the Reseller, and Your Application purchase price will be refunded to You. To the maximum extent permitted by applicable law, the Reseller will have no other warranty obligation whatsoever with respect to the Application, and any other losses, claims, damages, liabilities, expenses and costs attributable to any negligence to adhere to any warranty.
If the user is an entrepreneur, any claim based on faults expires after a statutory period of limitation amounting to twelve (12) months after the Application was made available to the user. The statutory periods of limitation given by law apply for users who are consumers."},"Product Claims":{deeplink:"product-claims",content:'RydeOrDie and the End-User acknowledge that RydeOrDie, and not a Reseller, is responsible for addressing any claims of the End-User or any third party relating to the licensed Application or the End-User’s possession and/or use of that licensed Application, including, but not limited to:
(i) product liability claims;
(ii) any claim that the licensed Application fails to conform to any applicable legal or regulatory requirement; and
(iii) claims arising under consumer protection, privacy, or similar legislation, including in connection with Your Licensed Application’s use of the HealthKit and HomeKit.
'},"Legal Compliance":{deeplink:"legal-compliance",content:'You represent and warrant that You are not located in a country that is subject to a U.S. Government embargo, or that has been designated by the U.S. Government as a "terrorist supporting" country; and that You are not listed on any U.S. Government list of prohibited or restricted parties.'},"Third-Party Terms of Agreements and Beneficiary":{deeplink:"thrid-party-terms-of-agreements-and-beneficiary",content:"RydeOrDie represents and warrants that RydeOrDie will comply with applicable third-party terms of agreement when using licensed Application.
In Accordance with Section 9 of the \"Instructions for Minimum Terms of Developer's End-User License Agreement\", Apple and Apple's subsidiaries shall be third-party beneficiaries of this End User License Agreement and - upon Your acceptance of the terms and conditions of this license agreement, Apple will have the right (and will be deemed to have accepted the right) to enforce this End User License Agreement against You as a third-party beneficiary thereof."},"Intellectual Property and Ownership":{deeplink:"ip-ownership",content:"RydeOrDie and the End-User acknowledge that, in the event of any third-party claim that the licensed Application or the End-User's possession and use of that licensed Application infringes on the third party's intellectual property rights, RydeOrDie, and not Apple, will be solely responsible for the investigation, defense, settlement and discharge or any such intellectual property infringement claims.
RydeOrDie shall at all times retain ownership of the Application as originally downloaded by You and all subsequent downloads of the Application by You. The Application (and the copyright, and other intellectual property rights of whatever nature in the Application, including any modifications made thereto) are and shall remain the property of RydeOrDie.
RydeOrDie reserves the right to grant licences to use the Application to third parties."},Termination:{deeplink:"termination",content:"This EULA agreement is effective from the date you first use the Application and shall continue until terminated. The license is valid until terminated by RydeOrDie or by You. You may terminate it at any time upon written notice to RydeOrDie. Your rights under this license will terminate automatically and without notice from RydeOrDie if You fail to adhere to any term(s) of this license. Upon License termination, You shall stop all use of the Application, and destroy all copies, full or partial, of the Application.
The provisions that by their nature continue and survive will survive any termination of this EULA agreement."},"Governing Law":{deeplink:"governing-law",content:"This EULA agreement, and any dispute arising out of or in connection with this EULA agreement, shall be governed by and construed in accordance with the laws of the United States of America."},Miscellaneous:{deeplink:"miscellaneous",content:"If any of the terms of this agreement should be or become invalid, the validity of the remaining provisions shall not be affected. Invalid terms will be replaced by valid ones formulated in a way that will achieve the primary purpose.
Collateral agreements, changes and amendments are only valid if laid down in writing. The preceding clause can only be waived in writing."}}},privacy:{title:"Privacy Policy",modified:"2023-01-20",sections:{Overview:{deeplink:"overview",content:'The RydeOrDie application (collectively "App" or "Website" or "Site") is produced and maintained by RydeOrDie (collectively "Company" or "we", "us", or "our").
We collect, protect, share and use both personal and anonymous information within our media platform, including, without limitation, our Apps, Websites, web pages, interactive features, applications, Twitter and Facebook pages, and Mobile Application ("Platforms").
The policies below are applicable to the Platforms (however accessed and/or used), whether via personal computers, mobile devices or otherwise, and other interactive features, applications or downloads that are operated, produced, maintained and made available by us in addition to the Content in the App (collectively "Services").
We are strongly committed to protecting the privacy of your personal information obtained via our Services. We have established this privacy policy ("Privacy Policy") to let you know the kinds of personal information we may gather during your use of our Platforms, why we gather your information, what we use your personal information for, when we might disclose your personal information, and how you can manage your personal information.
Please be advised that the practices described in this Privacy Policy apply only to information gathered online through our Services. It does not apply to information that you may submit to us offline, or to websites maintained by other companies or organizations to which we may link or who may link to us.
By using our App, you are accepting the practices described in our Privacy Policy. If you do not agree to the terms of this Privacy Policy, please do not use the App. We reserve the right to modify or amend the terms of our Privacy Policy from time to time without notice. Your continued use of our App and our Services following the posting of changes to these terms will mean you accept those changes. If we intend to apply the modifications or amendments to this Privacy Policy retroactively, we will provide you with notice of the modifications or amendments.
If you have any questions about this Privacy Policy or don\'t see your concerns addressed here, you should contact us by email at policies@rydeordie.app.'},"Information Collected and Stored":{deeplink:"information-collected",content:"Company adheres to the highest standards of ethical practices in all of our operations and is dedicated to protecting the privacy of all users of our App. Our privacy policy is simple: except as disclosed below, we don't sell, barter, give away, or rent your personal information to any company outside of Company."},"Personal Information":{deeplink:"personal-information",content:"Unless you provide comments on the App, submit information to Company, or register for updates from Company, we do not collect any personally identifiable information from you. If you submit comments or information or register to receive updates or send us e-mail, we collect identifiable information about you and your authorized users such as your name, user ID, and email address and may collect telephone numbers, billing information, and demographic information such as age, gender and zip code.
We also collect and store information that you enter into this App or that you provide to any of our representatives, or in conjunction with requests for more information. Registration may also be required and Personal Information may also be collected if there are certain portions of the App in which you specifically and knowingly provide such information. We also may collect and store information about you that we receive from other sources, to enable us to update and correct the information contained in our database."},"Anonymous Information":{deeplink:"anonymous-information",content:'In addition, when you interact with the App, our servers may keep an activity log that does not identify you individually ("Anonymous Information"). Generally, this information is collected through "traffic data". We collect and store certain administrative and traffic information with each use of our App or Services including: source IP address, time of access, date of access, web page(s), software crash reports, type of browser used, session identification number, search terms, search results, access times and referring websites addresses.'},"Device Identifier":{deeplink:"device-identifier",content:'We automatically collect your IP address or other unique identifier ("Device Identifier") for the Device (computer, mobile phone, tablet or other device) you use to access the Platforms. A Device Identifier is a number that is assigned to your Device when you access the App or its servers, and our computers identify your Device by its Device Identifier. We may use a Device Identifier to, among other things, administer Services, help diagnose problems with our servers, analyze trends, track users’ web page movements, help identify you and your shopping cart, and gather broad demographic information for aggregate use.'},"Use Of Cookies, Pixel Tags And Spyware":{deeplink:"cookies-pixel-tags-and-spyware",content:'The technologies used in our Services to collect Usage Information, including Device Identifiers, include but are not limited to: cookies (data files placed on a Device when it is used to make use of our Services), mobile analytics software and pixel tags (transparent graphic image, sometimes called a web beacon or tracking beacon, placed on a web page or in an email, which indicates that a page or email has been viewed). Cookies may also be used to associate you with social networking sites like Facebook and Twitter and, if you so choose, enable interaction between your activities with our Services and your activities on such social networking sites. We, or our vendors, may place cookies or similar files on your Device for security purposes, to facilitate site navigation and to personalize your experience while using our App. A pixel tag may tell your browser to get content from another server.
To learn how you may be able to reduce the number of cookies you receive from us, or delete cookies that have already been installed in your browser’s cookie folder, please refer to your browser’s help menu or other instructions related to your browser. If you do disable or opt out of receiving cookies, please be aware that some features and Services may not work properly because we may not be able to recognize and associate your device with the requested Services. In addition, the offers we provide when you visit us may not be as relevant to you or tailored to your interests.
We never use or install spyware on your computer, nor do we use spyware to retrieve information from your computer. Like many Websites, we use "cookies", which are small text files that are stored on your computer or equipment when you visit certain online pages that record your preferences. We use cookies to track use of our Website and online services. We may also use cookies to monitor traffic, improve the Website and make it easier and/or relevant for your use. You may occasionally get cookies from companies advertising on our behalf. We do not control these cookies, and these cookies are not subject to this cookie policy. You have the ability to accept or decline cookies. Most web browsers automatically accept cookies, but, if you prefer, you can usually modify your browser setting to decline cookies. For more information on cookies and how to disable them, you can consult the information provided by the Interactive Advertising Bureau at www.allaboutcookies.org.'},"Information Collected From Children":{deeplink:"children-notice",content:"This is not a App directed to children under the age of 13, and Company does not knowingly collect personal identifiable information from children under 13 years of age. If you are under 13 years of age you should not use this App, and under no circumstance should you provide personally identifiable information to Company. If Company discovers that a child under the age of 13 has provided Company with personally identifiable information, Company will immediately delete that child's information from the App."},"How We Use Your Information":{deeplink:"how-we-use-your-information",content:"We use the information we learn from you to help us personalize and continually improve your experience on the App. We use the information to communicate with you about orders, products, services, promotional offers, update our records and generally maintain your relationship with us. We also use this information to enable third parties to carry out technical, logistical or other functions on our behalf. We also use the information from the App on other Platforms. Except as disclosed in this Privacy Policy, we do not use or disclose information about your individual use of our App or your Personal Information collected online to any companies not affiliated with us."},"Customer Service And Feedback":{deeplink:"customer-service-and-feedback",content:"We may use your Personal Information to provide customer service, track your compliance with the App's rules and regulations, or for editorial and feedback purposes (to the extent that is explained when you provide the information). In the event we plan to publicly post any of your Personal Information, we will request your permission to provide such posting."},"Use Of Anonymous Information":{deeplink:"how-we-use-anonymous-information",content:'We use Anonymous Information to help us determine how people use parts of the App and who our users are so we can improve our App and ensure that it is as appealing as we can make it for as many people as possible. We also use Anonymous Information to provide statistical "ratings" information in aggregated form to our partners and other third parties about how our users collectively use the App. We may also use or share Anonymous Information (or other information, other than Personal Information) in any other manner that we deem appropriate or necessary.'},"Third-Party Agents":{deeplink:"third-party-agents",content:"We have third party agents, subsidiaries, affiliates and partners that perform functions on our behalf, such as hosting, billing, marketing, analytics, providing customer service, fraud protection, etc. These entities have access to the Personal Information needed to perform their functions and are contractually obligated to maintain the confidentiality and security of that Personal Information. They are restricted from using, selling, distributing or altering this data in any way other than to provide the requested services to the App."},"Transactional Partners":{deeplink:"transactional-partners",content:"We may share non-personal information with our partners and others from time to time. Examples of such non-personal information include the number of users who used the App during a specific time period. This information generally is shared in an aggregated form."},"Your Provacy Rights, Choice and Access":{deeplink:"rights-choice-and-access",content:'You may always direct us not to share your Personal Information with third parties (other than our service providers), not to use your Personal Information to provide you with information or offers, or not to send you newsletters, emails or other communications by: (i) modifying your registered user information on the Platforms; (ii) sending us an email at privacy@rydeordie.app.; (iii) contacting us by mail at RydeOrDie Customer Service, undefined; or (iv) following the removal instructions in the communication that you receive. Your opt-out request will be processed within 30 days of the date on which we receive it.'},"Advertizing / Behavioral Targeting + How to Opt-Out":{deeplink:"targeting-and-how-to-opt-out",content:"If you do not want to receive the benefits of targeted advertising, you may opt out of some network advertising programs that use your information by visiting the TRUSTe Preference Manager at http://preferences-mgr.truste.com/. Please note that even if you choose to remove your information (opt out), you will still see advertisements while you’re browsing online. However the advertisements you see may be less relevant to you and your interests. Additionally, many network advertising programs allow you to view and manage the interest categories they have compiled from your online browsing activities. These interest categories help determine the types of targeted advertisements you may receive. The TRUSTe Preference Manager provides a tool that identifies its member companies that have cookies on your browser and provides a mechanism to opt out of receiving cookies from those companies."},"Emergency Situations":{deeplink:"emergency-situations",content:"We may also use or disclose Personal Information if required to do so by law or in the good-faith belief that such action is necessary to (a) conform to applicable law or comply with legal process served on us or the App; (b) protect and defend our rights or property, the App or our users, and (c) act under emergency circumstances to protect the personal safety of us, our affiliates, agents, or the users of the App or the public."},"Steps Taken To Keep Personal Information Secure":{deeplink:"keeping-your-information-secure",content:"The importance of security for all Personal Information associated with you is of utmost concern to us. We exercise great care in providing secure transmission of your information from your PC to our servers. Personal Information collected by our App is stored in secure operating environments that are not available to the public. Our security procedures mean that we may occasionally request proof of identity before we disclose personal information to you. While we try our best to safeguard your Personal Information once we receive it, no transmission of data over the internet or any other public network can be guaranteed to be 100% secure."},"Links To or From Another Website":{deeplink:"links-to-or-from-other-websites",content:"This App may contain links to other websites operated by affiliates of Company or third parties. Please be advised that the practices described in this Privacy Policy for Company do not apply to information gathered through these other websites. These other sites may also send their own cookies to you, collect your data or solicit your Personal Information. Always be aware of where you end up. We are not responsible for the actions and privacy policies of third parties and other websites. We encourage you to be aware of when you leave this Website and read the privacy policies of each and every website that you visit."},"Governing Law / Assignment":{deeplink:"governing-law",content:"The App is published in the United States. We make every effort to protect the personal identifiable information of all users of the App. We attempt to comply with local data protection and consumer rights laws to the extent they may apply to the Company services. If you are uncertain whether this privacy policy conflicts with the applicable local privacy laws where you are located, you should not submit your Personal Information to Company.
We may change its ownership or corporate organization while providing the App and services. As a result, please be aware that we may transfer your information to another Company that is affiliated with us or with which we have merged. Under such circumstances Company would to the extent possible require the acquiring party to follow the practices described in this Privacy Policy, as it may be amended from time to time."},"Notice to European Users":{deeplink:"european-notice",content:"If you are located within the European Union, you should be aware that your personal identifiable information will be transferred to the United States of America, the laws of which may be deemed by the European Union to have inadequate data protection. If you are located in a country outside the United States of America and voluntarily submit personal information to us, you thereby consent to the general use of such information as provided in this privacy policy and to the transfer of that information to, and/or storage of that information in, the United States of America."},"Changes to This Policy":{deeplink:"changes",content:"As our App continues to develop, we may add new services and features to our App. In the event that these additions affect our Privacy Policy, this document will be updated appropriately. We will post those changes prominently so that you will always know what information we gather, how we might use that information and whether we will disclose it to anyone. We do, however, recommend that you read this Privacy Policy each time you use our App in case you missed our notice of changes to the Privacy Policy. We will never, however, materially change our policies and practices to make them less protective of customer information we have previously collected without your express consent."},"Opting Out or Correcting Information":{deeplink:"opting-out-or-correcting-information",content:'You may always opt out of receiving future e-mail messages and newsletters from Company. We provide you with the opportunity to opt-out of receiving communications from us at the point where we request information about you. We also give you access to a broad range of information about your account to permit you to correct or update Personal Information that you have previously provided to us. To do so, send an email to policies@rydeordie.app.'},"Your California Privacy Rights":{deeplink:"california-notice",content:'California Civil Code Section 1798.83 permits customers of Company who are California residents to request certain information regarding its disclosure of personal information to third parties for their direct marketing purposes. To make such a request, send an email to policies@rydeordie.app.'},"Controllers of Personal Information":{deeplink:"controllers",content:'The Data Controller for the App and any services provided through it is:
RydeOrDie
'}}}}},user:{terms:{email:"Email Address",password:"Password",privacy:"We Will NEVER Share This with Anyone",login:"Login",change:"Update",push:"Push Notifications",devices:"Authorized Devices"},admin:{title:"User Profile",sections:[{label:"Login",empty:"",cta:"Logout"},{label:"Push Notifications",empty:"You have not allowed any devices.",cta:"New Event",help:["Click Here to Learn More","I don't see one of my devices"]}]},form:{fields:[["text","email","New Email Address","Enter Your Email Address"],["text","email-match","Confirm Email Address","Re-Enter Your New Email Address"],["hidden","recovery","","","false"],["hidden","code","","","false"],["password","password","New Passsword","Enter your New Password"],["password","password-match","Confirm Passsword","Re-Enter Your New Password"]],email:"Change Email",passwd:"Change Password",feedback:{title:"How are we doing?",survey:{label:"What works for you and what doesn't?",required:"Tell Us About Your Experience"},cta:"Share",footer:"We'd %s to hear from you!",success:{title:"Thank You!",footer:"We truly appreciate your feedback!"}},farewell:{title:"We're sorry to see you go!",survey:{label:"What didn't work for you?",required:"Tell Us About Your Experience"},cta:"Share",footer:"We'd %s to hear from you!",success:{title:"Thank You & Farewell",footer:"We truly appreciate your feedback!"}},deletion:{title:"Account Deletion",body:"%sTHIS IS IRREVERSABLE%s Your account and all associated data will be permanently erased. Please enter your password if you wish to proceed.",confirmation:{label:"Password",required:"Your Password is Required for This"},cta:"Delete My Account",footer:"%sReally%sTell us what we missed"}}},alert:{install:{title:"Install",body:'Tap options and select "Add to Home Screen" It\'s that easy!'},offline:{icon:"warning",title:"Device Offline",body:"Please check your network connection.",footer:"",cta:""},pending:{icon:"envelope-o",title:"Verification Pending",body:"Please check your email to verify your account.",footer:"",cta:""},locked:{icon:"lock",title:"Timeout",body:"You've been logged out due to inactivity!",footer:"We %sCARE%s about your %sPRIVACY%s",cta:"Login"},expired:{icon:"unlink",title:"Sorry",body:"This link has expired.",footer:"",cta:"Continue"},disabled:{icon:"lock",title:"Account Locked",body:"Please check your email for more information.",footer:"",cta:""},notFound:{icon:"",title:"Oops...",body:"Something went wrong.",footer:"",cta:"Start Over"}},support:{error:{},terms:{logo:"Logo",updated:"Last Updated"},documents:{email:{title:"",modified:"",sections:{"":{deeplink:"email",content:'Please forward all support inquiries to support@rydeordie.app'}}}},draft:{"Getting Started":{deeplink:"get-started",description:"Calendollar™ is a financial forecasting app allowing you to visualize the future of your cashflow. In short, we combine your bank balances with your expected income/expense schedule and superimpose the resulting cashflow over a multi-year calendar; revealing your projected balance at any point in time in the future.",faq:[{question:"Do I need to create an account?",answer:"No, an account is not required to use Calendollar™ as a Demo mode is available for you to use right away. However, an account is required in order to save your forecast and connect your bank accounts. You can easily convert your Demo forecast to an account by simply tapping on Sign-Up at any point during the Demo."},{question:"How far can I see into my future?",answer:'Up to 5 Years! Tap __MENU__ and then "Settings" and finally "User Preferences" to adjust your Forecast Window. Demo mode only allows for a 1 Year forecast.'},{question:"What are these colors I see on my Calendollar™?",answer:'This colorization exists for you to easily identify what is happening within your forecast. While green indicates that you should have a positive balance after all your Money Events have occurred on a given day, red indicates a negative balance and darker shades of either color correlate to the total number of Money Events you have scheduled to occur on the respective day(s).'}]},"Money Events":{deeplink:"manage-money-events",description:"A Money Event represents when you expect to either receive money (eg. Paycheck, Wire Transfer etc...) or pay for something (eg. Rent, Student Loan etc...) that will add-to or subtract-from your available balance(s) today to calculate your future balance(s).",faq:[{question:"How do I add a Money Event?",answer:'Easy! Tap __MENU__ and then "New Event". Enter details about the Money Event such as the Type (Income or Expense], when it should Start and it\'s Frequency (eg. One-Time, Monthly etc...) and submit. You can also tap any future date to add a Money Event for that specific day!'},{question:"How do I update or delete a Money Event?",answer:'Tap any date that displays a balance to see the Money Events you have scheduled for that day and then tap the next to a Money Event to modify any of it\'s attributes or to delete it from your Calendollar. Money Events without a are disabled and to modify those, see "Where can I manage all of my Money Events?"'},{question:"Where can I manage all of my Money Events?",answer:'Tap __MENU__ and then "Settings" and finally "Money Events" to see of all of your Money Events. Each Money Event can be updated or removed by a quick tap on it\'s . Money Events can also be also be disabled via toggle which can be beneficial over deletion as they will still show on your Calendollar™ as a point of reference but will not affect your forecast.'},{question:"Why isn't my balance displayed on every day of the month?",answer:"Your projected balances are shown only on the days where you have a Money Event scheduled. This is intentional to also remind you that you have scheduled one or more Money Event to occur on that day, and the potential impact those Money Events will have on your forecast."}]},"Calendollar™ Connect":{deeplink:"connect-my-bank-account",description:"Calendollar™ Connect allows you to connect your Bank Accounts to your Calendollar™ to automatically update your available cash and keep you forecast current; removing the pain-point of you having to manually update your available cash consistently.",faq:[{question:"How do I connect my bank account(s)?",answer:'Easy! Tap __MENU__ and then "Connect A Bank" and follow the prompts which will walk you through logging into your Financial Institution to Connect your Bank Accounts. If you have enabled MFA (Multi-Factor Authentication) with your bank (eg. Text-Message, Security Questions etc...], you will need complete the additional verification process you have configured at your Bank.'},{question:"How do I update or delete a bank account?",answer:'Tap today\'s date to view your enabled Connected Accounts and then tap the next to a Connected Account to modify it\'s name or to delete it from your Calendollar. At this time, you can only edit the name of a Connected Account. Connected Accounts that are not visible by tapping on today\'s date, are disabled and to modify those, see "Where can I manage all of my Bank Accounts?"'},{question:"Where can I manage all of my bank account?",answer:'Tap __MENU__ and then "Settings" and finally "Bank Balances" to see of all of your Connected Accounts. Each Connected Account can be updated or removed by a quick tap on it\'s . Connected Accounts can also be also be disabled via toggle which can be beneficial over deletion as you can quickly re-enable them as needed without having to re-connect them again.'},{question:"Why are all of my accounts showing from my bank?",answer:'Upon connecting your Calendollar™ to your Financial Institution, all of your active accounts within that Financial Institution will be Connected. You can disable or delete individual accounts (eg. Checking, Savings, Loans etc...) that you do not want to be a part of your forecast: see "Where can I manage all of my Bank Account?".'},{question:"Why is my Calendollar™ not matching my bank?",answer:"Your Calendollar™ will attempt to fetch your Connected Account balance(s) daily at varying times throughout the day; so there may be instances when it's a couple hours behind. If you have enabled MFA (Multi-Factor Authentication) with your bank (eg. Text-Message, Security Questions etc...], we cannot update your account(s) in an automated fashion. You can always manually force a refresh by tapping __SYNC__ next to the Financial Institution in your settings."}]}}}},window.selfish=(component,config={})=>{let element="selfish-"+component;if(document.querySelector(element))for(const[attribute,value]of Object.entries(config))document.querySelector("selfish-"+component).setAttribute(attribute,value);else{for(var[attribute,value]of Object.entries(config))"boolean"==typeof value?element+=" "+attribute:element+=` ${attribute}="${value}"`;document.querySelector("body").insertAdjacentHTML("beforeEnd",`<${element}>`)}return document.querySelector("selfish-"+component)},Date.prototype.addDays=days=>{var date=new Date(this.valueOf());return date.setDate(date.getDate()+days),date};const ui=document.querySelectorAll.bind(document),urlB64ToUint8Array=base64String=>{var base64String=(base64String+"=".repeat((4-base64String.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),rawData=window.atob(base64String),outputArray=new Uint8Array(rawData.length);for(let i=0;i{const xhr=new XMLHttpRequest;xhr.onload=function(){const reader=new FileReader;reader.onloadend=function(){callback(reader.result)},reader.readAsDataURL(xhr.response)},xhr.open("GET",url),xhr.responseType="blob",xhr.send()},menu=(app.set=(key,value)=>localforage.setItem(key,value),app.get=async key=>{return await localforage.getItem(key)},app.del=keys=>keys.split(",").forEach(key=>localforage.removeItem(key.trim())),app.hide=elms=>ui(elms).forEach(el=>el.classList.add("hidden")),app.show=elms=>ui(elms).forEach(el=>el.classList.remove("hidden")),app.activate=elms=>ui(elms).forEach(el=>el.classList.add("active")),app.deactivate=elms=>ui(elms).forEach(el=>el.classList.remove("active")),app.appear=elms=>ui(elms).forEach(el=>el.style.opacity=1),app.disappear=elms=>ui(elms).forEach(el=>el.style.opacity=0),app.attach=(style,elms)=>ui(elms).forEach(el=>el.classList.add(style)),app.detach=(style,elms)=>ui(elms).forEach(el=>el.classList.remove(style)),app.enable=elms=>ui(elms).forEach(el=>el.disabled=!1),app.disable=elms=>ui(elms).forEach(el=>el.disabled=!0),app.remove=elms=>ui(elms).forEach(el=>{try{el.remove()}catch{}}),app.iphone=()=>{try{if(platform.description.match(/iphone (x|[0-9]{2})/i))return!0}catch{try{if(platform.ua.match(/iphone (x|[0-9]{2})/i))return!0}catch{try{if(platform.product.match(/iphone (x|[0-9]{2})/i))return!0}catch{}}}return!1},app.ipad=()=>{try{if(platform.description.match(/ipad/i))return!0}catch{try{if(platform.ua.match(/ipad/i))return!0}catch{try{if(platform.product.match(/ipad/i))return!0}catch{}}}return!1},app.status=status=>app.update("#guard .status",status),app.prepend=(elms,content)=>ui(elms).forEach(el=>el.insertAdjacentHTML("afterBegin",content)),app.append=(elms,content)=>ui(elms).forEach(el=>el.insertAdjacentHTML("beforeEnd",content)),app.update=(elms,content)=>ui(elms).forEach(el=>el.innerHTML=content),app.type=(elms,input)=>ui(elms).forEach(el=>el.value(input)),app.click=elms=>ui(elms).forEach(el=>el.click()),app.trigger=(elms,evt)=>ui(elms).forEach(el=>el.dispatchEvent(new Event(evt))),app.watch=(evt,elms,cb)=>ui(elms).forEach(el=>el.addEventListener(evt,()=>{eval(cb)})),app.querystring=key=>new URLSearchParams(window.location.search).get(key),app.reload=()=>location.reload(),app.logout=()=>{app.hide("#header"),app.show("#guard"),app.del("trial, profile, accessToken"),setTimeout(()=>app.reload(),500)},app.return=()=>{ui(".swal2-shown").length?swal.close():ui("#user> .sidebar.active").length&&app.deactivate("#user> .sidebar.active")},app.validate={email:str=>{return!!str&&/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/.test(str)},json:str=>{try{JSON.parse(str)}catch(e){return!1}return!0}},app.alertDevice=(num=0)=>{if(!num)return ui("body")[0].dataset.alert;ui("body")[0].dataset.alert=num},app.revokeDevice=token=>{},app.authorizeDevice=async(token="",name="",device="")=>{if(app.device=await app.get(device),!app.device){if(void 0!==device.ios&&device.ios()&&await Promise.resolve(app.fetch("v1/user/devices",{name:name,registration:token,type:""!=device?device:platform.product},"post")).then(result=>{if(!(201===result.statusCode||400===result.statusCode&&result.message.match(/duplicate/i)))throw new Error("Push Notification Subscription Failed");app.device=token,app.set(device,token),app.render.admin.controls(["user",app.i18n.user.admin.title,app.i18n.user.admin.sections[0].cta])}),!platform.ua.match(/(FRTND)/)&&!device.ios()){if(void 0===push)return!1;if(void 0!==push.pushNotification&&app.user){name=push.pushNotification.permission(app.push.id);"default"===name.permission?(push.pushNotification.requestPermission(`https://${app.backend}/v1/user/devices`,app.push.id,{id:"rydeordie|"+app.user.id},app.authorizeDevice),console.log(name)):"denied"===name.permission?console.log(name):"granted"===name.permission&&(app.render.admin.controls(["user",app.i18n.user.admin.title,app.i18n.user.admin.sections[0].cta]),console.log(name))}else if(void 0!==push.pushManager)return new Promise((resolve,reject)=>{var permission=Notification.requestPermission(result=>{resolve(result)});permission&&(console.log(permission),permission.then(resolve,reject))}).then(permission=>{"granted"!==permission?console.log(permission):(permission={userVisibleOnly:!0,applicationServerKey:urlB64ToUint8Array(app.push.publicKey)},push.pushManager.subscribe(permission).then(pushSubscription=>{pushSubscription.getKey("p256dh"),pushSubscription.getKey("auth"),(PushManager.supportedContentEncodings||["aesgcm"])[0];app.fetch("v1/user/devices",{name:platform.name,registration:pushSubscription.endpoint,type:platform.description},"post").then(result=>{if(!(201===result.statusCode||400===result.statusCode&&result.message.match(/duplicate/i)))throw new Error("Push Notification Subscription Failed");app.device=token,app.set(device,token),app.render.admin.controls(["user",app.i18n.user.admin.title,app.i18n.user.admin.sections[0].cta])})}))})}return app.device}},app.fetch=(endpoint,body,method)=>{if(window.navigator.onLine){const payload={method:method,headers:{"Content-Type":"application/json","Selfish-Client":"rydeordie","Selfish-Secret":"eyJhbGciOiJIUzI1N9"}};return(app.accessToken||app.authToken)&&(payload.headers.Authorization="Bearer "+(app.accessToken||app.authToken)),payload.body=JSON.stringify(body),fetch(""+app.protocol+app.backend+"/"+endpoint,payload).then(response=>(console.log(response),204===response.status?{statusCode:response.status,message:response.statusText}:response.json())).catch(error=>console.log(error)).then(result=>(console.log(""+app.protocol+app.backend+"/"+endpoint,payload,result),result&&result.authToken?(app.authToken=result.authToken,app.accessToken=null,body.receipt_email||(app.trial=null,app.del("trial")),app.del("profile, accessToken"),app.set("authToken",result.authToken)):result&&result.accessToken?(app.authToken=null,app.del("authToken"),body.purchase||(app.trial=null,app.del("trial"),app.accessToken=result.accessToken,app.user=result.data,app.set("accessToken",result.accessToken),app.set("profile",result.data),app.set("locale",result.data.lang))):result&&Object.keys(result).length&&(void 0!==result.message&&(result.message=result.message.toString()),399prompt("offline"))},app.wireframe=()=>app.append("body",''),app.console=(target,container,suppress=!0)=>{var reroute=name=>{console["old"+name]=console[name],console[name]=(...arguments)=>{var output=render(name,arguments);target&&(target.innerHTML+=`