if(!Array.prototype.includes){Object.defineProperty(Array.prototype,"includes",{value:function(r,t){if(this==null){throw new TypeError('"this" is null or not defined')}var e=Object(this);var i=e.length>>>0;if(i===0){return false}var n=t|0;var o=Math.max(n>=0?n:i-Math.abs(n),0);while(o<i){if(e[o]===r){return true}o++}return false}})}if(!Array.prototype.forEach){Array.prototype.forEach=function(r,t){var e,i;if(this==null){throw new TypeError(" this is null or not defined")}var n=Object(this);var o=n.length>>>0;if(typeof r!=="function"){throw new TypeError(r+" is not a function")}if(arguments.length>1){e=t}i=0;while(i<o){var a;if(i in n){a=n[i];r.call(e,a,i,n)}i++}}}if(!Array.prototype.filter){Array.prototype.filter=function(r){"use strict";if(this===void 0||this===null)throw new TypeError;var t=Object(this);var e=t.length>>>0;if(typeof r!=="function")throw new TypeError;var i=[];var n=arguments.length>=2?arguments[1]:void 0;for(var o=0;o<e;o++){if(o in t){var a=t[o];if(r.call(n,a,o,t))i.push(a)}}return i}}if(!Array.prototype.map){Array.prototype.map=function(r,t){var e,i,n;if(this==null){throw new TypeError(" this is null or not defined")}var o=Object(this);var a=o.length>>>0;if(Object.prototype.toString.call(r)!="[object Function]"){throw new TypeError(r+" is not a function")}if(t){e=t}i=new Array(a);n=0;while(n<a){var f,l;if(n in o){f=o[n];l=r.call(e,f,n,o);i[n]=l}n++}return i}}if(!Array.prototype.reduce){Object.defineProperty(Array.prototype,"reduce",{value:function(r){if(this===null){throw new TypeError("Array.prototype.reduce "+"called on null or undefined")}if(typeof r!=="function"){throw new TypeError(r+" is not a function")}var t=Object(this);var e=t.length>>>0;var i=0;var n;if(arguments.length>=2){n=arguments[1]}else{while(i<e&&!(i in t)){i++}if(i>=e){throw new TypeError("Reduce of empty array "+"with no initial value")}n=t[i++]}while(i<e){if(i in t){n=r(n,t[i],i,t)}i++}return n}})}