!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.settings.submitHandler?(c.submitButton&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,d=d.concat(c.errorList)}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||-1!==a.inArray(c.keyCode,d)||(b.name in this.submitted||b===this.lastElement)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date(ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationTargetFor(c),e=!0;return this.lastElement=d,void 0===d?delete this.invalid[c.name]:(this.prepareElement(d),this.currentElements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(b){if(b){a.extend(this.errorMap,b),this.errorList=[];for(var c in b)this.errorList.push({message:b[c],element:this.findByName(c)[0]});this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors();var b,c=this.elements().removeData("previousValue").removeAttr("aria-invalid");if(this.settings.unhighlight)for(b=0;c[b];b++)this.settings.unhighlight.call(this,c[b],this.settings.errorClass,"");else c.removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectLength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([]),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d=a(b),e=b.type;return"radio"===e||"checkbox"===e?this.findByName(b.name).filter(":checked").val():"number"===e&&"undefined"!=typeof b.validity?b.validity.badInput?!1:d.val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=".  Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a];return void 0},defaultMessage:function(b,c){return this.findDefined(this.customMessage(b.name,c),this.customDataMessage(b,c),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c],"<strong>Warning: No message defined for "+b.name+"</strong>")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g=this.errorsFor(b),h=this.idOrName(b),i=a(b).attr("aria-describedby");g.length?(g.removeClass(this.settings.validClass).addClass(this.settings.errorClass),g.html(c)):(g=a("<"+this.settings.errorElement+">").attr("id",h+"-error").addClass(this.settings.errorClass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1"),i?i.match(new RegExp("\\b"+f+"\\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentForm).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addClass(this.settings.success):this.settings.success(g,b)),this.toShow=this.toShow.add(g)},errorsFor:function(b){var c=this.idOrName(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.off(".validate-equalTo").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})});
var custom_params={
"blocked_emails": "*@trash-mail.com\r\n*@mailinator.com\r\n*@pulser.securemail.co.pl\r\n*@0-mail.com\r\n*@0815.ru\r\n*@0clickemail.com\r\n*@0wnd.net\r\n*@0wnd.org\r\n*@10minutemail.com\r\n*@20minutemail.com\r\n*@2prong.com\r\n*@30minutemail.com\r\n*@3d-painting.com\r\n*@4warding.com\r\n*@4warding.net\r\n*@4warding.org\r\n*@60minutemail.com\r\n*@675hosting.com\r\n*@675hosting.net\r\n*@675hosting.org\r\n*@6url.com\r\n*@75hosting.com\r\n*@75hosting.net\r\n*@75hosting.org\r\n*@7tags.com\r\n*@9ox.net\r\n*@a-bc.net\r\n*@afrobacon.com\r\n*@ajaxapp.net\r\n*@amilegit.com\r\n*@amiri.net\r\n*@amiriindustries.com\r\n*@anonbox.net\r\n*@anonymbox.com\r\n*@antichef.com\r\n*@antichef.net\r\n*@antispam.de\r\n*@baxomale.ht.cx\r\n*@beefmilk.com\r\n*@binkmail.com\r\n*@bio-muesli.net\r\n*@bobmail.info\r\n*@bodhi.lawlita.com\r\n*@bofthew.com\r\n*@brefmail.com\r\n*@broadbandninja.com\r\n*@bsnow.net\r\n*@bugmenot.com\r\n*@bumpymail.com\r\n*@casualdx.com\r\n*@centermail.com\r\n*@centermail.net\r\n*@chogmail.com\r\n*@choicemail1.com\r\n*@cool.fr.nf\r\n*@correo.blogos.net\r\n*@cosmorph.com\r\n*@courriel.fr.nf\r\n*@courrieltemporaire.com\r\n*@cubiclink.com\r\n*@curryworld.de\r\n*@cust.in\r\n*@dacoolest.com\r\n*@dandikmail.com\r\n*@dayrep.com\r\n*@deadaddress.com\r\n*@deadspam.com\r\n*@despam.it\r\n*@despammed.com\r\n*@devnullmail.com\r\n*@dfgh.net\r\n*@digitalsanctuary.com\r\n*@discardmail.com\r\n*@discardmail.de\r\n*@Disposableemailaddresses:emailmiser.com\r\n*@disposableaddress.com\r\n*@disposeamail.com\r\n*@disposemail.com\r\n*@dispostable.com\r\n*@dm.w3internet.co.ukexample.com\r\n*@dodgeit.com\r\n*@dodgit.com\r\n*@dodgit.org\r\n*@donemail.ru\r\n*@dontreg.com\r\n*@dontsendmespam.de\r\n*@dump-email.info\r\n*@dumpandjunk.com\r\n*@dumpmail.de\r\n*@dumpyemail.com\r\n*@e4ward.com\r\n*@email60.com\r\n*@emaildienst.de\r\n*@emailias.com\r\n*@emailigo.de\r\n*@emailinfive.com\r\n*@emailmiser.com\r\n*@emailsensei.com\r\n*@emailtemporario.com.br\r\n*@emailto.de\r\n*@emailwarden.com\r\n*@emailx.at.hm\r\n*@emailxfer.com\r\n*@emz.net\r\n*@enterto.com\r\n*@ephemail.net\r\n*@etranquil.com\r\n*@etranquil.net\r\n*@etranquil.org\r\n*@explodemail.com\r\n*@fakeinbox.com\r\n*@fakeinformation.com\r\n*@fastacura.com\r\n*@fastchevy.com\r\n*@fastchrysler.com\r\n*@fastkawasaki.com\r\n*@fastmazda.com\r\n*@fastmitsubishi.com\r\n*@fastnissan.com\r\n*@fastsubaru.com\r\n*@fastsuzuki.com\r\n*@fasttoyota.com\r\n*@fastyamaha.com\r\n*@filzmail.com\r\n*@fizmail.com\r\n*@fr33mail.info\r\n*@frapmail.com\r\n*@front14.org\r\n*@fux0ringduh.com\r\n*@garliclife.com\r\n*@get1mail.com\r\n*@get2mail.fr\r\n*@getonemail.com\r\n*@getonemail.net\r\n*@ghosttexter.de\r\n*@girlsundertheinfluence.com\r\n*@gishpuppy.com\r\n*@gowikibooks.com\r\n*@gowikicampus.com\r\n*@gowikicars.com\r\n*@gowikifilms.com\r\n*@gowikigames.com\r\n*@gowikimusic.com\r\n*@gowikinetwork.com\r\n*@gowikitravel.com\r\n*@gowikitv.com\r\n*@great-host.in\r\n*@greensloth.com\r\n*@gsrv.co.uk\r\n*@guerillamail.biz\r\n*@guerillamail.com\r\n*@guerillamail.net\r\n*@guerillamail.org\r\n*@guerrillamail.biz\r\n*@guerrillamail.com\r\n*@guerrillamail.de\r\n*@guerrillamail.net\r\n*@guerrillamail.org\r\n*@guerrillamailblock.com\r\n*@h.mintemail.com\r\n*@h8s.org\r\n*@haltospam.com\r\n*@hatespam.org\r\n*@hidemail.de\r\n*@hochsitze.com\r\n*@hotpop.com\r\n*@hulapla.de\r\n*@ieatspam.eu\r\n*@ieatspam.info\r\n*@ihateyoualot.info\r\n*@iheartspam.org\r\n*@imails.info\r\n*@inboxclean.com\r\n*@inboxclean.org\r\n*@incognitomail.com\r\n*@incognitomail.net\r\n*@incognitomail.org\r\n*@insorg-mail.info\r\n*@ipoo.org\r\n*@irish2me.com\r\n*@iwi.net\r\n*@jetable.com\r\n*@jetable.fr.nf\r\n*@jetable.net\r\n*@jetable.org\r\n*@jnxjn.com\r\n*@junk1e.com\r\n*@kasmail.com\r\n*@kaspop.com\r\n*@keepmymail.com\r\n*@killmail.com\r\n*@killmail.net\r\n*@kir.ch.tc\r\n*@klassmaster.com\r\n*@klassmaster.net\r\n*@klzlk.com\r\n*@kulturbetrieb.info\r\n*@kurzepost.de\r\n*@letthemeatspam.com\r\n*@lhsdv.com\r\n*@lifebyfood.com\r\n*@link2mail.net\r\n*@litedrop.com\r\n*@lol.ovpn.to\r\n*@lookugly.com\r\n*@lopl.co.cc\r\n*@lortemail.dk\r\n*@lr78.com\r\n*@m4ilweb.info\r\n*@maboard.com\r\n*@mail-temporaire.fr\r\n*@mail.by\r\n*@mail.ru\r\n*@mail.mezimages.net\r\n*@mail2rss.org\r\n*@mail333.com\r\n*@mail4trash.com\r\n*@mailbidon.com\r\n*@mailblocks.com\r\n*@mailcatch.com\r\n*@maileater.com\r\n*@mailexpire.com\r\n*@mailfreeonline.com\r\n*@mailin8r.com\r\n*@mailinater.com\r\n*@mailinator.net\r\n*@mailinator2.com\r\n*@mailincubator.com\r\n*@mailme.ir\r\n*@mailme.lv\r\n*@mailmetrash.com\r\n*@mailmoat.com\r\n*@mailnator.com\r\n*@mailnesia.com\r\n*@mailnull.com\r\n*@mailshell.com\r\n*@mailsiphon.com\r\n*@mailslite.com\r\n*@mailzilla.com\r\n*@mailzilla.org\r\n*@mbx.cc\r\n*@mega.zik.dj\r\n*@meinspamschutz.de\r\n*@meltmail.com\r\n*@messagebeamer.de\r\n*@mierdamail.com\r\n*@mintemail.com\r\n*@moburl.com\r\n*@moncourrier.fr.nf\r\n*@monemail.fr.nf\r\n*@monmail.fr.nf\r\n*@msa.minsmail.com\r\n*@mt2009.com\r\n*@mx0.wwwnew.eu\r\n*@mycleaninbox.net\r\n*@mypartyclip.de\r\n*@myphantomemail.com\r\n*@myspaceinc.com\r\n*@myspaceinc.net\r\n*@myspaceinc.org\r\n*@myspacepimpedup.com\r\n*@myspamless.com\r\n*@mytrashmail.com\r\n*@neomailbox.com\r\n*@nepwk.com\r\n*@nervmich.net\r\n*@nervtmich.net\r\n*@netmails.com\r\n*@netmails.net\r\n*@netzidiot.de\r\n*@neverbox.com\r\n*@no-spam.ws\r\n*@nobulk.com\r\n*@noclickemail.com\r\n*@nogmailspam.info\r\n*@nomail.xl.cx\r\n*@nomail2me.com\r\n*@nomorespamemails.com\r\n*@nospam.ze.tc\r\n*@nospam4.us\r\n*@nospamfor.us\r\n*@nospamthanks.info\r\n*@notmailinator.com\r\n*@nowmymail.com\r\n*@nurfuerspam.de\r\n*@nus.edu.sg\r\n*@nwldx.com\r\n*@objectmail.com\r\n*@obobbo.com\r\n*@oneoffemail.com\r\n*@onewaymail.com\r\n*@online.ms\r\n*@oopi.org\r\n*@ordinaryamerican.net\r\n*@otherinbox.com\r\n*@ourklips.com\r\n*@outlawspam.com\r\n*@ovpn.to\r\n*@owlpic.com\r\n*@pancakemail.com\r\n*@pimpedupmyspace.com\r\n*@pjjkp.com\r\n*@politikerclub.de\r\n*@poofy.org\r\n*@pookmail.com\r\n*@privacy.net\r\n*@proxymail.eu\r\n*@prtnx.com\r\n*@punkass.com\r\n*@PutThisInYourSpamDatabase.com\r\n*@qq.com\r\n*@quickinbox.com\r\n*@rcpt.at\r\n*@recode.me\r\n*@recursor.net\r\n*@regbypass.com\r\n*@regbypass.comsafe-mail.net\r\n*@rejectmail.com\r\n*@rklips.com\r\n*@rmqkr.net\r\n*@rppkn.com\r\n*@rtrtr.com\r\n*@s0ny.net\r\n*@safe-mail.net\r\n*@safersignup.de\r\n*@safetymail.info\r\n*@safetypost.de\r\n*@sandelf.de\r\n*@saynotospams.com\r\n*@selfdestructingmail.com\r\n*@SendSpamHere.com\r\n*@sharklasers.com\r\n*@shiftmail.com\r\n*@shitmail.me\r\n*@shortmail.net\r\n*@sibmail.com\r\n*@skeefmail.com\r\n*@slaskpost.se\r\n*@slopsbox.com\r\n*@smellfear.com\r\n*@snakemail.com\r\n*@sneakemail.com\r\n*@sofimail.com\r\n*@sofort-mail.de\r\n*@sogetthis.com\r\n*@soodonims.com\r\n*@spam.la\r\n*@spam.su\r\n*@spamavert.com\r\n*@spambob.com\r\n*@spambob.net\r\n*@spambob.org\r\n*@spambog.com\r\n*@spambog.de\r\n*@spambog.ru\r\n*@spambox.info\r\n*@spambox.irishspringrealty.com\r\n*@spambox.us\r\n*@spamcannon.com\r\n*@spamcannon.net\r\n*@spamcero.com\r\n*@spamcon.org\r\n*@spamcorptastic.com\r\n*@spamcowboy.com\r\n*@spamcowboy.net\r\n*@spamcowboy.org\r\n*@spamday.com\r\n*@spamex.com\r\n*@spamfree24.com\r\n*@spamfree24.de\r\n*@spamfree24.eu\r\n*@spamfree24.info\r\n*@spamfree24.net\r\n*@spamfree24.org\r\n*@spamgourmet.com\r\n*@spamgourmet.net\r\n*@spamgourmet.org\r\n*@SpamHereLots.com\r\n*@SpamHerePlease.com\r\n*@spamhole.com\r\n*@spamify.com\r\n*@spaminator.de\r\n*@spamkill.info\r\n*@spaml.com\r\n*@spaml.de\r\n*@spammotel.com\r\n*@spamobox.com\r\n*@spamoff.de\r\n*@spamslicer.com\r\n*@spamspot.com\r\n*@spamthis.co.uk\r\n*@spamthisplease.com\r\n*@spamtrail.com\r\n*@speed.1s.fr\r\n*@supergreatmail.com\r\n*@supermailer.jp\r\n*@suremail.info\r\n*@teewars.org\r\n*@teleworm.com\r\n*@tempalias.com\r\n*@tempe-mail.com\r\n*@tempemail.biz\r\n*@tempemail.com\r\n*@TempEMail.net\r\n*@tempinbox.co.uk\r\n*@tempinbox.com\r\n*@tempmail.it\r\n*@tempmail2.com\r\n*@tempomail.fr\r\n*@temporarily.de\r\n*@temporarioemail.com.br\r\n*@temporaryemail.net\r\n*@temporaryforwarding.com\r\n*@temporaryinbox.com\r\n*@thanksnospam.info\r\n*@thankyou2010.com\r\n*@thisisnotmyrealemail.com\r\n*@throwawayemailaddress.com\r\n*@tilien.com\r\n*@tmailinator.com\r\n*@tradermail.info\r\n*@trash-amil.com\r\n*@trash-mail.at\r\n*@trash-mail.de\r\n*@you-spam.com\r\n*@re-gister.com\r\n*@fake-box.com\r\n*@trash-me.com\r\n*@opentrash.com\r\n*@trash2009.com\r\n*@trashemail.de\r\n*@trashmail.at\r\n*@trashmail.com\r\n*@trashmail.de\r\n*@trashmail.me\r\n*@trashmail.net\r\n*@trashmail.org\r\n*@trashmail.ws\r\n*@trashmailer.com\r\n*@trashymail.com\r\n*@trashymail.net\r\n*@trillianpro.com\r\n*@turual.com\r\n*@twinmail.de\r\n*@tyldd.com\r\n*@uggsrock.com\r\n*@upliftnow.com\r\n*@uplipht.com\r\n*@venompen.com\r\n*@veryrealemail.com\r\n*@viditag.com\r\n*@viewcastmedia.com\r\n*@viewcastmedia.net\r\n*@viewcastmedia.org\r\n*@webm4il.info\r\n*@wegwerfadresse.de\r\n*@wegwerfemail.de\r\n*@wegwerfmail.de\r\n*@wegwerfmail.net\r\n*@wegwerfmail.org\r\n*@wetrainbayarea.com\r\n*@wetrainbayarea.org\r\n*@wh4f.org\r\n*@whyspam.me\r\n*@willselfdestruct.com\r\n*@winemaven.info\r\n*@wronghead.com\r\n*@wuzup.net\r\n*@wuzupmail.net\r\n*@www.e4ward.com\r\n*@www.gishpuppy.com\r\n*@www.mailinator.com\r\n*@wwwnew.eu\r\n*@xagloo.com\r\n*@xemaps.com\r\n*@xents.com\r\n*@xmaily.com\r\n*@xoxy.net\r\n*@yep.it\r\n*@yogamaven.com\r\n*@yopmail.com\r\n*@yopmail.fr\r\n*@yopmail.net\r\n*@ypmail.webarnak.fr.eu.org\r\n*@yuurok.com\r\n*@zehnminutenmail.de\r\n*@zippymail.info\r\n*@zoaxe.com\r\n*@zoemail.org\r\n*@mail-easy.fr\r\n*@inbox.ru\r\n*@list.ru\r\n*@bk.ru\r\n*@mailf5.com\r\n*@sharklasers.com\r\n*@spam4.me\r\n*@gmail.com\r\n*@mail.ru\r\n*@aol.com\r\n*@hotmail.com\r\n*@zohomail.com\r\n*@rediffmail.com\r\n*@rediff.com\r\n*@yandex.com\r\n*@test.com\r\n*@abc.com\r\n*@xyz.com\r\n*@iartun.com\r\n*@uborka-spb24top.store",
"swear_words": ["2g1c", "2 girls 1 cup", "acrotomophilia", "anal", "anilingus", "anus", "arsehole", "ass", "asshole", "assmunch", "auto erotic", "autoerotic", "babeland", "baby batter", "ball gag", "ball gravy", "ball kicking", "ball licking", "ball sack", "ball sucking", "bangbros", "bareback", "barely legal", "barenaked", "bastardo", "bastinado", "bbw", "bdsm", "beaver cleaver", "beaver lips", "bestiality", "bi curious", "big black", "big breasts", "big knockers", "big tits", "bimbos", "birdlock", "bitch", "black cock", "blonde action", "blonde on blonde action", "blow j", "blow your l", "blue waffle", "blumpkin", "bollocks", "bondage", "boner", "boob", "boobs", "booty call", "brown showers", "brunette action", "bukkake", "bulldyke", "bullet vibe", "bung hole", "bunghole", "busty", "butt", "buttcheeks", "butthole", "camel toe", "camgirl", "camslut", "camwhore", "carpet muncher", "carpetmuncher", "chocolate rosebuds", "circlejerk", "cleveland steamer", "clit", "clitoris", "clover clamps", "clusterfuck", "cock", "cocks", "coprolagnia", "coprophilia", "cornhole", "cum", "cumming", "cunnilingus", "cunt", "darkie", "date rape", "daterape", "deep throat", "deepthroat", "dick", "dildo", "dirty pillows", "dirty sanchez", "dog style", "doggie style", "doggiestyle", "doggy style", "doggystyle", "dolcett", "domination", "dominatrix", "dommes", "donkey punch", "double dong", "double penetration", "dp action", "eat my ass", "ecchi", "ejaculation", "erotic", "erotism", "escort", "ethical slut", "eunuch", "faggot", "fecal", "felch", "fellatio", "feltch", "female squirting", "femdom", "figging", "fingering", "fisting", "foot fetish", "footjob", "frotting", "fuck", "fuck buttons", "fudge packer", "fudgepacker", "futanari", "g-spot", "gang bang", "gay sex", "genitals", "giant cock", "girl on", "girl on top", "girls gone wild", "goatcx", "goatse", "gokkun", "golden shower", "goo girl", "goodpoop", "goregasm", "grope", "group sex", "guro", "hand job", "handjob", "hard core", "hardcore", "hentai", "homoerotic", "honkey", "hooker", "hot chick", "how to kill", "how to murder", "huge fat", "humping", "incest", "intercourse", "jack off", "jail bait", "jailbait", "jerk off", "jigaboo", "jiggaboo", "jiggerboo", "jizz", "juggs", "kike", "kinbaku", "kinkster", "kinky", "knobbing", "leather restraint", "leather straight jacket", "lemon party", "lolita", "lovemaking", "make me come", "male squirting", "masturbate", "menage a trois", "milf", "missionary position", "motherfucker", "mound of venus", "mr hands", "muff diver", "muffdiving", "nambla", "nawashi", "negro", "neonazi", "nig nog", "nigga", "nigger", "nimphomania", "nipple", "nipples", "nsfw images", "nude", "nudity", "nympho", "nymphomania", "octopussy", "omorashi", "one cup two girls", "one guy one jar", "orgasm", "orgy", "paedophile", "panties", "panty", "pedobear", "pedophile", "pegging", "penis", "phone sex", "piece of shit", "piss pig", "pissing", "pisspig", "playboy", "pleasure chest", "pole smoker", "ponyplay", "poof", "poop chute", "poopchute", "porn", "porno", "pornography", "prince albert piercing", "pthc", "pubes", "pussy", "queef", "raghead", "raging boner", "rape", "raping", "rapist", "rectum", "reverse cowgirl", "rimjob", "rimming", "rosy palm", "rosy palm and her 5 sisters", "rusty trombone", "s&m", "sadism", "scat", "schlong", "scissoring", "semen", "sex", "sexo", "sexy", "shaved beaver", "shaved pussy", "shemale", "shibari", "shit", "shota", "shrimping", "slanteye", "slut", "smut", "snatch", "snowballing", "sodomize", "sodomy", "spic", "spooge", "spread legs", "strap on", "strapon", "strappado", "strip club", "style doggy", "suck", "sucks", "suicide girls", "sultry women", "swastika", "swinger", "tainted love", "taste my", "tea bagging", "threesome", "throating", "tied up", "tight white", "tit", "tits", "titties", "titty", "tongue in a", "topless", "tosser", "towelhead", "tranny", "tribadism", "tub girl", "tubgirl", "tushy", "twat", "twink", "twinkie", "two girls one cup", "undressing", "upskirt", "urethra play", "urophilia", "vagina", "venus mound", "vibrator", "violet wand", "vorarephilia", "voyeur", "vulva", "wank", "wet dream", "wetback", "white power", "women rapping", "wrapping men", "wrinkled starfish", "xx", "xxx", "yaoi", "yellow showers", "yiffy", "zoophilia"]
};