// source --> https://orijinyoga.com/_static/??-eJydkN0KgkAQRl+o3VFDxIvoWWyddGz/2hlT3z4lgqib8HLgO+fAwBSVCV7QC0Q7duQZJmo7FNWF0FlUCR+EE0PDjMIwMMTxYsko15DXAx/gQyE9OmSQaT0WplkQ/Yb04mz5PX73Is1olzAmJkFoiQXYJIpb7T5iWvSFfKuulFhUpgt91O43/Y+NtQnhRqgKne+2iG13kq/HreDZnfKqzOsiy6v6CU/+kR8= 
var rpi=rpi||{};
rpi.Time={getTime:function(a,e,f){return"chat"==f?this.getChatTime(a,e||"en"):f?this.getFormatTime(a,f,e||"en"):this.getDefaultTime(a,e||"en")},getChatTime:function(a,e){var f=((new Date).getTime()-a)/1E3/60/60,l=f/24;return 24>f?this.getFormatTime(a,"HH:mm",e):365>l?this.getFormatTime(a,"dd.MM HH:mm",e):this.getFormatTime(a,"yyyy.MM.dd HH:mm",e)},getDefaultTime:function(a,e){return this.getTimeAgo(a,e)},getTimeAgo:function(a,e){a=((new Date).getTime()-a)/1E3;var f=a/60,l=f/60,d=l/24,m=d/365;e=rpi.Time.Messages[e]?
e:"en";return 45>a?rpi.Time.Messages[e].second:90>a?rpi.Time.Messages[e].minute:45>f?rpi.Time.Messages[e].minutes(f):90>f?rpi.Time.Messages[e].hour:24>l?rpi.Time.Messages[e].hours(l):48>l?rpi.Time.Messages[e].day:30>d?rpi.Time.Messages[e].days(d):60>d?rpi.Time.Messages[e].month:365>d?rpi.Time.Messages[e].months(d):2>m?rpi.Time.Messages[e].year:rpi.Time.Messages[e].years(m)},getTime12:function(a,e){a=new Date(a);return(a.getHours()%12?a.getHours()%12:12)+":"+a.getMinutes()+(12<=a.getHours()?" PM":
" AM")},getFormatTime:function(a,e,f){var l=new Date(a),d={SS:l.getMilliseconds(),ss:l.getSeconds(),mm:l.getMinutes(),HH:l.getHours(),hh:(l.getHours()%12?l.getHours()%12:12)+(12<=l.getHours()?"PM":"AM"),dd:l.getDate(),MM:l.getMonth()+1,yyyy:l.getFullYear(),yy:String(l.getFullYear()).toString().substr(2,2),ago:this.getTimeAgo(a,f),12:this.getTime12(a,f)};return e.replace(/(SS|ss|mm|HH|hh|DD|dd|MM|yyyy|yy|ago|12)/g,function(m,h){m=d[h];return 10>m?"0"+m:m})},declineNum:function(a,e,f,l){return a+" "+
this.declineMsg(a,e,f,l)},declineMsg:function(a,e,f,l,d){var m=a%10;return 1==m&&(1==a||20<a)?e:1<m&&5>m&&(20<a||10>a)?f:a?l:d}};
rpi.Time.Messages={ru:{second:"\u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e",minute:"\u043c\u0438\u043d\u0443\u0442\u0443 \u043d\u0430\u0437\u0430\u0434",minutes:function(a){return rpi.Time.declineNum(Math.round(a),"\u043c\u0438\u043d\u0443\u0442\u0430 \u043d\u0430\u0437\u0430\u0434","\u043c\u0438\u043d\u0443\u0442\u044b \u043d\u0430\u0437\u0430\u0434","\u043c\u0438\u043d\u0443\u0442 \u043d\u0430\u0437\u0430\u0434")},hour:"\u0447\u0430\u0441 \u043d\u0430\u0437\u0430\u0434",hours:function(a){return rpi.Time.declineNum(Math.round(a),
"\u0447\u0430\u0441 \u043d\u0430\u0437\u0430\u0434","\u0447\u0430\u0441\u0430 \u043d\u0430\u0437\u0430\u0434","\u0447\u0430\u0441\u043e\u0432 \u043d\u0430\u0437\u0430\u0434")},day:"\u0434\u0435\u043d\u044c \u043d\u0430\u0437\u0430\u0434",days:function(a){return rpi.Time.declineNum(Math.round(a),"\u0434\u0435\u043d\u044c \u043d\u0430\u0437\u0430\u0434","\u0434\u043d\u044f \u043d\u0430\u0437\u0430\u0434","\u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434")},month:"\u043c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434",
months:function(a){return rpi.Time.declineNum(Math.floor(a/30),"\u043c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434","\u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0437\u0430\u0434","\u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043d\u0430\u0437\u0430\u0434")},year:"\u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434",years:function(a){return rpi.Time.declineNum(Math.round(a),"\u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434","\u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434",
"\u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434")}},en:{second:"just now",minute:"1m ago",minutes:function(a){return Math.round(a)+"m ago"},hour:"1h ago",hours:function(a){return Math.round(a)+"h ago"},day:"a day ago",days:function(a){return Math.round(a)+" days ago"},month:"a month ago",months:function(a){return Math.floor(a/30)+" months ago"},year:"a year ago",years:function(a){return Math.round(a)+" years ago"}},uk:{second:"\u0442\u0456\u043b\u044c\u043a\u0438 \u0449\u043e",minute:"\u0445\u0432\u0438\u043b\u0438\u043d\u0443 \u0442\u043e\u043c\u0443",
minutes:function(a){return rpi.Time.declineNum(Math.round(a),"\u0445\u0432\u0438\u043b\u0438\u043d\u0443 \u0442\u043e\u043c\u0443","\u0445\u0432\u0438\u043b\u0438\u043d\u0438 \u0442\u043e\u043c\u0443","\u0445\u0432\u0438\u043b\u0438\u043d \u0442\u043e\u043c\u0443")},hour:"\u0433\u043e\u0434\u0438\u043d\u0443 \u0442\u043e\u043c\u0443",hours:function(a){return rpi.Time.declineNum(Math.round(a),"\u0433\u043e\u0434\u0438\u043d\u0443 \u0442\u043e\u043c\u0443","\u0433\u043e\u0434\u0438\u043d\u0438 \u0442\u043e\u043c\u0443",
"\u0433\u043e\u0434\u0438\u043d \u0442\u043e\u043c\u0443")},day:"\u0434\u0435\u043d\u044c \u0442\u043e\u043c\u0443",days:function(a){return rpi.Time.declineNum(Math.round(a),"\u0434\u0435\u043d\u044c \u0442\u043e\u043c\u0443","\u0434\u043d\u0456 \u0442\u043e\u043c\u0443","\u0434\u043d\u0456\u0432 \u0442\u043e\u043c\u0443")},month:"\u043c\u0456\u0441\u044f\u0446\u044c \u0442\u043e\u043c\u0443",months:function(a){return rpi.Time.declineNum(Math.floor(a/30),"\u043c\u0456\u0441\u044f\u0446\u044c \u0442\u043e\u043c\u0443",
"\u043c\u0456\u0441\u044f\u0446\u0456 \u0442\u043e\u043c\u0443","\u043c\u0456\u0441\u044f\u0446\u0456\u0432 \u0442\u043e\u043c\u0443")},year:"\u0440\u0456\u043a \u0442\u043e\u043c\u0443",years:function(a){return rpi.Time.declineNum(Math.round(a),"\u0440\u0456\u043a \u0442\u043e\u043c\u0443","\u0440\u043e\u043a\u0438 \u0442\u043e\u043c\u0443","\u0440\u043e\u043a\u0456\u0432 \u0442\u043e\u043c\u0443")}},ro:{second:"chiar acum",minute:"\u00een urm\u0103 minut",minutes:function(a){return rpi.Time.declineNum(Math.round(a),
"o minuta in urma","minute in urma","de minute in urma")},hour:"acum o ora",hours:function(a){return rpi.Time.declineNum(Math.round(a),"acum o ora","ore in urma","de ore in urma")},day:"o zi in urma",days:function(a){return rpi.Time.declineNum(Math.round(a),"o zi in urma","zile in urma","de zile in urma")},month:"o luna in urma",months:function(a){return rpi.Time.declineNum(Math.floor(a/30),"o luna in urma","luni in urma","de luni in urma")},year:"un an in urma",years:function(a){return rpi.Time.declineNum(Math.round(a),
"un an in urma","ani in urma","de ani in urma")}},lv:{second:"Maz\u0101k par min\u016bti",minute:"Pirms min\u016btes",minutes:function(a){return rpi.Time.declineNum(Math.round(a),"pirms min\u016btes","pirms min\u016bt\u0113m","pirms min\u016bt\u0113m")},hour:"pirms stundas",hours:function(a){return rpi.Time.declineNum(Math.round(a),"pirms stundas","pirms stund\u0101m","pirms stund\u0101m")},day:"pirms dienas",days:function(a){return rpi.Time.declineNum(Math.round(a),"pirms dienas","pirms dien\u0101m",
"pirms dien\u0101m")},month:"pirms m\u0113ne\u0161a",months:function(a){return rpi.Time.declineNum(Math.floor(a/30),"pirms m\u0113ne\u0161a","pirms m\u0113ne\u0161iem","pirms m\u0113ne\u0161iem")},year:"pirms gada",years:function(a){return rpi.Time.declineNum(Math.round(a),"pirms gada","pirms gadiem","pirms gadiem")}},lt:{second:"k\u0105 tik",minute:"prie\u0161 minut\u0119",minutes:function(a){return rpi.Time.declineNum(Math.round(a),"minut\u0117 prie\u0161","minut\u0117s prie\u0161","minu\u010di\u0173 prie\u0161")},
hour:"prie\u0161 valand\u0105",hours:function(a){return rpi.Time.declineNum(Math.round(a),"valanda prie\u0161","valandos prie\u0161","valand\u0173 prie\u0161")},day:"prie\u0161 dien\u0105",days:function(a){return rpi.Time.declineNum(Math.round(a),"diena prie\u0161","dienos prie\u0161","dien\u0173 prie\u0161")},month:"prie\u0161 m\u0117nes\u012f",months:function(a){return rpi.Time.declineNum(Math.floor(a/30),"m\u0117nes\u012f prie\u0161","m\u0117nesiai prie\u0161","m\u0117nesi\u0173 prie\u0161")},
year:"prie\u0161 metus",years:function(a){return rpi.Time.declineNum(Math.round(a),"metai prie\u0161","metai prie\u0161","met\u0173 prie\u0161")}},kk:{second:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442\u0442\u0430\u043d \u0430\u0437 \u0443\u0430\u049b\u044b\u0442 \u0431\u04b1\u0440\u044b\u043d",minute:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442 \u0431\u04b1\u0440\u044b\u043d",minutes:function(a){return rpi.Time.declineNum(Math.round(a),"\u043c\u0438\u043d\u0443\u0442 \u0431\u04b1\u0440\u044b\u043d",
"\u043c\u0438\u043d\u0443\u0442 \u0431\u04b1\u0440\u044b\u043d","\u043c\u0438\u043d\u0443\u0442 \u0431\u04b1\u0440\u044b\u043d")},hour:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442 \u0431\u04b1\u0440\u044b\u043d",hours:function(a){return rpi.Time.declineNum(Math.round(a),"\u0441\u0430\u0493\u0430\u0442 \u0431\u04b1\u0440\u044b\u043d","\u0441\u0430\u0493\u0430\u0442 \u0431\u04b1\u0440\u044b\u043d","\u0441\u0430\u0493\u0430\u0442 \u0431\u04b1\u0440\u044b\u043d")},day:"\u0431\u0456\u0440 \u043a\u04af\u043d \u0431\u04b1\u0440\u044b\u043d",
days:function(a){return rpi.Time.declineNum(Math.round(a),"\u043a\u04af\u043d \u0431\u04b1\u0440\u044b\u043d","\u043a\u04af\u043d \u0431\u04b1\u0440\u044b\u043d","\u043a\u04af\u043d \u0431\u04b1\u0440\u044b\u043d")},month:"\u0431\u0456\u0440 \u0430\u0439 \u0431\u04b1\u0440\u044b\u043d",months:function(a){return rpi.Time.declineNum(Math.floor(a/30),"\u0430\u0439 \u0431\u04b1\u0440\u044b\u043d","\u0430\u0439 \u0431\u04b1\u0440\u044b\u043d","\u0430\u0439 \u0431\u04b1\u0440\u044b\u043d")},year:"\u0431\u0456\u0440 \u0436\u044b\u043b \u0431\u04b1\u0440\u044b\u043d",
years:function(a){return rpi.Time.declineNum(Math.round(a),"\u0436\u044b\u043b \u0431\u04b1\u0440\u044b\u043d","\u0436\u044b\u043b \u0431\u04b1\u0440\u044b\u043d","\u0436\u044b\u043b \u0431\u04b1\u0440\u044b\u043d")}},ka:{second:"\u10ec\u10d0\u10db\u10d8\u10e1 \u10ec\u10d8\u10dc",minute:"\u10ec\u10e3\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc",minutes:function(a){return rpi.Time.declineNum(Math.round(a),"\u10ec\u10e3\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10ec\u10e3\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc",
"\u10ec\u10e3\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc")},hour:"\u10e1\u10d0\u10d0\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc",hours:function(a){return rpi.Time.declineNum(Math.round(a),"\u10e1\u10d0\u10d0\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10e1\u10d0\u10d0\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10e1\u10d0\u10d0\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc")},day:"\u10d3\u10e6\u10d8\u10e1 \u10ec\u10d8\u10dc",days:function(a){return rpi.Time.declineNum(Math.round(a),"\u10d3\u10e6\u10d8\u10e1 \u10ec\u10d8\u10dc",
"\u10d3\u10e6\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10d3\u10e6\u10d8\u10e1 \u10ec\u10d8\u10dc")},month:"\u10d7\u10d5\u10d8\u10e1 \u10ec\u10d8\u10dc",months:function(a){return rpi.Time.declineNum(Math.floor(a/30),"\u10d7\u10d5\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10d7\u10d5\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10d7\u10d5\u10d8\u10e1 \u10ec\u10d8\u10dc")},year:"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc",years:function(a){return rpi.Time.declineNum(Math.round(a),"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc",
"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc")}},hy:{second:"\u0574\u056b \u0584\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576 \u0561\u057c\u0561\u057b",minute:"\u0574\u0565\u056f \u0580\u0578\u057a\u0565 \u0561\u057c\u0561\u057b",minutes:function(a){return rpi.Time.declineNum(Math.round(a),"\u0580\u0578\u057a\u0565 \u0561\u057c\u0561\u057b","\u0580\u0578\u057a\u0565 \u0561\u057c\u0561\u057b","\u0580\u0578\u057a\u0565 \u0561\u057c\u0561\u057b")},
hour:"\u0574\u0565\u056f \u056a\u0561\u0574 \u0561\u057c\u0561\u057b",hours:function(a){return rpi.Time.declineNum(Math.round(a),"\u056a\u0561\u0574 \u0561\u057c\u0561\u057b","\u056a\u0561\u0574 \u0561\u057c\u0561\u057b","\u056a\u0561\u0574 \u0561\u057c\u0561\u057b")},day:"\u0574\u0565\u056f \u0585\u0580 \u0561\u057c\u0561\u057b",days:function(a){return rpi.Time.declineNum(Math.round(a),"\u0585\u0580 \u0561\u057c\u0561\u057b","\u0585\u0580 \u0561\u057c\u0561\u057b","\u0585\u0580 \u0561\u057c\u0561\u057b")},
month:"\u0574\u0565\u056f \u0561\u0574\u056b\u057d \u0561\u057c\u0561\u057b",months:function(a){return rpi.Time.declineNum(Math.floor(a/30),"\u0561\u0574\u056b\u057d \u0561\u057c\u0561\u057b","\u0561\u0574\u056b\u057d \u0561\u057c\u0561\u057b","\u0561\u0574\u056b\u057d \u0561\u057c\u0561\u057b")},year:"\u0574\u0565\u056f \u057f\u0561\u0580\u056b \u0561\u057c\u0561\u057b",years:function(a){return rpi.Time.declineNum(Math.round(a),"\u057f\u0561\u0580\u056b \u0561\u057c\u0561\u057b","\u057f\u0561\u0580\u056b \u0561\u057c\u0561\u057b",
"\u057f\u0561\u0580\u056b \u0561\u057c\u0561\u057b")}},fr:{second:"tout \u00e0 l'heure",minute:"environ une minute",minutes:function(a){return Math.round(a)+" minutes"},hour:"environ une heure",hours:function(a){return"environ "+Math.round(a)+" heures"},day:"un jour",days:function(a){return Math.round(a)+" jours"},month:"environ un mois",months:function(a){return Math.floor(a/30)+" mois"},year:"environ un an",years:function(a){return Math.round(a)+" ans"}},es:{second:"ahora",minute:"hace un minuto",
minutes:function(a){return"hace "+Math.round(a)+" minuts"},hour:"hace una hora",hours:function(a){return"hace "+Math.round(a)+" horas"},day:"hace un dia",days:function(a){return"hace "+Math.round(a)+" d\u00edas"},month:"hace un mes",months:function(a){return"hace "+Math.floor(a/30)+" meses"},year:"hace a\u00f1os",years:function(a){return"hace "+Math.round(a)+" a\u00f1os"}},el:{second:"\u03bb\u03b9\u03b3\u03cc\u03c4\u03b5\u03c1\u03bf \u03b1\u03c0\u03cc \u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",
minute:"\u03b3\u03cd\u03c1\u03c9 \u03c3\u03c4\u03bf \u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",minutes:function(a){return Math.round(a)+" minutes"},hour:"\u03b3\u03cd\u03c1\u03c9 \u03c3\u03c4\u03b7\u03bd \u03bc\u03b9\u03b1 \u03ce\u03c1\u03b1",hours:function(a){return"about "+Math.round(a)+" hours"},day:"\u03bc\u03b9\u03b1 \u03bc\u03ad\u03c1\u03b1",days:function(a){return Math.round(a)+" days"},month:"\u03b3\u03cd\u03c1\u03c9 \u03c3\u03c4\u03bf\u03bd \u03ad\u03bd\u03b1 \u03bc\u03ae\u03bd\u03b1",
months:function(a){return Math.floor(a/30)+" months"},year:"\u03b3\u03cd\u03c1\u03c9 \u03c3\u03c4\u03bf\u03bd \u03ad\u03bd\u03b1 \u03c7\u03c1\u03cc\u03bd\u03bf",years:function(a){return Math.round(a)+" years"}},de:{second:"soeben",minute:"vor einer Minute",minutes:function(a){return"vor "+Math.round(a)+" Minuten"},hour:"vor einer Stunde",hours:function(a){return"vor "+Math.round(a)+" Stunden"},day:"vor einem Tag",days:function(a){return"vor "+Math.round(a)+" Tagen"},month:"vor einem Monat",months:function(a){return"vor "+
Math.floor(a/30)+" Monaten"},year:"vor einem Jahr",years:function(a){return"vor "+Math.round(a)+" Jahren"}},be:{second:"\u043c\u0435\u043d\u0448 \u0437\u0430 \u0445\u0432\u0456\u043b\u0456\u043d\u0443 \u0442\u0430\u043c\u0443",minute:"\u0445\u0432\u0456\u043b\u0456\u043d\u0443 \u0442\u0430\u043c\u0443",minutes:function(a){return rpi.Time.declineNum(Math.round(a),"\u0445\u0432\u0456\u043b\u0456\u043d\u0430 \u0442\u0430\u043c\u0443","\u0445\u0432\u0456\u043b\u0456\u043d\u044b \u0442\u0430\u043c\u0443",
"\u0445\u0432\u0456\u043b\u0456\u043d \u0442\u0430\u043c\u0443")},hour:"\u0433\u0430\u0434\u0437\u0456\u043d\u0443 \u0442\u0430\u043c\u0443",hours:function(a){return rpi.Time.declineNum(Math.round(a),"\u0433\u0430\u0434\u0437\u0456\u043d\u0443 \u0442\u0430\u043c\u0443","\u0433\u0430\u0434\u0437\u0456\u043d\u044b \u0442\u0430\u043c\u0443","\u0433\u0430\u0434\u0437\u0456\u043d \u0442\u0430\u043c\u0443")},day:"\u0434\u0437\u0435\u043d\u044c \u0442\u0430\u043c\u0443",days:function(a){return rpi.Time.declineNum(Math.round(a),
"\u0434\u0437\u0435\u043d\u044c \u0442\u0430\u043c\u0443","\u0434\u043d\u0456 \u0442\u0430\u043c\u0443","\u0434\u0437\u0451\u043d \u0442\u0430\u043c\u0443")},month:"\u043c\u0435\u0441\u044f\u0446 \u0442\u0430\u043c\u0443",months:function(a){return rpi.Time.declineNum(Math.floor(a/30),"\u043c\u0435\u0441\u044f\u0446 \u0442\u0430\u043c\u0443","\u043c\u0435\u0441\u044f\u0446\u0430 \u0442\u0430\u043c\u0443","\u043c\u0435\u0441\u044f\u0446\u0430\u045e \u0442\u0430\u043c\u0443")},year:"\u0433\u043e\u0434 \u0442\u0430\u043c\u0443",
years:function(a){return rpi.Time.declineNum(Math.round(a),"\u0433\u043e\u0434 \u0442\u0430\u043c\u0443","\u0433\u0430\u0434\u044b \u0442\u0430\u043c\u0443","\u0433\u043e\u0434 \u0442\u0430\u043c\u0443")}},it:{second:"proprio ora",minute:"un minuto fa",minutes:function(a){return rpi.Time.declineNum(Math.round(a),"un minuto fa","minuti fa","minuti fa")},hour:"un'ora fa",hours:function(a){return rpi.Time.declineNum(Math.round(a),"un'ora fa","ore fa","ore fa")},day:"un giorno fa",days:function(a){return rpi.Time.declineNum(Math.round(a),
"un giorno fa","giorni fa","giorni fa")},month:"un mese fa",months:function(a){return rpi.Time.declineNum(Math.floor(a/30),"un mese fa","mesi fa","mesi fa")},year:"un anno fa",years:function(a){return rpi.Time.declineNum(Math.round(a),"un anno fa","anni fa","anni fa")}},tr:{second:"az \u00f6nce",minute:"dakika \u00f6nce",minutes:function(a){return Math.round(a)+" dakika \u00f6nce"},hour:"saat \u00f6nce",hours:function(a){return Math.round(a)+" saat \u00f6nce"},day:"g\u00fcn \u00f6nce",days:function(a){return Math.round(a)+
" g\u00fcn \u00f6nce"},month:"ay \u00f6nce",months:function(a){return Math.floor(a/30)+" ay \u00f6nce"},year:"y\u0131l \u00f6nce",years:function(a){return Math.round(a)+" y\u0131l \u00f6nce"}},nb:{second:"n\u00e5 nettopp",minute:"ett minutt siden",minutes:function(a){return Math.round(a)+" minutter siden"},hour:"en time siden",hours:function(a){return Math.round(a)+" timer siden"},day:"en dag siden",days:function(a){return Math.round(a)+" dager siden"},month:"en m\u00e5ned siden",months:function(a){return Math.floor(a/
30)+" m\u00e5neder siden"},year:"ett \u00e5r siden",years:function(a){return Math.round(a)+" \u00e5r siden"}},da:{second:"lige nu",minute:"et minut siden",minutes:function(a){return Math.round(a)+" minutter siden"},hour:"en time siden",hours:function(a){return Math.round(a)+" timer siden"},day:"en dag siden",days:function(a){return Math.round(a)+" dage siden"},month:"en m\u00e5ned siden",months:function(a){return Math.floor(a/30)+" m\u00e5neder siden"},year:"et \u00e5r siden",years:function(a){return Math.round(a)+
" \u00e5r siden"}},nl:{second:"zojuist",minute:"minuten geleden",minutes:function(a){return Math.round(a)+" minuten geleden"},hour:"uur geleden",hours:function(a){return Math.round(a)+" uur geleden"},day:"1 dag geleden",days:function(a){return Math.round(a)+" dagen geleden"},month:"maand geleden",months:function(a){return Math.floor(a/30)+" maanden geleden"},year:"jaar geleden",years:function(a){return Math.round(a)+" jaar geleden"}},ca:{second:"ara mateix",minute:"fa un minut",minutes:function(a){return"fa "+
Math.round(a)+" minuts"},hour:"fa una hora",hours:function(a){return"fa "+Math.round(a)+" hores"},day:"fa un dia",days:function(a){return"fa "+Math.round(a)+" dies"},month:"fa un mes",months:function(a){return"fa "+Math.floor(a/30)+" mesos"},year:"fa un any",years:function(a){return"fa "+Math.round(a)+" anys"}},sv:{second:"just nu",minute:"en minut sedan",minutes:function(a){return Math.round(a)+" minuter sedan"},hour:"en timme sedan",hours:function(a){return Math.round(a)+" timmar sedan"},day:"en dag sedan",
days:function(a){return Math.round(a)+" dagar sedan"},month:"en m\u00e5nad sedan",months:function(a){return Math.floor(a/30)+" m\u00e5nader sedan"},year:"ett \u00e5r sedan",years:function(a){return Math.round(a)+" \u00e5r sedan"}},pl:{second:"w\u0142a\u015bnie teraz",minute:"minut\u0119 temu",minutes:function(a){return Math.round(a)+" minut temu"},hour:"godzin\u0119 temu",hours:function(a){return Math.round(a)+" godzin temu"},day:"wczoraj",days:function(a){return Math.round(a)+" dni temu"},month:"miesi\u0105c temu",
months:function(a){return Math.floor(a/30)+" miesi\u0119cy temu"},year:"rok temu",years:function(a){return Math.round(a)+" lat temu"}},pt:{second:"agora",minute:"1 minuto atr\u00e1s",minutes:function(a){return Math.round(a)+" minutos atr\u00e1s"},hour:"1 hora atr\u00e1s",hours:function(a){return Math.round(a)+" horas atr\u00e1s"},day:"1 dia atr\u00e1s",days:function(a){return Math.round(a)+" dias atr\u00e1s"},month:"1 m\u00eas atr\u00e1s",months:function(a){return Math.floor(a/30)+" meses atr\u00e1s"},
year:"1 ano atr\u00e1s",years:function(a){return Math.round(a)+" anos atr\u00e1s"}},hu:{second:"\u00e9pp az im\u00e9nt",minute:"1 perccel ezel\u0151tt",minutes:function(a){return Math.round(a)+" perccel ezel\u0151tt"},hour:"\u00f3r\u00e1val ezel\u0151tt",hours:function(a){return Math.round(a)+" \u00f3r\u00e1val ezel\u0151tt"},day:"nappal ezel\u0151tt",days:function(a){return Math.round(a)+" nappal ezel\u0151tt"},month:"h\u00f3nappal ezel\u0151tt",months:function(a){return Math.floor(a/30)+" h\u00f3nappal ezel\u0151tt"},
year:"\u00e9vvel ezel\u0151tt",years:function(a){return Math.round(a)+" \u00e9vvel ezel\u0151tt"}},fi:{second:"juuri nyt",minute:"minuutti sitten",minutes:function(a){return Math.round(a)+" minuuttia sitten"},hour:"tunti sitten",hours:function(a){return Math.round(a)+" tuntia sitten"},day:"p\u00e4iv\u00e4 sitten",days:function(a){return Math.round(a)+" p\u00e4iv\u00e4\u00e4 sitten"},month:"kuukausi sitten",months:function(a){return Math.floor(a/30)+" kuukautta sitten"},year:"vuosi sitten",years:function(a){return Math.round(a)+
" vuotta sitten"}},he:{second:"\u05d4\u05e8\u05d2\u05e2",minute:"\u05dc\u05e4\u05e0\u05d9 \u05d3\u05e7\u05d4",minutes:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05d3\u05e7\u05d5\u05ea"},hour:"\u05dc\u05e4\u05e0\u05d9 \u05e9\u05e2\u05d4",hours:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05e9\u05e2\u05d5\u05ea"},day:"\u05dc\u05e4\u05e0\u05d9 \u05d9\u05d5\u05dd",days:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05d9\u05de\u05d9\u05dd"},month:"\u05dc\u05e4\u05e0\u05d9 \u05d7\u05d5\u05d3\u05e9",
months:function(a){return 2==Math.floor(a/30)?"\u05dc\u05e4\u05e0\u05d9 \u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":"\u05dc\u05e4\u05e0\u05d9 "+Math.floor(a/30)+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},year:"\u05dc\u05e4\u05e0\u05d9 \u05e9\u05e0\u05d4",years:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05e9\u05e0\u05d9\u05dd"}},bg:{second:"\u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430",minute:"\u043f\u0440\u0435\u0434\u0438 1 \u043c\u0438\u043d\u0443\u0442\u0430",minutes:function(a){return"\u043f\u0440\u0435\u0434\u0438 "+
Math.round(a)+" \u043c\u0438\u043d\u0443\u0442\u0438"},hour:"\u043f\u0440\u0435\u0434\u0438 1 \u0447\u0430\u0441",hours:function(a){return"\u043f\u0440\u0435\u0434\u0438 "+Math.round(a)+" \u0447\u0430\u0441\u0430"},day:"\u043f\u0440\u0435\u0434\u0438 1 \u0434\u0435\u043d",days:function(a){return"\u043f\u0440\u0435\u0434\u0438 "+Math.round(a)+" \u0434\u043d\u0438"},month:"\u043f\u0440\u0435\u0434\u0438 1 \u043c\u0435\u0441\u0435\u0446",months:function(a){return"\u043f\u0440\u0435\u0434\u0438 "+Math.floor(a/
30)+" \u043c\u0435\u0441\u0435\u0446\u0430"},year:"\u043f\u0440\u0435\u0434\u0438 1 \u0433\u043e\u0434\u0438\u043d\u0430",years:function(a){return"\u043f\u0440\u0435\u0434\u0438 "+Math.round(a)+" \u0433\u043e\u0434\u0438\u043d\u0438"}},sk:{second:"pr\u00e1ve teraz",minute:"pred min\u00fatov",minutes:function(a){return"pred "+Math.round(a)+" min\u00fatami"},hour:"pred hodinou",hours:function(a){return"pred "+Math.round(a)+" hodinami"},day:"v\u010dera",days:function(a){return"pred "+Math.round(a)+" d\u0148ami"},
month:"pred mesiacom",months:function(a){return"pred "+Math.floor(a/30)+" mesiacmi"},year:"pred rokom",years:function(a){return"pred "+Math.round(a)+" rokmi"}},lo:{second:"\u0ea7\u0eb1\u0ec8\u0e87\u0e81\u0eb5\u0ec9\u0e99\u0eb5\u0ec9",minute:"\u0edc\u0eb6\u0ec8\u0e87\u0e99\u0eb2\u0e97\u0eb5\u0e81\u0ec8\u0ead\u0e99",minutes:function(a){return Math.round(a)+" \u0e99\u0eb2\u0e97\u0eb5\u0e81\u0ec8\u0ead\u0e99"},hour:"\u0edc\u0eb6\u0ec8\u0e87\u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87\u0e81\u0ec8\u0ead\u0e99",
hours:function(a){return Math.round(a)+" \u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87\u0e81\u0ec8\u0ead\u0e99"},day:"\u0edc\u0eb6\u0ec8\u0e87\u0ea1\u0eb7\u0ec9\u0e81\u0ec8\u0ead\u0e99",days:function(a){return Math.round(a)+" \u0ea1\u0eb7\u0ec9\u0e81\u0ec8\u0ead\u0e99"},month:"\u0edc\u0eb6\u0ec8\u0e87\u0ec0\u0e94\u0eb7\u0ead\u0e99\u0e81\u0ec8\u0ead\u0e99",months:function(a){return Math.floor(a/30)+" \u0ec0\u0e94\u0eb7\u0ead\u0e99\u0e81\u0ec8\u0ead\u0e99"},year:"\u0edc\u0eb6\u0ec8\u0e87\u0e9b\u0eb5\u0e81\u0ec8\u0ead\u0e99",
years:function(a){return Math.round(a)+" \u0e9b\u0eb5\u0e81\u0ec8\u0ead\u0e99"}},sl:{second:"pravkar",minute:"pred eno minuto",minutes:function(a){return"pred "+Math.round(a)+" minutami"},hour:"pred eno uro",hours:function(a){return"pred "+Math.round(a)+" urami"},day:"pred enim dnem",days:function(a){return"pred "+Math.round(a)+" dnevi"},month:"pred enim mesecem",months:function(a){return"pred "+Math.floor(a/30)+" meseci"},year:"pred enim letom",years:function(a){return"pred "+Math.round(a)+" leti"}},
et:{second:"just n\u00fc\u00fcd",minute:"minut tagasi",minutes:function(a){return Math.round(a)+" minutit tagasi"},hour:"tund tagasi",hours:function(a){return Math.round(a)+" tundi tagasi"},day:"p\u00e4ev tagasi",days:function(a){return Math.round(a)+" p\u00e4eva tagasi"},month:"kuu aega tagasi",months:function(a){return Math.floor(a/30)+" kuud tagasi"},year:"aasta tagasi",years:function(a){return Math.round(a)+" aastat tagasi"}},ja:{second:"\u305f\u3063\u305f\u4eca",minute:"1\u5206\u524d",minutes:function(a){return Math.round(a)+
"\u5206\u524d"},hour:"1\u6642\u9593\u524d",hours:function(a){return Math.round(a)+"\u6642\u9593\u524d"},day:"1\u65e5\u524d",days:function(a){return Math.round(a)+"\u65e5\u524d"},month:"1\u30f6\u6708\u524d",months:function(a){return Math.floor(a/30)+"\u30f6\u6708\u524d"},year:"1\u5e74\u524d",years:function(a){return Math.round(a)+"\u5e74\u524d"}}};rpi=rpi||{};
rpi.Utils={__:function(a,e){return e&&e[a]||a},isVisible:function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)&&"hidden"!==window.getComputedStyle(a).visibility},isRTL:function(){return"rtl"==(window.getComputedStyle?window.getComputedStyle(document.body,null).getPropertyValue("direction"):document.body.currentStyle.direction)},getParent:function(a,e){e=e||"rplg";if(0>a.className.split(" ").indexOf(e))for(;(a=a.parentElement)&&0>a.className.split(" ").indexOf(e););return a},
lang:function(){var a=navigator;return(a.language||a.systemLanguage||a.userLanguage||"en").substr(0,2).toLowerCase()},popup:function(a,e,f){var l=document.documentElement;a=window.open(a,"","scrollbars=yes, width="+e+", height="+f+", top="+((window.innerHeight?window.innerHeight:l.clientHeight?l.clientHeight:screen.height)/2-f/2+(void 0!=window.screenTop?window.screenTop:window.screenY))+", left="+((window.innerWidth?window.innerWidth:l.clientWidth?l.clientWidth:screen.width)/2-e/2+(void 0!=window.screenLeft?
window.screenLeft:window.screenX)));window.focus&&a.focus();return a},ajax:function(a,e,f,l){const d=new XMLHttpRequest;d.open(e,a,!0);d.setRequestHeader("Content-Type","application/json");d.onreadystatechange=function(){if((d.readyState===XMLHttpRequest.DONE||d.readyState===d.DONE)&&200===d.status){const m=JSON.parse(d.responseText);"function"===typeof l?l(m):"function"===typeof f&&f(m)}};d.send(f&&"function"!==typeof f?JSON.stringify(f):null)},anchor:function(a,e,f,l,d){const m=[];f.open_link&&
m.push("noopener");f.nofollow_link&&m.push("nofollow");return'<a href="'+a+'"'+(l?' class="'+l+'"':"")+(f.open_link?' target="_blank"':"")+(m.length?' rel="'+m.join(" ")+'"':"")+(d?' aria-label="'+d+'"':"")+">"+e+"</a>"},rm:function(a){a&&a.parentNode&&a.parentNode.removeChild(a)},capit:function(a){return a.charAt(0).toUpperCase()+a.slice(1)},clear:function(){this.rm(document.getElementById("rpi-style"));if(rpi.Instances)for(;rpi.Instances.length;)rpi.Instances.pop().clear()}};rpi=rpi||{};
rpi.Column=function(a,e,f){const l=a.getAttribute("data-id"),d=new RegExp(f.col+"-[xsml]+"),m=new RegExp('$|(\\[data-id="'+l+'"\\]\\s+.'+f.card+"\\s*{\\s*--col:\\s*\\d+\\s*!important\\s*;?(\\s*--gap:\\s*\\d+\\s*!important;?)?})"),h=a.getElementsByClassName(f.cnt)[0];var n=null;return n={init:function(g,p){rpi.Utils.isVisible(h)?(g&&g(),n.resize(),window.addEventListener("resize",n.resize),p&&p(),rpi.Instances=rpi.Instances||[],rpi.Instances.push(n)):setTimeout(n.init,300)},resize:function(){let g=
n.getSize();h.className=h.className.replace(d,f.col+"-"+g);if(e.breakpoints){let p=h.offsetWidth,c=e.breakpoints.split(",");c.sort(n.brsort);for(let r=0;r<c.length;r++){let t=c[r].split(":");if(p<parseInt(t[0])){n.setCol(t[1]);break}}}return g},getSize:function(){let g=h.offsetWidth;return 510>g?"xs":750>g?"x":1100>g?"s":1450>g?"m":1800>g?"l":"xl"},setCol:function(g){const p=this.getStyle();p.innerHTML=p.innerHTML.replace(m,(l?'[data-id="'+l+'"] ':"")+"."+f.card+"{--col:"+g+"!important;--gap:"+(g-
1)+"!important}")},getCol:function(){let g=this.getStyle().innerHTML.match(/--col:\s*(\d+)/);return g&&1<g.length?g[1]:!1},getStyle:function(){let g=document.getElementById("rpi-style");g||(g=document.createElement("style"),g.id="rpi-style",document.head.appendChild(g));return g},setBreakpoints:function(g){e.breakpoints=g},brsort:function(g,p){return parseInt(g.split(":")[0])>parseInt(p.split(":")[0])?1:-1},clear:function(){window.removeEventListener("resize",n.resize)}}};rpi=rpi||{};
rpi.Common=function(a,e,f){var l=null;return l={init:function(){var d=a.getElementsByClassName(f.time);let m=a.getElementsByClassName(f.text);for(var h=0;h<d.length;h++)d[h].innerHTML=l.time(d[h].getAttribute("data-time"));for(d=0;d<m.length;d++)(h=m[d])&&h.innerHTML&&(h.innerHTML=l.trimtext(h.innerHTML),h=h.getElementsByClassName(f.readmore)[0])&&(h.onclick=l.opentext)},initOnce:function(d){var m=d.getElementsByClassName(f.time)[0];d=d.getElementsByClassName(f.text)[0];m&&(m.innerHTML=l.time(m.getAttribute("data-time")));
d&&d.innerHTML&&(d.innerHTML=l.trimtext(d.innerHTML),m=d.getElementsByClassName(f.readmore)[0])&&(m.onclick=l.opentext)},time:function(d){return e.time_format?d:rpi.Time.getTimeAgo(1E3*parseInt(d),rpi.Utils.lang())},trimtext:function(d,m){var h=parseInt(e.text_size);if(d&&h&&d.length>h){var n=d.substring(0,h).indexOf(" ")+1;if(1>n||h-n>h/2)n=h;var g=h="";0<n&&(h=d.substring(0,n-1),g=d.substring(n-1,d.length));return h+(!m&&g?'<span class="rpi-s">... </span><input type="hidden" value="'+encodeURIComponent(g)+
'"></input><span class="'+f.readmore+'">'+rpi.Utils.__("read more",e.trans)+"</span>":"")}return d},opentext:function(){let d=this.parentNode,m=this.previousSibling,h=this.previousSibling.previousSibling,n=decodeURIComponent(m.value);rpi.Utils.rm(m);rpi.Utils.rm(h);rpi.Utils.rm(this);d.innerHTML+=n}}};rpi=rpi||{};
rpi.Media=function(a,e,{root:f="rpi",card:l="rpi-card"}={}){var d=null,m=null;return m={init:function(){d=a.getElementsByClassName("rpi-thumb");for(let h=0;h<d.length;h++)d[h].setAttribute("data-idx",h),function(n,g){n.onclick=function(){m.show(n,g);return!1}}(d[h],h)},clicks:function(h){h=h.getElementsByClassName("rpi-thumb");for(let n=0;n<h.length;n++)(function(g,p){g.onclick=function(){let c=parseInt(g.getAttribute("data-idx"));m.show(d[c],c);return!1}})(h[n],n)},show:function(h,n){if(!(0>n||n>=
d.length)){var g=document.querySelector(".rpi-lightbox"),p=h.src.replace(/=s[0-9]{1,3}/g,"=s500");h=rpi.Utils.getParent(h,l).outerHTML;if(g){let c=g.querySelector(".rpi-lightbox-media img"),r=g.querySelector(".rpi-lightbox-review"),t=g.querySelector(".rpi-lightbox-prev");next=g.querySelector(".rpi-lightbox-next");c.src=p;r.innerHTML!==h&&(r.innerHTML=h,m.clicks(r));t.onclick=function(w){m.show(d[n-1],n-1)};next.onclick=function(w){m.show(d[n+1],n+1)}}else g=document.createElement("div"),g.className=
"rpi-lightbox",g.innerHTML='<div class="rpi-x"></div><div class="rpi-lightbox-inner"><div class="rpi-lightbox-xxx"><div class="rpi-lightbox-content"><div class="rpi-lightbox-media"><div class="rpi-lightbox-btn rpi-lightbox-prev"></div><img src="'+p+'" alt=""><div class="rpi-lightbox-btn rpi-lightbox-next"></div></div><div class="'+f+' rpi-lightbox-review">'+h+"</div></div></div></div>",p=g.querySelector(".rpi-x"),h=g.querySelector(".rpi-lightbox-prev"),next=g.querySelector(".rpi-lightbox-next"),p.onclick=
function(){g.style.display="none"},g.onclick=function(c){g==c.target&&(g.style.display="none")},h.onclick=function(c){m.show(d[n-1],n-1)},next.onclick=function(c){m.show(d[n+1],n+1)},m.clicks(g),document.body.appendChild(g);g.style.display="flex"}}}};rpi=rpi||{};
rpi.Slider=function(a,e,f,l){a.getAttribute("data-id");const d=a.getElementsByClassName(f.cnt)[0],m=a.getElementsByClassName(f.content)[0],h=m?m.getElementsByClassName(f.cards)[0]:null,n=m?m.getElementsByClassName(f.dotsWrap)[0]:null,g=m?m.getElementsByClassName(f.dots)[0]:null,p=h?parseInt(h.getAttribute("data-count")):0;var c=null,r=m?m.getElementsByClassName(f.card):null,t="",w="",z=null,x=null,v=null,A=null,B=!1,y=!1,C=0,D=0;return c={init:function(b,k){rpi.Utils.isVisible(d)?(b&&b(),c.resize(),
c.actions(),r.length&&c.swipeAutoStart(),k&&k(),rpi.Instances=rpi.Instances||[],rpi.Instances.push(c)):setTimeout(c.init,300)},resize:function(b){let k=l.column.resize(),q=l.column.getCol();b&&h.scrollLeft!=b*c.reviewWidth()&&h.scrollTo(r[b].offsetLeft,0);!r.length||t==k&&w==q||(c.hasDots()&&(c.dotsInit(),c.dotSwipe(b,!0)),t=k,w=q)},actions:function(){e.mousestop&&c.addMouseEvents();window.addEventListener("resize",c.resizeListener);h&&(h.addEventListener("scroll",c.scrollListener,!1),e.wheelscroll&&
m.addEventListener("wheel",c.wheelListener,!1));var b=d.getElementsByClassName(f.btnPrev)[0];b&&(b.onclick=function(k){c.btnClick(-1)});if(b=d.getElementsByClassName(f.btnNext)[0])b.onclick=function(k){c.btnClick(1)}},resizeListener:function(){var b=D;clearTimeout(z);z=setTimeout(c.resize,150,b)},scrollListener:function(){clearTimeout(x);clearTimeout(v);v=setTimeout(c.scrollEnd,150)},wheelListener:function(b){var k=b.target;if((k=-1<k.className.indexOf(f.text)?k:-1<k.parentNode.className.indexOf(f.text)?
k.parentNode:null)&&k.scrollHeight>k.clientHeight)return!0;b.preventDefault();C++;clearTimeout(A);A=setTimeout(c.wheelEnd,150,b)},addMouseEvents:function(){d.addEventListener("mouseover",c.mouseOver,!1);d.addEventListener("mouseleave",c.mouseLeave,!1)},delMouseEvents:function(){d.removeEventListener("mouseover",c.mouseOver);d.removeEventListener("mouseleave",c.mouseLeave)},mouseOver:function(){B=1;c.swipeAutoStop()},mouseLeave:function(){B=0;c.swipeAutoStart()},btnClick:function(b){c.swipeManual(b*
c.swipePerBtn())},wheelEnd:function(b){c.swipeManual(Math.sign(b.wheelDelta)*C*c.swipeStep());C=0},scrollEnd:function(){D=c.reviewsIdx();y?y=!1:c.loadNextReviews();(!e.mousestop||B)&&e.mousestop||(!e.clickstop||y)&&e.clickstop||c.swipeAutoStart();c.hasDots()&&c.dotSwipe(void 0,!0)},loadNextReviews:function(b){b=b?c.reviewsIdx()+parseInt(b):c.hasDots()?(b=g.getElementsByClassName("active")[0])?parseInt(b.getAttribute("data-index"))*c.swipePerDot():c.reviewsIdx():c.reviewsIdx();b=c.getAjaxSize(b);0<
b&&l.view.loadNextReviews(b)},getAjaxSize:function(b){let k=0;const q=parseInt(h.getAttribute("data-offset")),u=parseInt(e.pagination);if(p>q){let E=b-q;Math.abs(E)<3*c.swipePerDot()?k=u:E&&(k=Math.ceil(b/u)*u-q)}b=q+k-p;return 0<b?k-b:k},dotsInit:function(){if(g){var b=Math.round(p/c.swipePerDot());g.innerHTML="";for(let k=0;k<b;k++){let q=document.createElement("div");q.className=f.dot;q.setAttribute("data-index",k);q.setAttribute("title",k);q.onclick=c.dotClick;g.appendChild(q)}c.dotsPadding()}},
dotClick:function(){let b=parseInt(this.getAttribute("data-index"));var k=g.getElementsByClassName("active")[0];k=parseInt(k.getAttribute("data-index"));c.swipeManual(Math.abs(b-k)*c.swipePerDot()*Math.sign(b-k))},dotsPadding:function(){let b=n.getBoundingClientRect().height;d.style.paddingBottom=b+"px"},dotSwipe:function(b,k){b=Math.round((void 0!==b?b:c.reviewsIdx())/c.swipePerDot());b=0>b?0:b>=g.childNodes.length?g.childNodes.length-1:b;b=g.querySelector("."+f.dot+'[data-index="'+b+'"]');let q=
g.getElementsByClassName("active")[0];c.dotActivate(q,b);c.dotScroll(b,k)},dotScroll:function(b,k){let q=Math.round(g.scrollWidth/g.childNodes.length),u=Math.floor(Math.round(g.offsetWidth/q)/2);k?g.scrollTo(b.offsetLeft-u*q,0):g.scrollTo({left:b.offsetLeft-u*q,behavior:"smooth"})},dotActivate:function(b,k){b&&(b.classList.remove("active"),b.classList.remove("s1"),b.previousSibling&&(b.previousSibling.classList.remove("s2"),b.previousSibling.previousSibling&&b.previousSibling.previousSibling.classList.remove("s3")),
b.nextSibling&&(b.nextSibling.classList.remove("s2"),b.nextSibling.nextSibling&&b.nextSibling.nextSibling.classList.remove("s3")));k&&(k.classList.add("active"),k.classList.add("s1"),k.previousSibling&&(k.previousSibling.classList.add("s2"),k.previousSibling.previousSibling&&k.previousSibling.previousSibling.classList.add("s3")),k.nextSibling&&(k.nextSibling.classList.add("s2"),k.nextSibling.nextSibling&&k.nextSibling.nextSibling.classList.add("s3")))},swipeManual:function(b){y=!0;c.loadNextReviews(b);
c.scroll(b);e.clickstop&&(c.swipeAutoStop(),c.delMouseEvents())},swipeAuto:function(){if(c.isScrollEnd())c.scroll(-(p-c.reviewsPerView()));else{let b=c.swipeStep()<c.reviewsAhead()?c.swipeStep():c.reviewsAhead();c.scroll(b)}c.swipeAutoStart()},scroll:function(b){b=c.reviewsIdx()+parseInt(b);let k=rpi.Utils.isRTL()?b+c.reviewsPerView()-1:b;k=0>k?0:k>=r.length?r.length-1:k;-1<k&&k<r.length&&(h.scrollTo({left:r[k].offsetLeft,behavior:"smooth"}),c.hasDots()&&c.dotSwipe(b))},swipeAutoStart:function(){e.autoplay&&
(x=setTimeout(c.swipeAuto,1E3*parseInt(e.speed)))},swipeAutoStop:function(){clearTimeout(x);v&&setTimeout(function(){clearTimeout(v)},100)},isScrollEnd:function(){var b=h.querySelector("."+f.card+":last-child"),k=b.getBoundingClientRect();b=b.parentNode.getBoundingClientRect();return(2>Math.abs(b.left-k.left)||b.left<=k.left)&&k.left<b.right&&(2>Math.abs(b.right-k.right)||b.right>=k.right)&&k.right>b.left},swipeStep:function(){return e.swipe_step||c.reviewsPerView()},swipePerBtn:function(){return e.swipe_per_btn||
c.reviewsPerView()},swipePerDot:function(){return e.swipe_per_dot||c.reviewsPerView()},reviewWidth:function(){return Math.round(h.scrollWidth/r.length)},reviewHeight:function(){return r[0].offsetHeight},reviewsPerView:function(){return Math.round(h.offsetWidth/c.reviewWidth())},reviewsIdx:function(){let b=rpi.Utils.isRTL()?-h.scrollLeft:h.scrollLeft;return Math.round(b/c.reviewWidth())},reviewsAhead:function(){return r.length-(c.reviewsIdx()+c.reviewsPerView())},hasDots:function(){return g&&!e.hide_dots&&
0<c.swipePerDot()},setBreakpoints:function(b){l.column.setBreakpoints(b);c.resize()},clear:function(){clearTimeout(z);clearTimeout(x);clearTimeout(v);clearTimeout(A);window.removeEventListener("resize",c.resizeListener);h.removeEventListener("scroll",c.scrollListener);m.removeEventListener("wheel",c.wheelListener)}}};
function rplg_badge_init(a,e,f){var l=a.querySelector(".wp-"+e+"-badge"),d=a.querySelector(".wp-"+e+"-form");l&&d&&(a=document.createElement("div"),a.className=f+" wpac",-1<l.className.indexOf("-fixed")&&a.appendChild(l),a.appendChild(d),document.body.appendChild(a),l.onclick=function(){d.style.display="block"})}
function rplg_next_reviews(a,e){var f=this.parentNode,l="."+a+"-review."+a+"-hide";reviews=f.querySelectorAll(l);for(var d=0;d<e&&d<reviews.length;d++)reviews[d]&&(reviews[d].className=reviews[d].className.replace(a+"-hide"," "));reviews=f.querySelectorAll(l);1>reviews.length&&f.removeChild(this);return!1}function rplg_leave_review_window(){rpi.Utils.popup(this.getAttribute("href"),620,500);return!1}
function grw_init(a,e){a=rpi.Utils.getParent(a,"wp-gr");if("true"!=a.getAttribute("data-exec")){a.setAttribute("data-exec","true");var f=JSON.parse(a.getAttribute("data-options"));rpi.Common(a,f,{time:"wp-google-time",text:"wp-google-text",readmore:"wp-more-toggle"}).init();rpi.Media(a,{},{root:"wp-gr",card:"grw-review"}).init();!a.getElementsByClassName("grw-review")[0]||"slider"!=e&&"grid"!=e||(e=a.getElementsByClassName("grw-row")[0],e=JSON.parse(e.getAttribute("data-options")),f=rpi.Column(a,
e,{cnt:"grw-row",col:"grw-row",card:"grw-review"}),rpi.Slider(a,e,{cnt:"grw-row",col:"grw-row",content:"grw-content",cards:"grw-reviews",card:"grw-review",text:"wp-google-text",btnPrev:"grw-prev",btnNext:"grw-next",dotsWrap:"rpi-dots-wrap",dots:"rpi-dots",dot:"rpi-dot"},{column:f}).init())}}document.addEventListener("DOMContentLoaded",function(){const a=document.querySelectorAll('.wp-gr[data-exec="false"]');for(let f=0;f<a.length;f++){var e=a[f];grw_init(e,e.getAttribute("data-layout"))}});
;
/**
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
;(function(window, document) {
/*jshint evil:true */
  /** version */
  var version = '3.7.3';

  /** Preset options */
  var options = window.html5 || {};

  /** Used to skip problem elements */
  var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;

  /** Not all elements can be cloned in IE **/
  var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;

  /** Detect whether the browser supports default html5 styles */
  var supportsHtml5Styles;

  /** Name of the expando, to work with multiple documents or to re-shiv one document */
  var expando = '_html5shiv';

  /** The id for the the documents expando */
  var expanID = 0;

  /** Cached data for each document */
  var expandoData = {};

  /** Detect whether the browser supports unknown elements */
  var supportsUnknownElements;

  (function() {
    try {
        var a = document.createElement('a');
        a.innerHTML = '<xyz></xyz>';
        //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
        supportsHtml5Styles = ('hidden' in a);

        supportsUnknownElements = a.childNodes.length == 1 || (function() {
          // assign a false positive if unable to shiv
          (document.createElement)('a');
          var frag = document.createDocumentFragment();
          return (
            typeof frag.cloneNode == 'undefined' ||
            typeof frag.createDocumentFragment == 'undefined' ||
            typeof frag.createElement == 'undefined'
          );
        }());
    } catch(e) {
      // assign a false positive if detection fails => unable to shiv
      supportsHtml5Styles = true;
      supportsUnknownElements = true;
    }

  }());

  /*--------------------------------------------------------------------------*/

  /**
   * Creates a style sheet with the given CSS text and adds it to the document.
   * @private
   * @param {Document} ownerDocument The document.
   * @param {String} cssText The CSS text.
   * @returns {StyleSheet} The style element.
   */
  function addStyleSheet(ownerDocument, cssText) {
    var p = ownerDocument.createElement('p'),
        parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;

    p.innerHTML = 'x<style>' + cssText + '</style>';
    return parent.insertBefore(p.lastChild, parent.firstChild);
  }

  /**
   * Returns the value of `html5.elements` as an array.
   * @private
   * @returns {Array} An array of shived element node names.
   */
  function getElements() {
    var elements = html5.elements;
    return typeof elements == 'string' ? elements.split(' ') : elements;
  }

  /**
   * Extends the built-in list of html5 elements
   * @memberOf html5
   * @param {String|Array} newElements whitespace separated list or array of new element names to shiv
   * @param {Document} ownerDocument The context document.
   */
  function addElements(newElements, ownerDocument) {
    var elements = html5.elements;
    if(typeof elements != 'string'){
      elements = elements.join(' ');
    }
    if(typeof newElements != 'string'){
      newElements = newElements.join(' ');
    }
    html5.elements = elements +' '+ newElements;
    shivDocument(ownerDocument);
  }

   /**
   * Returns the data associated to the given document
   * @private
   * @param {Document} ownerDocument The document.
   * @returns {Object} An object of data.
   */
  function getExpandoData(ownerDocument) {
    var data = expandoData[ownerDocument[expando]];
    if (!data) {
        data = {};
        expanID++;
        ownerDocument[expando] = expanID;
        expandoData[expanID] = data;
    }
    return data;
  }

  /**
   * returns a shived element for the given nodeName and document
   * @memberOf html5
   * @param {String} nodeName name of the element
   * @param {Document|DocumentFragment} ownerDocument The context document.
   * @returns {Object} The shived element.
   */
  function createElement(nodeName, ownerDocument, data){
    if (!ownerDocument) {
        ownerDocument = document;
    }
    if(supportsUnknownElements){
        return ownerDocument.createElement(nodeName);
    }
    if (!data) {
        data = getExpandoData(ownerDocument);
    }
    var node;

    if (data.cache[nodeName]) {
        node = data.cache[nodeName].cloneNode();
    } else if (saveClones.test(nodeName)) {
        node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
    } else {
        node = data.createElem(nodeName);
    }

    // Avoid adding some elements to fragments in IE < 9 because
    // * Attributes like `name` or `type` cannot be set/changed once an element
    //   is inserted into a document/fragment
    // * Link elements with `src` attributes that are inaccessible, as with
    //   a 403 response, will cause the tab/window to crash
    // * Script elements appended to fragments will execute when their `src`
    //   or `text` property is set
    return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
  }

  /**
   * returns a shived DocumentFragment for the given document
   * @memberOf html5
   * @param {Document} ownerDocument The context document.
   * @returns {Object} The shived DocumentFragment.
   */
  function createDocumentFragment(ownerDocument, data){
    if (!ownerDocument) {
        ownerDocument = document;
    }
    if(supportsUnknownElements){
        return ownerDocument.createDocumentFragment();
    }
    data = data || getExpandoData(ownerDocument);
    var clone = data.frag.cloneNode(),
        i = 0,
        elems = getElements(),
        l = elems.length;
    for(;i<l;i++){
        clone.createElement(elems[i]);
    }
    return clone;
  }

  /**
   * Shivs the `createElement` and `createDocumentFragment` methods of the document.
   * @private
   * @param {Document|DocumentFragment} ownerDocument The document.
   * @param {Object} data of the document.
   */
  function shivMethods(ownerDocument, data) {
    if (!data.cache) {
        data.cache = {};
        data.createElem = ownerDocument.createElement;
        data.createFrag = ownerDocument.createDocumentFragment;
        data.frag = data.createFrag();
    }


    ownerDocument.createElement = function(nodeName) {
      //abort shiv
      if (!html5.shivMethods) {
          return data.createElem(nodeName);
      }
      return createElement(nodeName, ownerDocument, data);
    };

    ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
      'var n=f.cloneNode(),c=n.createElement;' +
      'h.shivMethods&&(' +
        // unroll the `createElement` calls
        getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
          data.createElem(nodeName);
          data.frag.createElement(nodeName);
          return 'c("' + nodeName + '")';
        }) +
      ');return n}'
    )(html5, data.frag);
  }

  /*--------------------------------------------------------------------------*/

  /**
   * Shivs the given document.
   * @memberOf html5
   * @param {Document} ownerDocument The document to shiv.
   * @returns {Document} The shived document.
   */
  function shivDocument(ownerDocument) {
    if (!ownerDocument) {
        ownerDocument = document;
    }
    var data = getExpandoData(ownerDocument);

    if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
      data.hasCSS = !!addStyleSheet(ownerDocument,
        // corrects block display not defined in IE6/7/8/9
        'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
        // adds styling not present in IE6/7/8/9
        'mark{background:#FF0;color:#000}' +
        // hides non-rendered elements
        'template{display:none}'
      );
    }
    if (!supportsUnknownElements) {
      shivMethods(ownerDocument, data);
    }
    return ownerDocument;
  }

  /*--------------------------------------------------------------------------*/

  /**
   * The `html5` object is exposed so that more elements can be shived and
   * existing shiving can be detected on iframes.
   * @type Object
   * @example
   *
   * // options can be changed before the script is included
   * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
   */
  var html5 = {

    /**
     * An array or space separated string of node names of the elements to shiv.
     * @memberOf html5
     * @type Array|String
     */
    'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',

    /**
     * current version of html5shiv
     */
    'version': version,

    /**
     * A flag to indicate that the HTML5 style sheet should be inserted.
     * @memberOf html5
     * @type Boolean
     */
    'shivCSS': (options.shivCSS !== false),

    /**
     * Is equal to true if a browser supports creating unknown/HTML5 elements
     * @memberOf html5
     * @type boolean
     */
    'supportsUnknownElements': supportsUnknownElements,

    /**
     * A flag to indicate that the document's `createElement` and `createDocumentFragment`
     * methods should be overwritten.
     * @memberOf html5
     * @type Boolean
     */
    'shivMethods': (options.shivMethods !== false),

    /**
     * A string to describe the type of `html5` object ("default" or "default print").
     * @memberOf html5
     * @type String
     */
    'type': 'default',

    // shivs the document according to the specified `html5` object options
    'shivDocument': shivDocument,

    //creates a shived element
    createElement: createElement,

    //creates a shived documentFragment
    createDocumentFragment: createDocumentFragment,

    //extends list of elements
    addElements: addElements
  };

  /*--------------------------------------------------------------------------*/

  // expose html5
  window.html5 = html5;

  // shiv the document
  shivDocument(document);

  if(typeof module == 'object' && module.exports){
    module.exports = html5;
  }

}(typeof window !== "undefined" ? window : this, document));;
/*
 * jQuery.bind-first library v0.2.3
 * Copyright (c) 2013 Vladimir Zhuravlev
 *
 * Released under MIT License
 * @license
 *
 * Date: Thu Feb  6 10:13:59 ICT 2014
 **/
(function(t){function e(e){return u?e.data("events"):t._data(e[0]).events}function n(t,n,r){var i=e(t),a=i[n];if(!u){var s=r?a.splice(a.delegateCount-1,1)[0]:a.pop();return a.splice(r?0:a.delegateCount||0,0,s),void 0}r?i.live.unshift(i.live.pop()):a.unshift(a.pop())}function r(e,r,i){var a=r.split(/\s+/);e.each(function(){for(var e=0;a.length>e;++e){var r=a[e].trim().match(/[^\.]+/i)[0];n(t(this),r,i)}})}function i(e){t.fn[e+"First"]=function(){var n=t.makeArray(arguments),i=n.shift();return i&&(t.fn[e].apply(this,arguments),r(this,i)),this}}var a=t.fn.jquery.split("."),s=parseInt(a[0]),f=parseInt(a[1]),u=1>s||1==s&&7>f;i("bind"),i("one"),t.fn.delegateFirst=function(){var e=t.makeArray(arguments),n=e[1];return n&&(e.splice(0,2),t.fn.delegate.apply(this,arguments),r(this,n,!0)),this},t.fn.liveFirst=function(){var e=t.makeArray(arguments);return e.unshift(this.selector),t.fn.delegateFirst.apply(t(document),e),this},u||(t.fn.onFirst=function(e,n){var i=t(this),a="string"==typeof n;if(t.fn.on.apply(i,arguments),"object"==typeof e)for(type in e)e.hasOwnProperty(type)&&r(i,type,a);else"string"==typeof e&&r(i,e,a);return i})})(jQuery);;
!function(e){var n=!1;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var o=window.Cookies,t=window.Cookies=e();t.noConflict=function(){return window.Cookies=o,t}}}(function(){function e(){for(var e=0,n={};e<arguments.length;e++){var o=arguments[e];for(var t in o)n[t]=o[t]}return n}function n(o){function t(n,r,i){var c;if("undefined"!=typeof document){if(arguments.length>1){if(i=e({path:"/"},t.defaults,i),"number"==typeof i.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*i.expires),i.expires=a}try{c=JSON.stringify(r),/^[\{\[]/.test(c)&&(r=c)}catch(e){}return r=o.write?o.write(r,n):encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=encodeURIComponent(String(n)),n=n.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),n=n.replace(/[\(\)]/g,escape),document.cookie=[n,"=",r,i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}n||(c={});for(var p=document.cookie?document.cookie.split("; "):[],s=/(%[0-9A-Z]{2})+/g,d=0;d<p.length;d++){var f=p[d].split("="),u=f.slice(1).join("=");'"'===u.charAt(0)&&(u=u.slice(1,-1));try{var l=f[0].replace(s,decodeURIComponent);if(u=o.read?o.read(u,l):o(u,l)||u.replace(s,decodeURIComponent),this.json)try{u=JSON.parse(u)}catch(e){}if(n===l){c=u;break}n||(c[l]=u)}catch(e){}}return c}}return t.set=t,t.get=function(e){return t.call(t,e)},t.getJSON=function(){return t.apply({json:!0},[].slice.call(arguments))},t.defaults={},t.remove=function(n,o){t(n,"",e(o,{expires:-1}))},t.withConverter=n,t}return n(function(){})});;
!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).tldjs=f()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";var allRules=require("./lib/suffix-trie.js").fromJson(require("./rules.json")),extractHostname=require("./lib/clean-host.js"),getDomain=require("./lib/domain.js"),getPublicSuffix=require("./lib/public-suffix.js"),getSubdomain=require("./lib/subdomain.js"),isValid=require("./lib/is-valid.js"),isIp=require("./lib/is-ip.js"),tldExists=require("./lib/tld-exists.js"),TLD_EXISTS=1,PUBLIC_SUFFIX=2,DOMAIN=3,SUB_DOMAIN=4,ALL=5;module.exports=function factory(options){var rules=options.rules||allRules||{},validHosts=options.validHosts||[],_extractHostname=options.extractHostname||extractHostname;function parse(url,_step){var step=_step||ALL,result={hostname:_extractHostname(url),isValid:null,isIp:null,tldExists:!1,publicSuffix:null,domain:null,subdomain:null};return null===result.hostname?(result.isIp=!1,result.isValid=!1,result):(result.isIp=isIp(result.hostname),result.isIp?(result.isValid=!0,result):(result.isValid=isValid(result.hostname),!1===result.isValid?result:(step!==ALL&&step!==TLD_EXISTS||(result.tldExists=tldExists(rules,result.hostname)),step===TLD_EXISTS?result:(result.publicSuffix=getPublicSuffix(rules,result.hostname),step===PUBLIC_SUFFIX?result:(result.domain=getDomain(validHosts,result.publicSuffix,result.hostname),step===DOMAIN?result:(result.subdomain=getSubdomain(result.hostname,result.domain),result))))))}return{extractHostname:_extractHostname,isValid:isValid,parse:parse,tldExists:function(url){return parse(url,TLD_EXISTS).tldExists},getPublicSuffix:function(url){return parse(url,PUBLIC_SUFFIX).publicSuffix},getDomain:function(url){return parse(url,DOMAIN).domain},getSubdomain:function(url){return parse(url,SUB_DOMAIN).subdomain},fromUserSettings:factory}}({})},{"./lib/clean-host.js":2,"./lib/domain.js":3,"./lib/is-ip.js":5,"./lib/is-valid.js":6,"./lib/public-suffix.js":7,"./lib/subdomain.js":8,"./lib/suffix-trie.js":9,"./lib/tld-exists.js":10,"./rules.json":17}],2:[function(require,module,exports){var URL=require("url"),isValid=require("./is-valid.js"),hasPrefixRE=/^(([a-z][a-z0-9+.-]*)?:)?\/\//;function trimTrailingDots(value){return"."===value[value.length-1]?value.substr(0,value.length-1):value}module.exports=function(value){if(isValid(value))return trimTrailingDots(value);var url=value;"string"!=typeof url&&(url=""+url);var needsTrimming=function(value){return value.length>0&&(value.charCodeAt(0)<=32||value.charCodeAt(value.length-1)<=32)}(url);needsTrimming&&(url=url.trim());var needsLowerCase=function(value){for(var i=0;i<value.length;i+=1){var code=value.charCodeAt(i);if(code>=65&&code<=90)return!0}return!1}(url);if(needsLowerCase&&(url=url.toLowerCase()),(needsLowerCase||needsTrimming)&&isValid(url))return trimTrailingDots(url);hasPrefixRE.test(url)||(url="//"+url);var parts=URL.parse(url,null,!0);return parts.hostname?trimTrailingDots(parts.hostname):null}},{"./is-valid.js":6,url:15}],3:[function(require,module,exports){"use strict";function shareSameDomainSuffix(hostname,vhost){return pattern=vhost,(str=hostname).lastIndexOf(pattern)===str.length-pattern.length&&(hostname.length===vhost.length||"."===hostname[hostname.length-vhost.length-1]);var str,pattern}module.exports=function(validHosts,suffix,hostname){for(var i=0;i<validHosts.length;i+=1){var vhost=validHosts[i];if(shareSameDomainSuffix(hostname,vhost))return vhost}return null===suffix?null:suffix.length===hostname.length?null:function(hostname,publicSuffix){var publicSuffixIndex=hostname.length-publicSuffix.length-2,lastDotBeforeSuffixIndex=hostname.lastIndexOf(".",publicSuffixIndex);return-1===lastDotBeforeSuffixIndex?hostname:hostname.substr(lastDotBeforeSuffixIndex+1)}(hostname,suffix)}},{}],4:[function(require,module,exports){"use strict";module.exports=function(hostname){var lastDotIndex=hostname.lastIndexOf(".");return-1===lastDotIndex?null:hostname.substr(lastDotIndex+1)}},{}],5:[function(require,module,exports){"use strict";module.exports=function(hostname){return"string"==typeof hostname&&(0!==hostname.length&&(function(hostname){for(var hasColon=!1,i=0;i<hostname.length;i+=1){var code=hostname.charCodeAt(i);if(58===code)hasColon=!0;else if(!(code>=48&&code<=57||code>=97&&code<=102))return!1}return hasColon}(hostname)||function(hostname){for(var numberOfDots=0,i=0;i<hostname.length;i+=1){var code=hostname.charCodeAt(i);if(46===code)numberOfDots+=1;else if(code<48||code>57)return!1}return 3===numberOfDots&&"."!==hostname[0]&&"."!==hostname[hostname.length-1]}(hostname)))}},{}],6:[function(require,module,exports){"use strict";function isDigit(code){return code>=48&&code<=57}function isAlpha(code){return code>=97&&code<=122}module.exports=function(hostname){if("string"!=typeof hostname)return!1;if(hostname.length>255)return!1;if(0===hostname.length)return!1;var firstCharCode=hostname.charCodeAt(0);if(!isAlpha(firstCharCode)&&!isDigit(firstCharCode))return!1;for(var lastCharCode,code,lastDotIndex=-1,len=hostname.length,i=0;i<len;i+=1){if(46===(code=hostname.charCodeAt(i))){if(i-lastDotIndex>64||46===lastCharCode||45===lastCharCode)return!1;lastDotIndex=i}else if(!isAlpha(code)&&!isDigit(code)&&45!==code)return!1;lastCharCode=code}return len-lastDotIndex-1<=63&&45!==lastCharCode}},{}],7:[function(require,module,exports){"use strict";var extractTldFromHost=require("./from-host.js");module.exports=function(rules,hostname){if(rules.hasTld(hostname))return hostname;var candidate=rules.suffixLookup(hostname);return null===candidate?extractTldFromHost(hostname):candidate}},{"./from-host.js":4}],8:[function(require,module,exports){"use strict";module.exports=function(hostname,domain){return null===domain?null:hostname.substr(0,hostname.length-domain.length-1)}},{}],9:[function(require,module,exports){"use strict";var VALID_HOSTNAME_VALUE=0;function minIndex(a,b){return null===a?b:null===b?a:a<b?a:b}function insertInTrie(rule,trie){for(var parts=rule.parts,node=trie,i=0;i<parts.length;i+=1){var part=parts[i],nextNode=node[part];void 0===nextNode&&(nextNode=Object.create(null),node[part]=nextNode),node=nextNode}return node.$=VALID_HOSTNAME_VALUE,trie}function lookupInTrie(parts,trie,index){var nextNode,publicSuffixIndex=null;return void 0!==trie.$&&(publicSuffixIndex=index+1),-1===index?publicSuffixIndex:(void 0!==(nextNode=trie[parts[index]])&&(publicSuffixIndex=minIndex(publicSuffixIndex,lookupInTrie(parts,nextNode,index-1))),void 0!==(nextNode=trie["*"])&&(publicSuffixIndex=minIndex(publicSuffixIndex,lookupInTrie(parts,nextNode,index-1))),publicSuffixIndex)}function SuffixTrie(rules){if(this.exceptions=Object.create(null),this.rules=Object.create(null),rules)for(var i=0;i<rules.length;i+=1){var rule=rules[i];rule.exception?insertInTrie(rule,this.exceptions):insertInTrie(rule,this.rules)}}SuffixTrie.fromJson=function(json){var trie=new SuffixTrie;return trie.exceptions=json.exceptions,trie.rules=json.rules,trie},SuffixTrie.prototype.hasTld=function(value){return void 0!==this.rules[value]},SuffixTrie.prototype.suffixLookup=function(hostname){var parts=hostname.split("."),publicSuffixIndex=lookupInTrie(parts,this.rules,parts.length-1);if(null===publicSuffixIndex)return null;var exceptionIndex=lookupInTrie(parts,this.exceptions,parts.length-1);return null!==exceptionIndex?parts.slice(exceptionIndex+1).join("."):parts.slice(publicSuffixIndex).join(".")},module.exports=SuffixTrie},{}],10:[function(require,module,exports){"use strict";var extractTldFromHost=require("./from-host.js");module.exports=function(rules,hostname){if(rules.hasTld(hostname))return!0;var hostTld=extractTldFromHost(hostname);return null!==hostTld&&rules.hasTld(hostTld)}},{"./from-host.js":4}],11:[function(require,module,exports){(function(global){!function(root){var freeExports="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule="object"==typeof module&&module&&!module.nodeType&&module,freeGlobal="object"==typeof global&&global;freeGlobal.global!==freeGlobal&&freeGlobal.window!==freeGlobal&&freeGlobal.self!==freeGlobal||(root=freeGlobal);var punycode,key,maxInt=2147483647,base=36,tMin=1,tMax=26,skew=38,damp=700,initialBias=72,initialN=128,delimiter="-",regexPunycode=/^xn--/,regexNonASCII=/[^\x20-\x7E]/,regexSeparators=/[\x2E\u3002\uFF0E\uFF61]/g,errors={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode;function error(type){throw new RangeError(errors[type])}function map(array,fn){for(var length=array.length,result=[];length--;)result[length]=fn(array[length]);return result}function mapDomain(string,fn){var parts=string.split("@"),result="";return parts.length>1&&(result=parts[0]+"@",string=parts[1]),result+map((string=string.replace(regexSeparators,".")).split("."),fn).join(".")}function ucs2decode(string){for(var value,extra,output=[],counter=0,length=string.length;counter<length;)(value=string.charCodeAt(counter++))>=55296&&value<=56319&&counter<length?56320==(64512&(extra=string.charCodeAt(counter++)))?output.push(((1023&value)<<10)+(1023&extra)+65536):(output.push(value),counter--):output.push(value);return output}function ucs2encode(array){return map(array,function(value){var output="";return value>65535&&(output+=stringFromCharCode((value-=65536)>>>10&1023|55296),value=56320|1023&value),output+=stringFromCharCode(value)}).join("")}function digitToBasic(digit,flag){return digit+22+75*(digit<26)-((0!=flag)<<5)}function adapt(delta,numPoints,firstTime){var k=0;for(delta=firstTime?floor(delta/damp):delta>>1,delta+=floor(delta/numPoints);delta>baseMinusTMin*tMax>>1;k+=base)delta=floor(delta/baseMinusTMin);return floor(k+(baseMinusTMin+1)*delta/(delta+skew))}function decode(input){var out,basic,j,index,oldi,w,k,digit,t,baseMinusT,codePoint,output=[],inputLength=input.length,i=0,n=initialN,bias=initialBias;for((basic=input.lastIndexOf(delimiter))<0&&(basic=0),j=0;j<basic;++j)input.charCodeAt(j)>=128&&error("not-basic"),output.push(input.charCodeAt(j));for(index=basic>0?basic+1:0;index<inputLength;){for(oldi=i,w=1,k=base;index>=inputLength&&error("invalid-input"),((digit=(codePoint=input.charCodeAt(index++))-48<10?codePoint-22:codePoint-65<26?codePoint-65:codePoint-97<26?codePoint-97:base)>=base||digit>floor((maxInt-i)/w))&&error("overflow"),i+=digit*w,!(digit<(t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias));k+=base)w>floor(maxInt/(baseMinusT=base-t))&&error("overflow"),w*=baseMinusT;bias=adapt(i-oldi,out=output.length+1,0==oldi),floor(i/out)>maxInt-n&&error("overflow"),n+=floor(i/out),i%=out,output.splice(i++,0,n)}return ucs2encode(output)}function encode(input){var n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,inputLength,handledCPCountPlusOne,baseMinusT,qMinusT,output=[];for(inputLength=(input=ucs2decode(input)).length,n=initialN,delta=0,bias=initialBias,j=0;j<inputLength;++j)(currentValue=input[j])<128&&output.push(stringFromCharCode(currentValue));for(handledCPCount=basicLength=output.length,basicLength&&output.push(delimiter);handledCPCount<inputLength;){for(m=maxInt,j=0;j<inputLength;++j)(currentValue=input[j])>=n&&currentValue<m&&(m=currentValue);for(m-n>floor((maxInt-delta)/(handledCPCountPlusOne=handledCPCount+1))&&error("overflow"),delta+=(m-n)*handledCPCountPlusOne,n=m,j=0;j<inputLength;++j)if((currentValue=input[j])<n&&++delta>maxInt&&error("overflow"),currentValue==n){for(q=delta,k=base;!(q<(t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias));k+=base)qMinusT=q-t,baseMinusT=base-t,output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0))),q=floor(qMinusT/baseMinusT);output.push(stringFromCharCode(digitToBasic(q,0))),bias=adapt(delta,handledCPCountPlusOne,handledCPCount==basicLength),delta=0,++handledCPCount}++delta,++n}return output.join("")}if(punycode={version:"1.4.1",ucs2:{decode:ucs2decode,encode:ucs2encode},decode:decode,encode:encode,toASCII:function(input){return mapDomain(input,function(string){return regexNonASCII.test(string)?"xn--"+encode(string):string})},toUnicode:function(input){return mapDomain(input,function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string})}},freeExports&&freeModule)if(module.exports==freeExports)freeModule.exports=punycode;else for(key in punycode)punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key]);else root.punycode=punycode}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],12:[function(require,module,exports){"use strict";function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}module.exports=function(qs,sep,eq,options){sep=sep||"&",eq=eq||"=";var obj={};if("string"!=typeof qs||0===qs.length)return obj;var regexp=/\+/g;qs=qs.split(sep);var maxKeys=1e3;options&&"number"==typeof options.maxKeys&&(maxKeys=options.maxKeys);var len=qs.length;maxKeys>0&&len>maxKeys&&(len=maxKeys);for(var i=0;i<len;++i){var kstr,vstr,k,v,x=qs[i].replace(regexp,"%20"),idx=x.indexOf(eq);idx>=0?(kstr=x.substr(0,idx),vstr=x.substr(idx+1)):(kstr=x,vstr=""),k=decodeURIComponent(kstr),v=decodeURIComponent(vstr),hasOwnProperty(obj,k)?isArray(obj[k])?obj[k].push(v):obj[k]=[obj[k],v]:obj[k]=v}return obj};var isArray=Array.isArray||function(xs){return"[object Array]"===Object.prototype.toString.call(xs)}},{}],13:[function(require,module,exports){"use strict";var stringifyPrimitive=function(v){switch(typeof v){case"string":return v;case"boolean":return v?"true":"false";case"number":return isFinite(v)?v:"";default:return""}};module.exports=function(obj,sep,eq,name){return sep=sep||"&",eq=eq||"=",null===obj&&(obj=void 0),"object"==typeof obj?map(objectKeys(obj),function(k){var ks=encodeURIComponent(stringifyPrimitive(k))+eq;return isArray(obj[k])?map(obj[k],function(v){return ks+encodeURIComponent(stringifyPrimitive(v))}).join(sep):ks+encodeURIComponent(stringifyPrimitive(obj[k]))}).join(sep):name?encodeURIComponent(stringifyPrimitive(name))+eq+encodeURIComponent(stringifyPrimitive(obj)):""};var isArray=Array.isArray||function(xs){return"[object Array]"===Object.prototype.toString.call(xs)};function map(xs,f){if(xs.map)return xs.map(f);for(var res=[],i=0;i<xs.length;i++)res.push(f(xs[i],i));return res}var objectKeys=Object.keys||function(obj){var res=[];for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&res.push(key);return res}},{}],14:[function(require,module,exports){"use strict";exports.decode=exports.parse=require("./decode"),exports.encode=exports.stringify=require("./encode")},{"./decode":12,"./encode":13}],15:[function(require,module,exports){"use strict";var punycode=require("punycode"),util=require("./util");function Url(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}exports.parse=urlParse,exports.resolve=function(source,relative){return urlParse(source,!1,!0).resolve(relative)},exports.resolveObject=function(source,relative){return source?urlParse(source,!1,!0).resolveObject(relative):relative},exports.format=function(obj){util.isString(obj)&&(obj=urlParse(obj));return obj instanceof Url?obj.format():Url.prototype.format.call(obj)},exports.Url=Url;var protocolPattern=/^([a-z0-9.+-]+:)/i,portPattern=/:[0-9]*$/,simplePathPattern=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,unwise=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),autoEscape=["'"].concat(unwise),nonHostChars=["%","/","?",";","#"].concat(autoEscape),hostEndingChars=["/","?","#"],hostnamePartPattern=/^[+a-z0-9A-Z_-]{0,63}$/,hostnamePartStart=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,unsafeProtocol={javascript:!0,"javascript:":!0},hostlessProtocol={javascript:!0,"javascript:":!0},slashedProtocol={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},querystring=require("querystring");function urlParse(url,parseQueryString,slashesDenoteHost){if(url&&util.isObject(url)&&url instanceof Url)return url;var u=new Url;return u.parse(url,parseQueryString,slashesDenoteHost),u}Url.prototype.parse=function(url,parseQueryString,slashesDenoteHost){if(!util.isString(url))throw new TypeError("Parameter 'url' must be a string, not "+typeof url);var queryIndex=url.indexOf("?"),splitter=-1!==queryIndex&&queryIndex<url.indexOf("#")?"?":"#",uSplit=url.split(splitter);uSplit[0]=uSplit[0].replace(/\\/g,"/");var rest=url=uSplit.join(splitter);if(rest=rest.trim(),!slashesDenoteHost&&1===url.split("#").length){var simplePath=simplePathPattern.exec(rest);if(simplePath)return this.path=rest,this.href=rest,this.pathname=simplePath[1],simplePath[2]?(this.search=simplePath[2],this.query=parseQueryString?querystring.parse(this.search.substr(1)):this.search.substr(1)):parseQueryString&&(this.search="",this.query={}),this}var proto=protocolPattern.exec(rest);if(proto){var lowerProto=(proto=proto[0]).toLowerCase();this.protocol=lowerProto,rest=rest.substr(proto.length)}if(slashesDenoteHost||proto||rest.match(/^\/\/[^@\/]+@[^@\/]+/)){var slashes="//"===rest.substr(0,2);!slashes||proto&&hostlessProtocol[proto]||(rest=rest.substr(2),this.slashes=!0)}if(!hostlessProtocol[proto]&&(slashes||proto&&!slashedProtocol[proto])){for(var auth,atSign,hostEnd=-1,i=0;i<hostEndingChars.length;i++){-1!==(hec=rest.indexOf(hostEndingChars[i]))&&(-1===hostEnd||hec<hostEnd)&&(hostEnd=hec)}-1!==(atSign=-1===hostEnd?rest.lastIndexOf("@"):rest.lastIndexOf("@",hostEnd))&&(auth=rest.slice(0,atSign),rest=rest.slice(atSign+1),this.auth=decodeURIComponent(auth)),hostEnd=-1;for(i=0;i<nonHostChars.length;i++){var hec;-1!==(hec=rest.indexOf(nonHostChars[i]))&&(-1===hostEnd||hec<hostEnd)&&(hostEnd=hec)}-1===hostEnd&&(hostEnd=rest.length),this.host=rest.slice(0,hostEnd),rest=rest.slice(hostEnd),this.parseHost(),this.hostname=this.hostname||"";var ipv6Hostname="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!ipv6Hostname)for(var hostparts=this.hostname.split(/\./),l=(i=0,hostparts.length);i<l;i++){var part=hostparts[i];if(part&&!part.match(hostnamePartPattern)){for(var newpart="",j=0,k=part.length;j<k;j++)part.charCodeAt(j)>127?newpart+="x":newpart+=part[j];if(!newpart.match(hostnamePartPattern)){var validParts=hostparts.slice(0,i),notHost=hostparts.slice(i+1),bit=part.match(hostnamePartStart);bit&&(validParts.push(bit[1]),notHost.unshift(bit[2])),notHost.length&&(rest="/"+notHost.join(".")+rest),this.hostname=validParts.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),ipv6Hostname||(this.hostname=punycode.toASCII(this.hostname));var p=this.port?":"+this.port:"",h=this.hostname||"";this.host=h+p,this.href+=this.host,ipv6Hostname&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==rest[0]&&(rest="/"+rest))}if(!unsafeProtocol[lowerProto])for(i=0,l=autoEscape.length;i<l;i++){var ae=autoEscape[i];if(-1!==rest.indexOf(ae)){var esc=encodeURIComponent(ae);esc===ae&&(esc=escape(ae)),rest=rest.split(ae).join(esc)}}var hash=rest.indexOf("#");-1!==hash&&(this.hash=rest.substr(hash),rest=rest.slice(0,hash));var qm=rest.indexOf("?");if(-1!==qm?(this.search=rest.substr(qm),this.query=rest.substr(qm+1),parseQueryString&&(this.query=querystring.parse(this.query)),rest=rest.slice(0,qm)):parseQueryString&&(this.search="",this.query={}),rest&&(this.pathname=rest),slashedProtocol[lowerProto]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){p=this.pathname||"";var s=this.search||"";this.path=p+s}return this.href=this.format(),this},Url.prototype.format=function(){var auth=this.auth||"";auth&&(auth=(auth=encodeURIComponent(auth)).replace(/%3A/i,":"),auth+="@");var protocol=this.protocol||"",pathname=this.pathname||"",hash=this.hash||"",host=!1,query="";this.host?host=auth+this.host:this.hostname&&(host=auth+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(host+=":"+this.port)),this.query&&util.isObject(this.query)&&Object.keys(this.query).length&&(query=querystring.stringify(this.query));var search=this.search||query&&"?"+query||"";return protocol&&":"!==protocol.substr(-1)&&(protocol+=":"),this.slashes||(!protocol||slashedProtocol[protocol])&&!1!==host?(host="//"+(host||""),pathname&&"/"!==pathname.charAt(0)&&(pathname="/"+pathname)):host||(host=""),hash&&"#"!==hash.charAt(0)&&(hash="#"+hash),search&&"?"!==search.charAt(0)&&(search="?"+search),protocol+host+(pathname=pathname.replace(/[?#]/g,function(match){return encodeURIComponent(match)}))+(search=search.replace("#","%23"))+hash},Url.prototype.resolve=function(relative){return this.resolveObject(urlParse(relative,!1,!0)).format()},Url.prototype.resolveObject=function(relative){if(util.isString(relative)){var rel=new Url;rel.parse(relative,!1,!0),relative=rel}for(var result=new Url,tkeys=Object.keys(this),tk=0;tk<tkeys.length;tk++){var tkey=tkeys[tk];result[tkey]=this[tkey]}if(result.hash=relative.hash,""===relative.href)return result.href=result.format(),result;if(relative.slashes&&!relative.protocol){for(var rkeys=Object.keys(relative),rk=0;rk<rkeys.length;rk++){var rkey=rkeys[rk];"protocol"!==rkey&&(result[rkey]=relative[rkey])}return slashedProtocol[result.protocol]&&result.hostname&&!result.pathname&&(result.path=result.pathname="/"),result.href=result.format(),result}if(relative.protocol&&relative.protocol!==result.protocol){if(!slashedProtocol[relative.protocol]){for(var keys=Object.keys(relative),v=0;v<keys.length;v++){var k=keys[v];result[k]=relative[k]}return result.href=result.format(),result}if(result.protocol=relative.protocol,relative.host||hostlessProtocol[relative.protocol])result.pathname=relative.pathname;else{for(var relPath=(relative.pathname||"").split("/");relPath.length&&!(relative.host=relPath.shift()););relative.host||(relative.host=""),relative.hostname||(relative.hostname=""),""!==relPath[0]&&relPath.unshift(""),relPath.length<2&&relPath.unshift(""),result.pathname=relPath.join("/")}if(result.search=relative.search,result.query=relative.query,result.host=relative.host||"",result.auth=relative.auth,result.hostname=relative.hostname||relative.host,result.port=relative.port,result.pathname||result.search){var p=result.pathname||"",s=result.search||"";result.path=p+s}return result.slashes=result.slashes||relative.slashes,result.href=result.format(),result}var isSourceAbs=result.pathname&&"/"===result.pathname.charAt(0),isRelAbs=relative.host||relative.pathname&&"/"===relative.pathname.charAt(0),mustEndAbs=isRelAbs||isSourceAbs||result.host&&relative.pathname,removeAllDots=mustEndAbs,srcPath=result.pathname&&result.pathname.split("/")||[],psychotic=(relPath=relative.pathname&&relative.pathname.split("/")||[],result.protocol&&!slashedProtocol[result.protocol]);if(psychotic&&(result.hostname="",result.port=null,result.host&&(""===srcPath[0]?srcPath[0]=result.host:srcPath.unshift(result.host)),result.host="",relative.protocol&&(relative.hostname=null,relative.port=null,relative.host&&(""===relPath[0]?relPath[0]=relative.host:relPath.unshift(relative.host)),relative.host=null),mustEndAbs=mustEndAbs&&(""===relPath[0]||""===srcPath[0])),isRelAbs)result.host=relative.host||""===relative.host?relative.host:result.host,result.hostname=relative.hostname||""===relative.hostname?relative.hostname:result.hostname,result.search=relative.search,result.query=relative.query,srcPath=relPath;else if(relPath.length)srcPath||(srcPath=[]),srcPath.pop(),srcPath=srcPath.concat(relPath),result.search=relative.search,result.query=relative.query;else if(!util.isNullOrUndefined(relative.search)){if(psychotic)result.hostname=result.host=srcPath.shift(),(authInHost=!!(result.host&&result.host.indexOf("@")>0)&&result.host.split("@"))&&(result.auth=authInHost.shift(),result.host=result.hostname=authInHost.shift());return result.search=relative.search,result.query=relative.query,util.isNull(result.pathname)&&util.isNull(result.search)||(result.path=(result.pathname?result.pathname:"")+(result.search?result.search:"")),result.href=result.format(),result}if(!srcPath.length)return result.pathname=null,result.search?result.path="/"+result.search:result.path=null,result.href=result.format(),result;for(var last=srcPath.slice(-1)[0],hasTrailingSlash=(result.host||relative.host||srcPath.length>1)&&("."===last||".."===last)||""===last,up=0,i=srcPath.length;i>=0;i--)"."===(last=srcPath[i])?srcPath.splice(i,1):".."===last?(srcPath.splice(i,1),up++):up&&(srcPath.splice(i,1),up--);if(!mustEndAbs&&!removeAllDots)for(;up--;up)srcPath.unshift("..");!mustEndAbs||""===srcPath[0]||srcPath[0]&&"/"===srcPath[0].charAt(0)||srcPath.unshift(""),hasTrailingSlash&&"/"!==srcPath.join("/").substr(-1)&&srcPath.push("");var authInHost,isAbsolute=""===srcPath[0]||srcPath[0]&&"/"===srcPath[0].charAt(0);psychotic&&(result.hostname=result.host=isAbsolute?"":srcPath.length?srcPath.shift():"",(authInHost=!!(result.host&&result.host.indexOf("@")>0)&&result.host.split("@"))&&(result.auth=authInHost.shift(),result.host=result.hostname=authInHost.shift()));return(mustEndAbs=mustEndAbs||result.host&&srcPath.length)&&!isAbsolute&&srcPath.unshift(""),srcPath.length?result.pathname=srcPath.join("/"):(result.pathname=null,result.path=null),util.isNull(result.pathname)&&util.isNull(result.search)||(result.path=(result.pathname?result.pathname:"")+(result.search?result.search:"")),result.auth=relative.auth||result.auth,result.slashes=result.slashes||relative.slashes,result.href=result.format(),result},Url.prototype.parseHost=function(){var host=this.host,port=portPattern.exec(host);port&&(":"!==(port=port[0])&&(this.port=port.substr(1)),host=host.substr(0,host.length-port.length)),host&&(this.hostname=host)}},{"./util":16,punycode:11,querystring:14}],16:[function(require,module,exports){"use strict";module.exports={isString:function(arg){return"string"==typeof arg},isObject:function(arg){return"object"==typeof arg&&null!==arg},isNull:function(arg){return null===arg},isNullOrUndefined:function(arg){return null==arg}}},{}],17:[function(require,module,exports){module.exports={exceptions:{ck:{www:{$:0}},jp:{kawasaki:{city:{$:0}},kitakyushu:{city:{$:0}},kobe:{city:{$:0}},nagoya:{city:{$:0}},sapporo:{city:{$:0}},sendai:{city:{$:0}},yokohama:{city:{$:0}}}},rules:{ac:{$:0,com:{$:0},edu:{$:0},gov:{$:0},net:{$:0},mil:{$:0},org:{$:0}},ad:{$:0,nom:{$:0}},ae:{$:0,co:{$:0},net:{$:0},org:{$:0},sch:{$:0},ac:{$:0},gov:{$:0},mil:{$:0},blogspot:{$:0},nom:{$:0}},aero:{$:0,"accident-investigation":{$:0},"accident-prevention":{$:0},aerobatic:{$:0},aeroclub:{$:0},aerodrome:{$:0},agents:{$:0},aircraft:{$:0},airline:{$:0},airport:{$:0},"air-surveillance":{$:0},airtraffic:{$:0},"air-traffic-control":{$:0},ambulance:{$:0},amusement:{$:0},association:{$:0},author:{$:0},ballooning:{$:0},broker:{$:0},caa:{$:0},cargo:{$:0},catering:{$:0},certification:{$:0},championship:{$:0},charter:{$:0},civilaviation:{$:0},club:{$:0},conference:{$:0},consultant:{$:0},consulting:{$:0},control:{$:0},council:{$:0},crew:{$:0},design:{$:0},dgca:{$:0},educator:{$:0},emergency:{$:0},engine:{$:0},engineer:{$:0},entertainment:{$:0},equipment:{$:0},exchange:{$:0},express:{$:0},federation:{$:0},flight:{$:0},freight:{$:0},fuel:{$:0},gliding:{$:0},government:{$:0},groundhandling:{$:0},group:{$:0},hanggliding:{$:0},homebuilt:{$:0},insurance:{$:0},journal:{$:0},journalist:{$:0},leasing:{$:0},logistics:{$:0},magazine:{$:0},maintenance:{$:0},media:{$:0},microlight:{$:0},modelling:{$:0},navigation:{$:0},parachuting:{$:0},paragliding:{$:0},"passenger-association":{$:0},pilot:{$:0},press:{$:0},production:{$:0},recreation:{$:0},repbody:{$:0},res:{$:0},research:{$:0},rotorcraft:{$:0},safety:{$:0},scientist:{$:0},services:{$:0},show:{$:0},skydiving:{$:0},software:{$:0},student:{$:0},trader:{$:0},trading:{$:0},trainer:{$:0},union:{$:0},workinggroup:{$:0},works:{$:0}},af:{$:0,gov:{$:0},com:{$:0},org:{$:0},net:{$:0},edu:{$:0}},ag:{$:0,com:{$:0},org:{$:0},net:{$:0},co:{$:0},nom:{$:0}},ai:{$:0,off:{$:0},com:{$:0},net:{$:0},org:{$:0},nom:{$:0}},al:{$:0,com:{$:0},edu:{$:0},gov:{$:0},mil:{$:0},net:{$:0},org:{$:0},blogspot:{$:0},nom:{$:0}},am:{$:0,blogspot:{$:0}},ao:{$:0,ed:{$:0},gv:{$:0},og:{$:0},co:{$:0},pb:{$:0},it:{$:0}},aq:{$:0},ar:{$:0,com:{$:0,blogspot:{$:0}},edu:{$:0},gob:{$:0},gov:{$:0},int:{$:0},mil:{$:0},musica:{$:0},net:{$:0},org:{$:0},tur:{$:0}},arpa:{$:0,e164:{$:0},"in-addr":{$:0},ip6:{$:0},iris:{$:0},uri:{$:0},urn:{$:0}},as:{$:0,gov:{$:0}},asia:{$:0,cloudns:{$:0}},at:{$:0,ac:{$:0},co:{$:0,blogspot:{$:0}},gv:{$:0},or:{$:0},futurecms:{"*":{$:0}},futurehosting:{$:0},futuremailing:{$:0},ortsinfo:{ex:{"*":{$:0}},kunden:{"*":{$:0}}},biz:{$:0},info:{$:0},priv:{$:0},"12hp":{$:0},"2ix":{$:0},"4lima":{$:0},"lima-city":{$:0}},au:{$:0,com:{$:0,blogspot:{$:0}},net:{$:0},org:{$:0},edu:{$:0,act:{$:0},nsw:{$:0},nt:{$:0},qld:{$:0},sa:{$:0},tas:{$:0},vic:{$:0},wa:{$:0}},gov:{$:0,qld:{$:0},sa:{$:0},tas:{$:0},vic:{$:0},wa:{$:0}},asn:{$:0},id:{$:0},info:{$:0},conf:{$:0},oz:{$:0},act:{$:0},nsw:{$:0},nt:{$:0},qld:{$:0},sa:{$:0},tas:{$:0},vic:{$:0},wa:{$:0}},aw:{$:0,com:{$:0}},ax:{$:0},az:{$:0,com:{$:0},net:{$:0},int:{$:0},gov:{$:0},org:{$:0},edu:{$:0},info:{$:0},pp:{$:0},mil:{$:0},name:{$:0},pro:{$:0},biz:{$:0}},ba:{$:0,com:{$:0},edu:{$:0},gov:{$:0},mil:{$:0},net:{$:0},org:{$:0},blogspot:{$:0}},bb:{$:0,biz:{$:0},co:{$:0},com:{$:0},edu:{$:0},gov:{$:0},info:{$:0},net:{$:0},org:{$:0},store:{$:0},tv:{$:0}},bd:{"*":{$:0}},be:{$:0,ac:{$:0},webhosting:{$:0},blogspot:{$:0},transurl:{"*":{$:0}}},bf:{$:0,gov:{$:0}},bg:{0:{$:0},1:{$:0},2:{$:0},3:{$:0},4:{$:0},5:{$:0},6:{$:0},7:{$:0},8:{$:0},9:{$:0},$:0,a:{$:0},b:{$:0},c:{$:0},d:{$:0},e:{$:0},f:{$:0},g:{$:0},h:{$:0},i:{$:0},j:{$:0},k:{$:0},l:{$:0},m:{$:0},n:{$:0},o:{$:0},p:{$:0},q:{$:0},r:{$:0},s:{$:0},t:{$:0},u:{$:0},v:{$:0},w:{$:0},x:{$:0},y:{$:0},z:{$:0},blogspot:{$:0},barsy:{$:0}},bh:{$:0,com:{$:0},edu:{$:0},net:{$:0},org:{$:0},gov:{$:0}},bi:{$:0,co:{$:0},com:{$:0},edu:{$:0},or:{$:0},org:{$:0}},biz:{$:0,cloudns:{$:0},dyndns:{$:0},"for-better":{$:0},"for-more":{$:0},"for-some":{$:0},"for-the":{$:0},selfip:{$:0},webhop:{$:0},mmafan:{$:0},myftp:{$:0},"no-ip":{$:0},dscloud:{$:0}},bj:{$:0,asso:{$:0},barreau:{$:0},gouv:{$:0},blogspot:{$:0}},bm:{$:0,com:{$:0},edu:{$:0},gov:{$:0},net:{$:0},org:{$:0}},bn:{"*":{$:0}},bo:{$:0,com:{$:0},edu:{$:0},gob:{$:0},int:{$:0},org:{$:0},net:{$:0},mil:{$:0},tv:{$:0},web:{$:0},academia:{$:0},agro:{$:0},arte:{$:0},blog:{$:0},bolivia:{$:0},ciencia:{$:0},cooperativa:{$:0},democracia:{$:0},deporte:{$:0},ecologia:{$:0},economia:{$:0},empresa:{$:0},indigena:{$:0},industria:{$:0},info:{$:0},medicina:{$:0},movimiento:{$:0},musica:{$:0},natural:{$:0},nombre:{$:0},noticias:{$:0},patria:{$:0},politica:{$:0},profesional:{$:0},plurinacional:{$:0},pueblo:{$:0},revista:{$:0},salud:{$:0},tecnologia:{$:0},tksat:{$:0},transporte:{$:0},wiki:{$:0}},br:{$:0,"9guacu":{$:0},abc:{$:0},adm:{$:0},adv:{$:0},agr:{$:0},aju:{$:0},am:{$:0},anani:{$:0},aparecida:{$:0},arq:{$:0},art:{$:0},ato:{$:0},b:{$:0},belem:{$:0},bhz:{$:0},bio:{$:0},blog:{$:0},bmd:{$:0},boavista:{$:0},bsb:{$:0},campinagrande:{$:0},campinas:{$:0},caxias:{$:0},cim:{$:0},cng:{$:0},cnt:{$:0},com:{$:0,blogspot:{$:0}},contagem:{$:0},coop:{$:0},cri:{$:0},cuiaba:{$:0},curitiba:{$:0},def:{$:0},ecn:{$:0},eco:{$:0},edu:{$:0},emp:{$:0},eng:{$:0},esp:{$:0},etc:{$:0},eti:{$:0},far:{$:0},feira:{$:0},flog:{$:0},floripa:{$:0},fm:{$:0},fnd:{$:0},fortal:{$:0},fot:{$:0},foz:{$:0},fst:{$:0},g12:{$:0},ggf:{$:0},goiania:{$:0},gov:{$:0,ac:{$:0},al:{$:0},am:{$:0},ap:{$:0},ba:{$:0},ce:{$:0},df:{$:0},es:{$:0},go:{$:0},ma:{$:0},mg:{$:0},ms:{$:0},mt:{$:0},pa:{$:0},pb:{$:0},pe:{$:0},pi:{$:0},pr:{$:0},rj:{$:0},rn:{$:0},ro:{$:0},rr:{$:0},rs:{$:0},sc:{$:0},se:{$:0},sp:{$:0},to:{$:0}},gru:{$:0},imb:{$:0},ind:{$:0},inf:{$:0},jab:{$:0},jampa:{$:0},jdf:{$:0},joinville:{$:0},jor:{$:0},jus:{$:0},leg:{$:0,ac:{$:0},al:{$:0},am:{$:0},ap:{$:0},ba:{$:0},ce:{$:0},df:{$:0},es:{$:0},go:{$:0},ma:{$:0},mg:{$:0},ms:{$:0},mt:{$:0},pa:{$:0},pb:{$:0},pe:{$:0},pi:{$:0},pr:{$:0},rj:{$:0},rn:{$:0},ro:{$:0},rr:{$:0},rs:{$:0},sc:{$:0},se:{$:0},sp:{$:0},to:{$:0}},lel:{$:0},londrina:{$:0},macapa:{$:0},maceio:{$:0},manaus:{$:0},maringa:{$:0},mat:{$:0},med:{$:0},mil:{$:0},morena:{$:0},mp:{$:0},mus:{$:0},natal:{$:0},net:{$:0},niteroi:{$:0},nom:{"*":{$:0}},not:{$:0},ntr:{$:0},odo:{$:0},org:{$:0},osasco:{$:0},palmas:{$:0},poa:{$:0},ppg:{$:0},pro:{$:0},psc:{$:0},psi:{$:0},pvh:{$:0},qsl:{$:0},radio:{$:0},rec:{$:0},recife:{$:0},ribeirao:{$:0},rio:{$:0},riobranco:{$:0},riopreto:{$:0},salvador:{$:0},sampa:{$:0},santamaria:{$:0},santoandre:{$:0},saobernardo:{$:0},saogonca:{$:0},sjc:{$:0},slg:{$:0},slz:{$:0},sorocaba:{$:0},srv:{$:0},taxi:{$:0},teo:{$:0},the:{$:0},tmp:{$:0},trd:{$:0},tur:{$:0},tv:{$:0},udi:{$:0},vet:{$:0},vix:{$:0},vlog:{$:0},wiki:{$:0},zlg:{$:0}},bs:{$:0,com:{$:0},net:{$:0},org:{$:0},edu:{$:0},gov:{$:0},we:{$:0}},bt:{$:0,com:{$:0},edu:{$:0},gov:{$:0},net:{$:0},org:{$:0}},bv:{$:0},bw:{$:0,co:{$:0},org:{$:0}},by:{$:0,gov:{$:0},mil:{$:0},com:{$:0,blogspot:{$:0}},of:{$:0},nym:{$:0}},bz:{$:0,com:{$:0},net:{$:0},org:{$:0},edu:{$:0},gov:{$:0},za:{$:0},nym:{$:0}},ca:{$:0,ab:{$:0},bc:{$:0},mb:{$:0},nb:{$:0},nf:{$:0},nl:{$:0},ns:{$:0},nt:{$:0},nu:{$:0},on:{$:0},pe:{$:0},qc:{$:0},sk:{$:0},yk:{$:0},gc:{$:0},"1password":{$:0},awdev:{"*":{$:0}},co:{$:0},blogspot:{$:0},"no-ip":{$:0}},cat:{$:0},cc:{$:0,cloudns:{$:0},ftpaccess:{$:0},"game-server":{$:0},myphotos:{$:0},scrapping:{$:0},twmail:{$:0},fantasyleague:{$:0}},cd:{$:0,gov:{$:0}},cf:{$:0,blogspot:{$:0}},cg:{$:0},ch:{$:0,square7:{$:0},blogspot:{$:0},gotdns:{$:0},"12hp":{$:0},"2ix":{$:0},"4lima":{$:0},"lima-city":{$:0}},ci:{$:0,org:{$:0},or:{$:0},com:{$:0},co:{$:0},edu:{$:0},ed:{$:0},ac:{$:0},net:{$:0},go:{$:0},asso:{$:0},"xn--aroport-bya":{$:0},int:{$:0},presse:{$:0},md:{$:0},gouv:{$:0}},ck:{"*":{$:0}},cl:{$:0,gov:{$:0},gob:{$:0},co:{$:0},mil:{$:0},blogspot:{$:0},nom:{$:0}},cm:{$:0,co:{$:0},com:{$:0},gov:{$:0},net:{$:0}},cn:{$:0,ac:{$:0},com:{$:0,amazonaws:{compute:{"*":{$:0}},eb:{"cn-north-1":{$:0}},elb:{"*":{$:0}},"cn-north-1":{s3:{$:0}}}},edu:{$:0},gov:{$:0},net:{$:0},org:{$:0},mil:{$:0},"xn--55qx5d":{$:0},"xn--io0a7i":{$:0},"xn--od0alg":{$:0},ah:{$:0},bj:{$:0},cq:{$:0},fj:{$:0},gd:{$:0},gs:{$:0},gz:{$:0},gx:{$:0},ha:{$:0},hb:{$:0},he:{$:0},hi:{$:0},hl:{$:0},hn:{$:0},jl:{$:0},js:{$:0},jx:{$:0},ln:{$:0},nm:{$:0},nx:{$:0},qh:{$:0},sc:{$:0},sd:{$:0},sh:{$:0},sn:{$:0},sx:{$:0},tj:{$:0},xj:{$:0},xz:{$:0},yn:{$:0},zj:{$:0},hk:{$:0},mo:{$:0},tw:{$:0}},co:{$:0,arts:{$:0},com:{$:0,blogspot:{$:0}},edu:{$:0},firm:{$:0},gov:{$:0},info:{$:0},int:{$:0},mil:{$:0},net:{$:0},nom:{$:0},org:{$:0},rec:{$:0},web:{$:0},nodum:{$:0}},com:{$:0,"1password":{$:0},amazonaws:{compute:{"*":{$:0}},"compute-1":{"*":{$:0}},"us-east-1":{$:0,dualstack:{s3:{$:0}}},elb:{"*":{$:0}},s3:{$:0},"s3-ap-northeast-1":{$:0},"s3-ap-northeast-2":{$:0},"s3-ap-south-1":{$:0},"s3-ap-southeast-1":{$:0},"s3-ap-southeast-2":{$:0},"s3-ca-central-1":{$:0},"s3-eu-central-1":{$:0},"s3-eu-west-1":{$:0},"s3-eu-west-2":{$:0},"s3-eu-west-3":{$:0},"s3-external-1":{$:0},"s3-fips-us-gov-west-1":{$:0},"s3-sa-east-1":{$:0},"s3-us-gov-west-1":{$:0},"s3-us-east-2":{$:0},"s3-us-west-1":{$:0},"s3-us-west-2":{$:0},"ap-northeast-2":{s3:{$:0},dualstack:{s3:{$:0}},"s3-website":{$:0}},"ap-south-1":{s3:{$:0},dualstack:{s3:{$:0}},"s3-website":{$:0}},"ca-central-1":{s3:{$:0},dualstack:{s3:{$:0}},"s3-website":{$:0}},"eu-central-1":{s3:{$:0},dualstack:{s3:{$:0}},"s3-website":{$:0}},"eu-west-2":{s3:{$:0},dualstack:{s3:{$:0}},"s3-website":{$:0}},"eu-west-3":{s3:{$:0},dualstack:{s3:{$:0}},"s3-website":{$:0}},"us-east-2":{s3:{$:0},dualstack:{s3:{$:0}},"s3-website":{$:0}},"ap-northeast-1":{dualstack:{s3:{$:0}}},"ap-southeast-1":{dualstack:{s3:{$:0}}},"ap-southeast-2":{dualstack:{s3:{$:0}}},"eu-west-1":{dualstack:{s3:{$:0}}},"sa-east-1":{dualstack:{s3:{$:0}}},"s3-website-us-east-1":{$:0},"s3-website-us-west-1":{$:0},"s3-website-us-west-2":{$:0},"s3-website-ap-northeast-1":{$:0},"s3-website-ap-southeast-1":{$:0},"s3-website-ap-southeast-2":{$:0},"s3-website-eu-west-1":{$:0},"s3-website-sa-east-1":{$:0}},elasticbeanstalk:{$:0,"ap-northeast-1":{$:0},"ap-northeast-2":{$:0},"ap-south-1":{$:0},"ap-southeast-1":{$:0},"ap-southeast-2":{$:0},"ca-central-1":{$:0},"eu-central-1":{$:0},"eu-west-1":{$:0},"eu-west-2":{$:0},"eu-west-3":{$:0},"sa-east-1":{$:0},"us-east-1":{$:0},"us-east-2":{$:0},"us-gov-west-1":{$:0},"us-west-1":{$:0},"us-west-2":{$:0}},"on-aptible":{$:0},myasustor:{$:0},betainabox:{$:0},bplaced:{$:0},ar:{$:0},br:{$:0},cn:{$:0},de:{$:0},eu:{$:0},gb:{$:0},hu:{$:0},jpn:{$:0},kr:{$:0},mex:{$:0},no:{$:0},qc:{$:0},ru:{$:0},sa:{$:0},se:{$:0},uk:{$:0},us:{$:0},uy:{$:0},za:{$:0},africa:{$:0},gr:{$:0},co:{$:0},xenapponazure:{$:0},jdevcloud:{$:0},wpdevcloud:{$:0},cloudcontrolled:{$:0},cloudcontrolapp:{$:0},drayddns:{$:0},dreamhosters:{$:0},mydrobo:{$:0},"dyndns-at-home":{$:0},"dyndns-at-work":{$:0},"dyndns-blog":{$:0},"dyndns-free":{$:0},"dyndns-home":{$:0},"dyndns-ip":{$:0},"dyndns-mail":{$:0},"dyndns-office":{$:0},"dyndns-pics":{$:0},"dyndns-remote":{$:0},"dyndns-server":{$:0},"dyndns-web":{$:0},"dyndns-wiki":{$:0},"dyndns-work":{$:0},blogdns:{$:0},cechire:{$:0},dnsalias:{$:0},dnsdojo:{$:0},doesntexist:{$:0},dontexist:{$:0},doomdns:{$:0},"dyn-o-saur":{$:0},dynalias:{$:0},"est-a-la-maison":{$:0},"est-a-la-masion":{$:0},"est-le-patron":{$:0},"est-mon-blogueur":{$:0},"from-ak":{$:0},"from-al":{$:0},"from-ar":{$:0},"from-ca":{$:0},"from-ct":{$:0},"from-dc":{$:0},"from-de":{$:0},"from-fl":{$:0},"from-ga":{$:0},"from-hi":{$:0},"from-ia":{$:0},"from-id":{$:0},"from-il":{$:0},"from-in":{$:0},"from-ks":{$:0},"from-ky":{$:0},"from-ma":{$:0},"from-md":{$:0},"from-mi":{$:0},"from-mn":{$:0},"from-mo":{$:0},"from-ms":{$:0},"from-mt":{$:0},"from-nc":{$:0},"from-nd":{$:0},"from-ne":{$:0},"from-nh":{$:0},"from-nj":{$:0},"from-nm":{$:0},"from-nv":{$:0},"from-oh":{$:0},"from-ok":{$:0},"from-or":{$:0},"from-pa":{$:0},"from-pr":{$:0},"from-ri":{$:0},"from-sc":{$:0},"from-sd":{$:0},"from-tn":{$:0},"from-tx":{$:0},"from-ut":{$:0},"from-va":{$:0},"from-vt":{$:0},"from-wa":{$:0},"from-wi":{$:0},"from-wv":{$:0},"from-wy":{$:0},getmyip:{$:0},gotdns:{$:0},"hobby-site":{$:0},homelinux:{$:0},homeunix:{$:0},iamallama:{$:0},"is-a-anarchist":{$:0},"is-a-blogger":{$:0},"is-a-bookkeeper":{$:0},"is-a-bulls-fan":{$:0},"is-a-caterer":{$:0},"is-a-chef":{$:0},"is-a-conservative":{$:0},"is-a-cpa":{$:0},"is-a-cubicle-slave":{$:0},"is-a-democrat":{$:0},"is-a-designer":{$:0},"is-a-doctor":{$:0},"is-a-financialadvisor":{$:0},"is-a-geek":{$:0},"is-a-green":{$:0},"is-a-guru":{$:0},"is-a-hard-worker":{$:0},"is-a-hunter":{$:0},"is-a-landscaper":{$:0},"is-a-lawyer":{$:0},"is-a-liberal":{$:0},"is-a-libertarian":{$:0},"is-a-llama":{$:0},"is-a-musician":{$:0},"is-a-nascarfan":{$:0},"is-a-nurse":{$:0},"is-a-painter":{$:0},"is-a-personaltrainer":{$:0},"is-a-photographer":{$:0},"is-a-player":{$:0},"is-a-republican":{$:0},"is-a-rockstar":{$:0},"is-a-socialist":{$:0},"is-a-student":{$:0},"is-a-teacher":{$:0},"is-a-techie":{$:0},"is-a-therapist":{$:0},"is-an-accountant":{$:0},"is-an-actor":{$:0},"is-an-actress":{$:0},"is-an-anarchist":{$:0},"is-an-artist":{$:0},"is-an-engineer":{$:0},"is-an-entertainer":{$:0},"is-certified":{$:0},"is-gone":{$:0},"is-into-anime":{$:0},"is-into-cars":{$:0},"is-into-cartoons":{$:0},"is-into-games":{$:0},"is-leet":{$:0},"is-not-certified":{$:0},"is-slick":{$:0},"is-uberleet":{$:0},"is-with-theband":{$:0},"isa-geek":{$:0},"isa-hockeynut":{$:0},issmarterthanyou:{$:0},"likes-pie":{$:0},likescandy:{$:0},"neat-url":{$:0},"saves-the-whales":{$:0},selfip:{$:0},"sells-for-less":{$:0},"sells-for-u":{$:0},servebbs:{$:0},"simple-url":{$:0},"space-to-rent":{$:0},"teaches-yoga":{$:0},writesthisblog:{$:0},ddnsfree:{$:0},ddnsgeek:{$:0},giize:{$:0},gleeze:{$:0},kozow:{$:0},loseyourip:{$:0},ooguy:{$:0},theworkpc:{$:0},mytuleap:{$:0},evennode:{"eu-1":{$:0},"eu-2":{$:0},"eu-3":{$:0},"eu-4":{$:0},"us-1":{$:0},"us-2":{$:0},"us-3":{$:0},"us-4":{$:0}},fbsbx:{apps:{$:0}},firebaseapp:{$:0},flynnhub:{$:0},"freebox-os":{$:0},freeboxos:{$:0},githubusercontent:{$:0},"0emm":{"*":{$:0}},appspot:{$:0},blogspot:{$:0},codespot:{$:0},googleapis:{$:0},googlecode:{$:0},pagespeedmobilizer:{$:0},publishproxy:{$:0},withgoogle:{$:0},withyoutube:{$:0},herokuapp:{$:0},herokussl:{$:0},pixolino:{$:0},joyent:{cns:{"*":{$:0}}},barsyonline:{$:0},meteorapp:{$:0,eu:{$:0}},bitballoon:{$:0},netlify:{$:0},"4u":{$:0},nfshost:{$:0},blogsyte:{$:0},ciscofreak:{$:0},damnserver:{$:0},ditchyourip:{$:0},dnsiskinky:{$:0},dynns:{$:0},geekgalaxy:{$:0},"health-carereform":{$:0},homesecuritymac:{$:0},homesecuritypc:{$:0},myactivedirectory:{$:0},mysecuritycamera:{$:0},"net-freaks":{$:0},onthewifi:{$:0},point2this:{$:0},quicksytes:{$:0},securitytactics:{$:0},serveexchange:{$:0},servehumour:{$:0},servep2p:{$:0},servesarcasm:{$:0},stufftoread:{$:0},unusualperson:{$:0},workisboring:{$:0},"3utilities":{$:0},ddnsking:{$:0},myvnc:{$:0},servebeer:{$:0},servecounterstrike:{$:0},serveftp:{$:0},servegame:{$:0},servehalflife:{$:0},servehttp:{$:0},serveirc:{$:0},servemp3:{$:0},servepics:{$:0},servequake:{$:0},operaunite:{$:0},outsystemscloud:{$:0},ownprovider:{$:0},pgfog:{$:0},pagefrontapp:{$:0},gotpantheon:{$:0},prgmr:{xen:{$:0}},qa2:{$:0},"dev-myqnapcloud":{$:0},"alpha-myqnapcloud":{$:0},myqnapcloud:{$:0},quipelements:{"*":{$:0}},rackmaze:{$:0},rhcloud:{$:0},logoip:{$:0},scrysec:{$:0},"firewall-gateway":{$:0},myshopblocks:{$:0},"1kapp":{$:0},appchizi:{$:0},applinzi:{$:0},sinaapp:{$:0},vipsinaapp:{$:0},"bounty-full":{$:0,alpha:{$:0},beta:{$:0}},"temp-dns":{$:0},dsmynas:{$:0},familyds:{$:0},bloxcms:{$:0},"townnews-staging":{$:0},hk:{$:0},remotewd:{$:0},yolasite:{$:0}},coop:{$:0},cr:{$:0,ac:{$:0},co:{$:0},ed:{$:0},fi:{$:0},go:{$:0},or:{$:0},sa:{$:0}},cu:{$:0,com:{$:0},edu:{$:0},org:{$:0},net:{$:0},gov:{$:0},inf:{$:0}},cv:{$:0,blogspot:{$:0}},cw:{$:0,com:{$:0},edu:{$:0},net:{$:0},org:{$:0}},cx:{$:0,gov:{$:0},ath:{$:0},info:{$:0}},cy:{$:0,ac:{$:0},biz:{$:0},com:{$:0,blogspot:{$:0}},ekloges:{$:0},gov:{$:0},ltd:{$:0},name:{$:0},net:{$:0},org:{$:0},parliament:{$:0},press:{$:0},pro:{$:0},tm:{$:0}},cz:{$:0,co:{$:0},realm:{$:0},e4:{$:0},blogspot:{$:0},metacentrum:{cloud:{$:0},custom:{$:0}}},de:{$:0,bplaced:{$:0},square7:{$:0},com:{$:0},cosidns:{dyn:{$:0}},"dynamisches-dns":{$:0},dnsupdater:{$:0},"internet-dns":{$:0},"l-o-g-i-n":{$:0},dnshome:{$:0},fuettertdasnetz:{$:0},isteingeek:{$:0},istmein:{$:0},lebtimnetz:{$:0},leitungsen:{$:0},traeumtgerade:{$:0},ddnss:{$:0,dyn:{$:0},dyndns:{$:0}},dyndns1:{$:0},"dyn-ip24":{$:0},"home-webserver":{$:0,dyn:{$:0}},"myhome-server":{$:0},goip:{$:0},blogspot:{$:0},keymachine:{$:0},"git-repos":{$:0},"lcube-server":{$:0},"svn-repos":{$:0},barsy:{$:0},logoip:{$:0},"firewall-gateway":{$:0},"my-gateway":{$:0},"my-router":{$:0},spdns:{$:0},"taifun-dns":{$:0},"12hp":{$:0},"2ix":{$:0},"4lima":{$:0},"lima-city":{$:0},"dd-dns":{$:0},"dray-dns":{$:0},draydns:{$:0},"dyn-vpn":{$:0},dynvpn:{$:0},"mein-vigor":{$:0},"my-vigor":{$:0},"my-wan":{$:0},"syno-ds":{$:0},"synology-diskstation":{$:0},"synology-ds":{$:0}},dj:{$:0},dk:{$:0,biz:{$:0},co:{$:0},firm:{$:0},reg:{$:0},store:{$:0},blogspot:{$:0}},dm:{$:0,com:{$:0},net:{$:0},org:{$:0},edu:{$:0},gov:{$:0}},do:{$:0,art:{$:0},com:{$:0},edu:{$:0},gob:{$:0},gov:{$:0},mil:{$:0},net:{$:0},org:{$:0},sld:{$:0},web:{$:0}},dz:{$:0,com:{$:0},org:{$:0},net:{$:0},gov:{$:0},edu:{$:0},asso:{$:0},pol:{$:0},art:{$:0}},ec:{$:0,com:{$:0},info:{$:0},net:{$:0},fin:{$:0},k12:{$:0},med:{$:0},pro:{$:0},org:{$:0},edu:{$:0},gov:{$:0},gob:{$:0},mil:{$:0}},edu:{$:0},ee:{$:0,edu:{$:0},gov:{$:0},riik:{$:0},lib:{$:0},med:{$:0},com:{$:0,blogspot:{$:0}},pri:{$:0},aip:{$:0},org:{$:0},fie:{$:0}},eg:{$:0,com:{$:0,blogspot:{$:0}},edu:{$:0},eun:{$:0},gov:{$:0},mil:{$:0},name:{$:0},net:{$:0},org:{$:0},sci:{$:0}},er:{"*":{$:0}},es:{$:0,com:{$:0,blogspot:{$:0}},nom:{$:0},org:{$:0},gob:{$:0},edu:{$:0}},et:{$:0,com:{$:0},gov:{$:0},org:{$:0},edu:{$:0},biz:{$:0},name:{$:0},info:{$:0},net:{$:0}},eu:{$:0,"1password":{$:0},mycd:{$:0},cloudns:{$:0},barsy:{$:0},wellbeingzone:{$:0},spdns:{$:0},transurl:{"*":{$:0}},diskstation:{$:0}},fi:{$:0,aland:{$:0},dy:{$:0},blogspot:{$:0},iki:{$:0}},fj:{"*":{$:0}},fk:{"*":{$:0}},fm:{$:0},fo:{$:0},fr:{$:0,com:{$:0},asso:{$:0},nom:{$:0},prd:{$:0},presse:{$:0},tm:{$:0},aeroport:{$:0},assedic:{$:0},avocat:{$:0},avoues:{$:0},cci:{$:0},chambagri:{$:0},"chirurgiens-dentistes":{$:0},"experts-comptables":{$:0},"geometre-expert":{$:0},gouv:{$:0},greta:{$:0},"huissier-justice":{$:0},medecin:{$:0},notaires:{$:0},pharmacien:{$:0},port:{$:0},veterinaire:{$:0},"fbx-os":{$:0},fbxos:{$:0},"freebox-os":{$:0},freeboxos:{$:0},blogspot:{$:0},"on-web":{$:0},"chirurgiens-dentistes-en-france":{$:0}},ga:{$:0},gb:{$:0},gd:{$:0,nom:{$:0}},ge:{$:0,com:{$:0},edu:{$:0},gov:{$:0},org:{$:0},mil:{$:0},net:{$:0},pvt:{$:0}},gf:{$:0},gg:{$:0,co:{$:0},net:{$:0},org:{$:0},cya:{$:0}},gh:{$:0,com:{$:0},edu:{$:0},gov:{$:0},org:{$:0},mil:{$:0}},gi:{$:0,com:{$:0},ltd:{$:0},gov:{$:0},mod:{$:0},edu:{$:0},org:{$:0}},gl:{$:0,co:{$:0},com:{$:0},edu:{$:0},net:{$:0},org:{$:0},nom:{$:0}},gm:{$:0},gn:{$:0,ac:{$:0},com:{$:0},edu:{$:0},gov:{$:0},org:{$:0},net:{$:0}},gov:{$:0},gp:{$:0,com:{$:0},net:{$:0},mobi:{$:0},edu:{$:0},org:{$:0},asso:{$:0}},gq:{$:0},gr:{$:0,com:{$:0},edu:{$:0},net:{$:0},org:{$:0},gov:{$:0},blogspot:{$:0},nym:{$:0}},gs:{$:0},gt:{$:0,com:{$:0},edu:{$:0},gob:{$:0},ind:{$:0},mil:{$:0},net:{$:0},org:{$:0},nom:{$:0}},gu:{"*":{$:0}},gw:{$:0},gy:{$:0,co:{$:0},com:{$:0},edu:{$:0},gov:{$:0},net:{$:0},org:{$:0}},hk:{$:0,com:{$:0},edu:{$:0},gov:{$:0},idv:{$:0},net:{$:0},org:{$:0},"xn--55qx5d":{$:0},"xn--wcvs22d":{$:0},"xn--lcvr32d":{$:0},"xn--mxtq1m":{$:0},"xn--gmqw5a":{$:0},"xn--ciqpn":{$:0},"xn--gmq050i":{$:0},"xn--zf0avx":{$:0},"xn--io0a7i":{$:0},"xn--mk0axi":{$:0},"xn--od0alg":{$:0},"xn--od0aq3b":{$:0},"xn--tn0ag":{$:0},"xn--uc0atv":{$:0},"xn--uc0ay4a":{$:0},blogspot:{$:0},ltd:{$:0},inc:{$:0}},hm:{$:0},hn:{$:0,com:{$:0},edu:{$:0},org:{$:0},net:{$:0},mil:{$:0},gob:{$:0},nom:{$:0}},hr:{$:0,iz:{$:0},from:{$:0},name:{$:0},com:{$:0},blogspot:{$:0}},ht:{$:0,com:{$:0},shop:{$:0},firm:{$:0},info:{$:0},adult:{$:0},net:{$:0},pro:{$:0},org:{$:0},med:{$:0},art:{$:0},coop:{$:0},pol:{$:0},asso:{$:0},edu:{$:0},rel:{$:0},gouv:{$:0},perso:{$:0}},hu:{2000:{$:0},$:0,co:{$:0},info:{$:0},org:{$:0},priv:{$:0},sport:{$:0},tm:{$:0},agrar:{$:0},bolt:{$:0},casino:{$:0},city:{$:0},erotica:{$:0},erotika:{$:0},film:{$:0},forum:{$:0},games:{$:0},hotel:{$:0},ingatlan:{$:0},jogasz:{$:0},konyvelo:{$:0},lakas:{$:0},media:{$:0},news:{$:0},reklam:{$:0},sex:{$:0},shop:{$:0},suli:{$:0},szex:{$:0},tozsde:{$:0},utazas:{$:0},video:{$:0},blogspot:{$:0}},id:{$:0,ac:{$:0},biz:{$:0},co:{$:0,blogspot:{$:0}},desa:{$:0},go:{$:0},mil:{$:0},my:{$:0},net:{$:0},or:{$:0},sch:{$:0},web:{$:0}},ie:{$:0,gov:{$:0},blogspot:{$:0}},il:{$:0,ac:{$:0},co:{$:0,blogspot:{$:0}},gov:{$:0},idf:{$:0},k12:{$:0},muni:{$:0},net:{$:0},org:{$:0}},im:{$:0,ac:{$:0},co:{$:0,ltd:{$:0},plc:{$:0}},com:{$:0},net:{$:0},org:{$:0},tt:{$:0},tv:{$:0},ro:{$:0},nom:{$:0}},in:{$:0,co:{$:0},firm:{$:0},net:{$:0},org:{$:0},gen:{$:0},ind:{$:0},nic:{$:0},ac:{$:0},edu:{$:0},res:{$:0},gov:{$:0},mil:{$:0},cloudns:{$:0},blogspot:{$:0},barsy:{$:0}},info:{$:0,cloudns:{$:0},"dynamic-dns":{$:0},dyndns:{$:0},"barrel-of-knowledge":{$:0},"barrell-of-knowledge":{$:0},"for-our":{$:0},"groks-the":{$:0},"groks-this":{$:0},"here-for-more":{$:0},knowsitall:{$:0},selfip:{$:0},webhop:{$:0},nsupdate:{$:0},dvrcam:{$:0},ilovecollege:{$:0},"no-ip":{$:0},"v-info":{$:0}},int:{$:0,eu:{$:0}},io:{$:0,com:{$:0},backplaneapp:{$:0},boxfuse:{$:0},browsersafetymark:{$:0},dedyn:{$:0},drud:{$:0},definima:{$:0},enonic:{$:0,customer:{$:0}},github:{$:0},gitlab:{$:0},"hasura-app":{$:0},ngrok:{$:0},nodeart:{stage:{$:0}},nodum:{$:0},nid:{$:0},pantheonsite:{$:0},protonet:{$:0},vaporcloud:{$:0},resindevice:{$:0},resinstaging:{devices:{$:0}},hzc:{$:0},sandcats:{$:0},s5y:{"*":{$:0}},shiftedit:{$:0},lair:{apps:{$:0}},stolos:{"*":{$:0}},spacekit:{$:0},thingdust:{dev:{cust:{$:0}},disrec:{cust:{$:0}},prod:{cust:{$:0}},testing:{cust:{$:0}}},wedeploy:{$:0}},iq:{$:0,gov:{$:0},edu:{$:0},mil:{$:0},com:{$:0},org:{$:0},net:{$:0}},ir:{$:0,ac:{$:0},co:{$:0},gov:{$:0},id:{$:0},net:{$:0},org:{$:0},sch:{$:0},"xn--mgba3a4f16a":{$:0},"xn--mgba3a4fra":{$:0}},is:{$:0,net:{$:0},com:{$:0},edu:{$:0},gov:{$:0},org:{$:0},int:{$:0},cupcake:{$:0},blogspot:{$:0}},it:{$:0,gov:{$:0},edu:{$:0},abr:{$:0},abruzzo:{$:0},"aosta-valley":{$:0},aostavalley:{$:0},bas:{$:0},basilicata:{$:0},cal:{$:0},calabria:{$:0},cam:{$:0},campania:{$:0},"emilia-romagna":{$:0},emiliaromagna:{$:0},emr:{$:0},"friuli-v-giulia":{$:0},"friuli-ve-giulia":{$:0},"friuli-vegiulia":{$:0},"friuli-venezia-giulia":{$:0},"friuli-veneziagiulia":{$:0},"friuli-vgiulia":{$:0},"friuliv-giulia":{$:0},"friulive-giulia":{$:0},friulivegiulia:{$:0},"friulivenezia-giulia":{$:0},friuliveneziagiulia:{$:0},friulivgiulia:{$:0},fvg:{$:0},laz:{$:0},lazio:{$:0},lig:{$:0},liguria:{$:0},lom:{$:0},lombardia:{$:0},lombardy:{$:0},lucania:{$:0},mar:{$:0},marche:{$:0},mol:{$:0},molise:{$:0},piedmont:{$:0},piemonte:{$:0},pmn:{$:0},pug:{$:0},puglia:{$:0},sar:{$:0},sardegna:{$:0},sardinia:{$:0},sic:{$:0},sicilia:{$:0},sicily:{$:0},taa:{$:0},tos:{$:0},toscana:{$:0},"trentino-a-adige":{$:0},"trentino-aadige":{$:0},"trentino-alto-adige":{$:0},"trentino-altoadige":{$:0},"trentino-s-tirol":{$:0},"trentino-stirol":{$:0},"trentino-sud-tirol":{$:0},"trentino-sudtirol":{$:0},"trentino-sued-tirol":{$:0},"trentino-suedtirol":{$:0},"trentinoa-adige":{$:0},trentinoaadige:{$:0},"trentinoalto-adige":{$:0},trentinoaltoadige:{$:0},"trentinos-tirol":{$:0},trentinostirol:{$:0},"trentinosud-tirol":{$:0},trentinosudtirol:{$:0},"trentinosued-tirol":{$:0},trentinosuedtirol:{$:0},tuscany:{$:0},umb:{$:0},umbria:{$:0},"val-d-aosta":{$:0},"val-daosta":{$:0},"vald-aosta":{$:0},valdaosta:{$:0},"valle-aosta":{$:0},"valle-d-aosta":{$:0},"valle-daosta":{$:0},valleaosta:{$:0},"valled-aosta":{$:0},valledaosta:{$:0},"vallee-aoste":{$:0},valleeaoste:{$:0},vao:{$:0},vda:{$:0},ven:{$:0},veneto:{$:0},ag:{$:0},agrigento:{$:0},al:{$:0},alessandria:{$:0},"alto-adige":{$:0},altoadige:{$:0},an:{$:0},ancona:{$:0},"andria-barletta-trani":{$:0},"andria-trani-barletta":{$:0},andriabarlettatrani:{$:0},andriatranibarletta:{$:0},ao:{$:0},aosta:{$:0},aoste:{$:0},ap:{$:0},aq:{$:0},aquila:{$:0},ar:{$:0},arezzo:{$:0},"ascoli-piceno":{$:0},ascolipiceno:{$:0},asti:{$:0},at:{$:0},av:{$:0},avellino:{$:0},ba:{$:0},balsan:{$:0},bari:{$:0},"barletta-trani-andria":{$:0},barlettatraniandria:{$:0},belluno:{$:0},benevento:{$:0},bergamo:{$:0},bg:{$:0},bi:{$:0},biella:{$:0},bl:{$:0},bn:{$:0},bo:{$:0},bologna:{$:0},bolzano:{$:0},bozen:{$:0},br:{$:0},brescia:{$:0},brindisi:{$:0},bs:{$:0},bt:{$:0},bz:{$:0},ca:{$:0},cagliari:{$:0},caltanissetta:{$:0},"campidano-medio":{$:0},campidanomedio:{$:0},campobasso:{$:0},"carbonia-iglesias":{$:0},carboniaiglesias:{$:0},"carrara-massa":{$:0},carraramassa:{$:0},caserta:{$:0},catania:{$:0},catanzaro:{$:0},cb:{$:0},ce:{$:0},"cesena-forli":{$:0},cesenaforli:{$:0},ch:{$:0},chieti:{$:0},ci:{$:0},cl:{$:0},cn:{$:0},co:{$:0},como:{$:0},cosenza:{$:0},cr:{$:0},cremona:{$:0},crotone:{$:0},cs:{$:0},ct:{$:0},cuneo:{$:0},cz:{$:0},"dell-ogliastra":{$:0},dellogliastra:{$:0},en:{$:0},enna:{$:0},fc:{$:0},fe:{$:0},fermo:{$:0},ferrara:{$:0},fg:{$:0},fi:{$:0},firenze:{$:0},florence:{$:0},fm:{$:0},foggia:{$:0},"forli-cesena":{$:0},forlicesena:{$:0},fr:{$:0},frosinone:{$:0},ge:{$:0},genoa:{$:0},genova:{$:0},go:{$:0},gorizia:{$:0},gr:{$:0},grosseto:{$:0},"iglesias-carbonia":{$:0},iglesiascarbonia:{$:0},im:{$:0},imperia:{$:0},is:{$:0},isernia:{$:0},kr:{$:0},"la-spezia":{$:0},laquila:{$:0},laspezia:{$:0},latina:{$:0},lc:{$:0},le:{$:0},lecce:{$:0},lecco:{$:0},li:{$:0},livorno:{$:0},lo:{$:0},lodi:{$:0},lt:{$:0},lu:{$:0},lucca:{$:0},macerata:{$:0},mantova:{$:0},"massa-carrara":{$:0},massacarrara:{$:0},matera:{$:0},mb:{$:0},mc:{$:0},me:{$:0},"medio-campidano":{$:0},mediocampidano:{$:0},messina:{$:0},mi:{$:0},milan:{$:0},milano:{$:0},mn:{$:0},mo:{$:0},modena:{$:0},"monza-brianza":{$:0},"monza-e-della-brianza":{$:0},monza:{$:0},monzabrianza:{$:0},monzaebrianza:{$:0},monzaedellabrianza:{$:0},ms:{$:0},mt:{$:0},na:{$:0},naples:{$:0},napoli:{$:0},no:{$:0},novara:{$:0},nu:{$:0},nuoro:{$:0},og:{$:0},ogliastra:{$:0},"olbia-tempio":{$:0},olbiatempio:{$:0},or:{$:0},oristano:{$:0},ot:{$:0},pa:{$:0},padova:{$:0},padua:{$:0},palermo:{$:0},parma:{$:0},pavia:{$:0},pc:{$:0},pd:{$:0},pe:{$:0},perugia:{$:0},"pesaro-urbino":{$:0},pesarourbino:{$:0},pescara:{$:0},pg:{$:0},pi:{$:0},piacenza:{$:0},pisa:{$:0},pistoia:{$:0},pn:{$:0},po:{$:0},pordenone:{$:0},potenza:{$:0},pr:{$:0},prato:{$:0},pt:{$:0},pu:{$:0},pv:{$:0},pz:{$:0},ra:{$:0},ragusa:{$:0},ravenna:{$:0},rc:{$:0},re:{$:0},"reggio-calabria":{$:0},"reggio-emilia":{$:0},reggiocalabria:{$:0},reggioemilia:{$:0},rg:{$:0},ri:{$:0},rieti:{$:0},rimini:{$:0},rm:{$:0},rn:{$:0},ro:{$:0},roma:{$:0},rome:{$:0},rovigo:{$:0},sa:{$:0},salerno:{$:0},sassari:{$:0},savona:{$:0},si:{$:0},siena:{$:0},siracusa:{$:0},so:{$:0},sondrio:{$:0},sp:{$:0},sr:{$:0},ss:{$:0},suedtirol:{$:0},sv:{$:0},ta:{$:0},taranto:{$:0},te:{$:0},"tempio-olbia":{$:0},tempioolbia:{$:0},teramo:{$:0},terni:{$:0},tn:{$:0},to:{$:0},torino:{$:0},tp:{$:0},tr:{$:0},"trani-andria-barletta":{$:0},"trani-barletta-andria":{$:0},traniandriabarletta:{$:0},tranibarlettaandria:{$:0},trapani:{$:0},trentino:{$:0},trento:{$:0},treviso:{$:0},trieste:{$:0},ts:{$:0},turin:{$:0},tv:{$:0},ud:{$:0},udine:{$:0},"urbino-pesaro":{$:0},urbinopesaro:{$:0},va:{$:0},varese:{$:0},vb:{$:0},vc:{$:0},ve:{$:0},venezia:{$:0},venice:{$:0},verbania:{$:0},vercelli:{$:0},verona:{$:0},vi:{$:0},"vibo-valentia":{$:0},vibovalentia:{$:0},vicenza:{$:0},viterbo:{$:0},vr:{$:0},vs:{$:0},vt:{$:0},vv:{$:0},blogspot:{$:0}},je:{$:0,co:{$:0},net:{$:0},org:{$:0}},jm:{"*":{$:0}},jo:{$:0,com:{$:0},org:{$:0},net:{$:0},edu:{$:0},sch:{$:0},gov:{$:0},mil:{$:0},name:{$:0}},jobs:{$:0},jp:{$:0,ac:{$:0},ad:{$:0},co:{$:0},ed:{$:0},go:{$:0},gr:{$:0},lg:{$:0},ne:{$:0},or:{$:0},aichi:{$:0,aisai:{$:0},ama:{$:0},anjo:{$:0},asuke:{$:0},chiryu:{$:0},chita:{$:0},fuso:{$:0},gamagori:{$:0},handa:{$:0},hazu:{$:0},hekinan:{$:0},higashiura:{$:0},ichinomiya:{$:0},inazawa:{$:0},inuyama:{$:0},isshiki:{$:0},iwakura:{$:0},kanie:{$:0},kariya:{$:0},kasugai:{$:0},kira:{$:0},kiyosu:{$:0},komaki:{$:0},konan:{$:0},kota:{$:0},mihama:{$:0},miyoshi:{$:0},nishio:{$:0},nisshin:{$:0},obu:{$:0},oguchi:{$:0},oharu:{$:0},okazaki:{$:0},owariasahi:{$:0},seto:{$:0},shikatsu:{$:0},shinshiro:{$:0},shitara:{$:0},tahara:{$:0},takahama:{$:0},tobishima:{$:0},toei:{$:0},togo:{$:0},tokai:{$:0},tokoname:{$:0},toyoake:{$:0},toyohashi:{$:0},toyokawa:{$:0},toyone:{$:0},toyota:{$:0},tsushima:{$:0},yatomi:{$:0}},akita:{$:0,akita:{$:0},daisen:{$:0},fujisato:{$:0},gojome:{$:0},hachirogata:{$:0},happou:{$:0},higashinaruse:{$:0},honjo:{$:0},honjyo:{$:0},ikawa:{$:0},kamikoani:{$:0},kamioka:{$:0},katagami:{$:0},kazuno:{$:0},kitaakita:{$:0},kosaka:{$:0},kyowa:{$:0},misato:{$:0},mitane:{$:0},moriyoshi:{$:0},nikaho:{$:0},noshiro:{$:0},odate:{$:0},oga:{$:0},ogata:{$:0},semboku:{$:0},yokote:{$:0},yurihonjo:{$:0}},aomori:{$:0,aomori:{$:0},gonohe:{$:0},hachinohe:{$:0},hashikami:{$:0},hiranai:{$:0},hirosaki:{$:0},itayanagi:{$:0},kuroishi:{$:0},misawa:{$:0},mutsu:{$:0},nakadomari:{$:0},noheji:{$:0},oirase:{$:0},owani:{$:0},rokunohe:{$:0},sannohe:{$:0},shichinohe:{$:0},shingo:{$:0},takko:{$:0},towada:{$:0},tsugaru:{$:0},tsuruta:{$:0}},chiba:{$:0,abiko:{$:0},asahi:{$:0},chonan:{$:0},chosei:{$:0},choshi:{$:0},chuo:{$:0},funabashi:{$:0},futtsu:{$:0},hanamigawa:{$:0},ichihara:{$:0},ichikawa:{$:0},ichinomiya:{$:0},inzai:{$:0},isumi:{$:0},kamagaya:{$:0},kamogawa:{$:0},kashiwa:{$:0},katori:{$:0},katsuura:{$:0},kimitsu:{$:0},kisarazu:{$:0},kozaki:{$:0},kujukuri:{$:0},kyonan:{$:0},matsudo:{$:0},midori:{$:0},mihama:{$:0},minamiboso:{$:0},mobara:{$:0},mutsuzawa:{$:0},nagara:{$:0},nagareyama:{$:0},narashino:{$:0},narita:{$:0},noda:{$:0},oamishirasato:{$:0},omigawa:{$:0},onjuku:{$:0},otaki:{$:0},sakae:{$:0},sakura:{$:0},shimofusa:{$:0},shirako:{$:0},shiroi:{$:0},shisui:{$:0},sodegaura:{$:0},sosa:{$:0},tako:{$:0},tateyama:{$:0},togane:{$:0},tohnosho:{$:0},tomisato:{$:0},urayasu:{$:0},yachimata:{$:0},yachiyo:{$:0},yokaichiba:{$:0},yokoshibahikari:{$:0},yotsukaido:{$:0}},ehime:{$:0,ainan:{$:0},honai:{$:0},ikata:{$:0},imabari:{$:0},iyo:{$:0},kamijima:{$:0},kihoku:{$:0},kumakogen:{$:0},masaki:{$:0},matsuno:{$:0},matsuyama:{$:0},namikata:{$:0},niihama:{$:0},ozu:{$:0},saijo:{$:0},seiyo:{$:0},shikokuchuo:{$:0},tobe:{$:0},toon:{$:0},uchiko:{$:0},uwajima:{$:0},yawatahama:{$:0}},fukui:{$:0,echizen:{$:0},eiheiji:{$:0},fukui:{$:0},ikeda:{$:0},katsuyama:{$:0},mihama:{$:0},minamiechizen:{$:0},obama:{$:0},ohi:{$:0},ono:{$:0},sabae:{$:0},sakai:{$:0},takahama:{$:0},tsuruga:{$:0},wakasa:{$:0}},fukuoka:{$:0,ashiya:{$:0},buzen:{$:0},chikugo:{$:0},chikuho:{$:0},chikujo:{$:0},chikushino:{$:0},chikuzen:{$:0},chuo:{$:0},dazaifu:{$:0},fukuchi:{$:0},hakata:{$:0},higashi:{$:0},hirokawa:{$:0},hisayama:{$:0},iizuka:{$:0},inatsuki:{$:0},kaho:{$:0},kasuga:{$:0},kasuya:{$:0},kawara:{$:0},keisen:{$:0},koga:{$:0},kurate:{$:0},kurogi:{$:0},kurume:{$:0},minami:{$:0},miyako:{$:0},miyama:{$:0},miyawaka:{$:0},mizumaki:{$:0},munakata:{$:0},nakagawa:{$:0},nakama:{$:0},nishi:{$:0},nogata:{$:0},ogori:{$:0},okagaki:{$:0},okawa:{$:0},oki:{$:0},omuta:{$:0},onga:{$:0},onojo:{$:0},oto:{$:0},saigawa:{$:0},sasaguri:{$:0},shingu:{$:0},shinyoshitomi:{$:0},shonai:{$:0},soeda:{$:0},sue:{$:0},tachiarai:{$:0},tagawa:{$:0},takata:{$:0},toho:{$:0},toyotsu:{$:0},tsuiki:{$:0},ukiha:{$:0},umi:{$:0},usui:{$:0},yamada:{$:0},yame:{$:0},yanagawa:{$:0},yukuhashi:{$:0}},fukushima:{$:0,aizubange:{$:0},aizumisato:{$:0},aizuwakamatsu:{$:0},asakawa:{$:0},bandai:{$:0},date:{$:0},fukushima:{$:0},furudono:{$:0},futaba:{$:0},hanawa:{$:0},higashi:{$:0},hirata:{$:0},hirono:{$:0},iitate:{$:0},inawashiro:{$:0},ishikawa:{$:0},iwaki:{$:0},izumizaki:{$:0},kagamiishi:{$:0},kaneyama:{$:0},kawamata:{$:0},kitakata:{$:0},kitashiobara:{$:0},koori:{$:0},koriyama:{$:0},kunimi:{$:0},miharu:{$:0},mishima:{$:0},namie:{$:0},nango:{$:0},nishiaizu:{$:0},nishigo:{$:0},okuma:{$:0},omotego:{$:0},ono:{$:0},otama:{$:0},samegawa:{$:0},shimogo:{$:0},shirakawa:{$:0},showa:{$:0},soma:{$:0},sukagawa:{$:0},taishin:{$:0},tamakawa:{$:0},tanagura:{$:0},tenei:{$:0},yabuki:{$:0},yamato:{$:0},yamatsuri:{$:0},yanaizu:{$:0},yugawa:{$:0}},gifu:{$:0,anpachi:{$:0},ena:{$:0},gifu:{$:0},ginan:{$:0},godo:{$:0},gujo:{$:0},hashima:{$:0},hichiso:{$:0},hida:{$:0},higashishirakawa:{$:0},ibigawa:{$:0},ikeda:{$:0},kakamigahara:{$:0},kani:{$:0},kasahara:{$:0},kasamatsu:{$:0},kawaue:{$:0},kitagata:{$:0},mino:{$:0},minokamo:{$:0},mitake:{$:0},mizunami:{$:0},motosu:{$:0},nakatsugawa:{$:0},ogaki:{$:0},sakahogi:{$:0},seki:{$:0},sekigahara:{$:0},shirakawa:{$:0},tajimi:{$:0},takayama:{$:0},tarui:{$:0},toki:{$:0},tomika:{$:0},wanouchi:{$:0},yamagata:{$:0},yaotsu:{$:0},yoro:{$:0}},gunma:{$:0,annaka:{$:0},chiyoda:{$:0},fujioka:{$:0},higashiagatsuma:{$:0},isesaki:{$:0},itakura:{$:0},kanna:{$:0},kanra:{$:0},katashina:{$:0},kawaba:{$:0},kiryu:{$:0},kusatsu:{$:0},maebashi:{$:0},meiwa:{$:0},midori:{$:0},minakami:{$:0},naganohara:{$:0},nakanojo:{$:0},nanmoku:{$:0},numata:{$:0},oizumi:{$:0},ora:{$:0},ota:{$:0},shibukawa:{$:0},shimonita:{$:0},shinto:{$:0},showa:{$:0},takasaki:{$:0},takayama:{$:0},tamamura:{$:0},tatebayashi:{$:0},tomioka:{$:0},tsukiyono:{$:0},tsumagoi:{$:0},ueno:{$:0},yoshioka:{$:0}},hiroshima:{$:0,asaminami:{$:0},daiwa:{$:0},etajima:{$:0},fuchu:{$:0},fukuyama:{$:0},hatsukaichi:{$:0},higashihiroshima:{$:0},hongo:{$:0},jinsekikogen:{$:0},kaita:{$:0},kui:{$:0},kumano:{$:0},kure:{$:0},mihara:{$:0},miyoshi:{$:0},naka:{$:0},onomichi:{$:0},osakikamijima:{$:0},otake:{$:0},saka:{$:0},sera:{$:0},seranishi:{$:0},shinichi:{$:0},shobara:{$:0},takehara:{$:0}},hokkaido:{$:0,abashiri:{$:0},abira:{$:0},aibetsu:{$:0},akabira:{$:0},akkeshi:{$:0},asahikawa:{$:0},ashibetsu:{$:0},ashoro:{$:0},assabu:{$:0},atsuma:{$:0},bibai:{$:0},biei:{$:0},bifuka:{$:0},bihoro:{$:0},biratori:{$:0},chippubetsu:{$:0},chitose:{$:0},date:{$:0},ebetsu:{$:0},embetsu:{$:0},eniwa:{$:0},erimo:{$:0},esan:{$:0},esashi:{$:0},fukagawa:{$:0},fukushima:{$:0},furano:{$:0},furubira:{$:0},haboro:{$:0},hakodate:{$:0},hamatonbetsu:{$:0},hidaka:{$:0},higashikagura:{$:0},higashikawa:{$:0},hiroo:{$:0},hokuryu:{$:0},hokuto:{$:0},honbetsu:{$:0},horokanai:{$:0},horonobe:{$:0},ikeda:{$:0},imakane:{$:0},ishikari:{$:0},iwamizawa:{$:0},iwanai:{$:0},kamifurano:{$:0},kamikawa:{$:0},kamishihoro:{$:0},kamisunagawa:{$:0},kamoenai:{$:0},kayabe:{$:0},kembuchi:{$:0},kikonai:{$:0},kimobetsu:{$:0},kitahiroshima:{$:0},kitami:{$:0},kiyosato:{$:0},koshimizu:{$:0},kunneppu:{$:0},kuriyama:{$:0},kuromatsunai:{$:0},kushiro:{$:0},kutchan:{$:0},kyowa:{$:0},mashike:{$:0},matsumae:{$:0},mikasa:{$:0},minamifurano:{$:0},mombetsu:{$:0},moseushi:{$:0},mukawa:{$:0},muroran:{$:0},naie:{$:0},nakagawa:{$:0},nakasatsunai:{$:0},nakatombetsu:{$:0},nanae:{$:0},nanporo:{$:0},nayoro:{$:0},nemuro:{$:0},niikappu:{$:0},niki:{$:0},nishiokoppe:{$:0},noboribetsu:{$:0},numata:{$:0},obihiro:{$:0},obira:{$:0},oketo:{$:0},okoppe:{$:0},otaru:{$:0},otobe:{$:0},otofuke:{$:0},otoineppu:{$:0},oumu:{$:0},ozora:{$:0},pippu:{$:0},rankoshi:{$:0},rebun:{$:0},rikubetsu:{$:0},rishiri:{$:0},rishirifuji:{$:0},saroma:{$:0},sarufutsu:{$:0},shakotan:{$:0},shari:{$:0},shibecha:{$:0},shibetsu:{$:0},shikabe:{$:0},shikaoi:{$:0},shimamaki:{$:0},shimizu:{$:0},shimokawa:{$:0},shinshinotsu:{$:0},shintoku:{$:0},shiranuka:{$:0},shiraoi:{$:0},shiriuchi:{$:0},sobetsu:{$:0},sunagawa:{$:0},taiki:{$:0},takasu:{$:0},takikawa:{$:0},takinoue:{$:0},teshikaga:{$:0},tobetsu:{$:0},tohma:{$:0},tomakomai:{$:0},tomari:{$:0},toya:{$:0},toyako:{$:0},toyotomi:{$:0},toyoura:{$:0},tsubetsu:{$:0},tsukigata:{$:0},urakawa:{$:0},urausu:{$:0},uryu:{$:0},utashinai:{$:0},wakkanai:{$:0},wassamu:{$:0},yakumo:{$:0},yoichi:{$:0}},hyogo:{$:0,aioi:{$:0},akashi:{$:0},ako:{$:0},amagasaki:{$:0},aogaki:{$:0},asago:{$:0},ashiya:{$:0},awaji:{$:0},fukusaki:{$:0},goshiki:{$:0},harima:{$:0},himeji:{$:0},ichikawa:{$:0},inagawa:{$:0},itami:{$:0},kakogawa:{$:0},kamigori:{$:0},kamikawa:{$:0},kasai:{$:0},kasuga:{$:0},kawanishi:{$:0},miki:{$:0},minamiawaji:{$:0},nishinomiya:{$:0},nishiwaki:{$:0},ono:{$:0},sanda:{$:0},sannan:{$:0},sasayama:{$:0},sayo:{$:0},shingu:{$:0},shinonsen:{$:0},shiso:{$:0},sumoto:{$:0},taishi:{$:0},taka:{$:0},takarazuka:{$:0},takasago:{$:0},takino:{$:0},tamba:{$:0},tatsuno:{$:0},toyooka:{$:0},yabu:{$:0},yashiro:{$:0},yoka:{$:0},yokawa:{$:0}},ibaraki:{$:0,ami:{$:0},asahi:{$:0},bando:{$:0},chikusei:{$:0},daigo:{$:0},fujishiro:{$:0},hitachi:{$:0},hitachinaka:{$:0},hitachiomiya:{$:0},hitachiota:{$:0},ibaraki:{$:0},ina:{$:0},inashiki:{$:0},itako:{$:0},iwama:{$:0},joso:{$:0},kamisu:{$:0},kasama:{$:0},kashima:{$:0},kasumigaura:{$:0},koga:{$:0},miho:{$:0},mito:{$:0},moriya:{$:0},naka:{$:0},namegata:{$:0},oarai:{$:0},ogawa:{$:0},omitama:{$:0},ryugasaki:{$:0},sakai:{$:0},sakuragawa:{$:0},shimodate:{$:0},shimotsuma:{$:0},shirosato:{$:0},sowa:{$:0},suifu:{$:0},takahagi:{$:0},tamatsukuri:{$:0},tokai:{$:0},tomobe:{$:0},tone:{$:0},toride:{$:0},tsuchiura:{$:0},tsukuba:{$:0},uchihara:{$:0},ushiku:{$:0},yachiyo:{$:0},yamagata:{$:0},yawara:{$:0},yuki:{$:0}},ishikawa:{$:0,anamizu:{$:0},hakui:{$:0},hakusan:{$:0},kaga:{$:0},kahoku:{$:0},kanazawa:{$:0},kawakita:{$:0},komatsu:{$:0},nakanoto:{$:0},nanao:{$:0},nomi:{$:0},nonoichi:{$:0},noto:{$:0},shika:{$:0},suzu:{$:0},tsubata:{$:0},tsurugi:{$:0},uchinada:{$:0},wajima:{$:0}},iwate:{$:0,fudai:{$:0},fujisawa:{$:0},hanamaki:{$:0},hiraizumi:{$:0},hirono:{$:0},ichinohe:{$:0},ichinoseki:{$:0},iwaizumi:{$:0},iwate:{$:0},joboji:{$:0},kamaishi:{$:0},kanegasaki:{$:0},karumai:{$:0},kawai:{$:0},kitakami:{$:0},kuji:{$:0},kunohe:{$:0},kuzumaki:{$:0},miyako:{$:0},mizusawa:{$:0},morioka:{$:0},ninohe:{$:0},noda:{$:0},ofunato:{$:0},oshu:{$:0},otsuchi:{$:0},rikuzentakata:{$:0},shiwa:{$:0},shizukuishi:{$:0},sumita:{$:0},tanohata:{$:0},tono:{$:0},yahaba:{$:0},yamada:{$:0}},kagawa:{$:0,ayagawa:{$:0},higashikagawa:{$:0},kanonji:{$:0},kotohira:{$:0},manno:{$:0},marugame:{$:0},mitoyo:{$:0},naoshima:{$:0},sanuki:{$:0},tadotsu:{$:0},takamatsu:{$:0},tonosho:{$:0},uchinomi:{$:0},utazu:{$:0},zentsuji:{$:0}},kagoshima:{$:0,akune:{$:0},amami:{$:0},hioki:{$:0},isa:{$:0},isen:{$:0},izumi:{$:0},kagoshima:{$:0},kanoya:{$:0},kawanabe:{$:0},kinko:{$:0},kouyama:{$:0},makurazaki:{$:0},matsumoto:{$:0},minamitane:{$:0},nakatane:{$:0},nishinoomote:{$:0},satsumasendai:{$:0},soo:{$:0},tarumizu:{$:0},yusui:{$:0}},kanagawa:{$:0,aikawa:{$:0},atsugi:{$:0},ayase:{$:0},chigasaki:{$:0},ebina:{$:0},fujisawa:{$:0},hadano:{$:0},hakone:{$:0},hiratsuka:{$:0},isehara:{$:0},kaisei:{$:0},kamakura:{$:0},kiyokawa:{$:0},matsuda:{$:0},minamiashigara:{$:0},miura:{$:0},nakai:{$:0},ninomiya:{$:0},odawara:{$:0},oi:{$:0},oiso:{$:0},sagamihara:{$:0},samukawa:{$:0},tsukui:{$:0},yamakita:{$:0},yamato:{$:0},yokosuka:{$:0},yugawara:{$:0},zama:{$:0},zushi:{$:0}},kochi:{$:0,aki:{$:0},geisei:{$:0},hidaka:{$:0},higashitsuno:{$:0},ino:{$:0},kagami:{$:0},kami:{$:0},kitagawa:{$:0},kochi:{$:0},mihara:{$:0},motoyama:{$:0},muroto:{$:0},nahari:{$:0},nakamura:{$:0},nankoku:{$:0},nishitosa:{$:0},niyodogawa:{$:0},ochi:{$:0},okawa:{$:0},otoyo:{$:0},otsuki:{$:0},sakawa:{$:0},sukumo:{$:0},susaki:{$:0},tosa:{$:0},tosashimizu:{$:0},toyo:{$:0},tsuno:{$:0},umaji:{$:0},yasuda:{$:0},yusuhara:{$:0}},kumamoto:{$:0,amakusa:{$:0},arao:{$:0},aso:{$:0},choyo:{$:0},gyokuto:{$:0},kamiamakusa:{$:0},kikuchi:{$:0},kumamoto:{$:0},mashiki:{$:0},mifune:{$:0},minamata:{$:0},minamioguni:{$:0},nagasu:{$:0},nishihara:{$:0},oguni:{$:0},ozu:{$:0},sumoto:{$:0},takamori:{$:0},uki:{$:0},uto:{$:0},yamaga:{$:0},yamato:{$:0},yatsushiro:{$:0}},kyoto:{$:0,ayabe:{$:0},fukuchiyama:{$:0},higashiyama:{$:0},ide:{$:0},ine:{$:0},joyo:{$:0},kameoka:{$:0},kamo:{$:0},kita:{$:0},kizu:{$:0},kumiyama:{$:0},kyotamba:{$:0},kyotanabe:{$:0},kyotango:{$:0},maizuru:{$:0},minami:{$:0},minamiyamashiro:{$:0},miyazu:{$:0},muko:{$:0},nagaokakyo:{$:0},nakagyo:{$:0},nantan:{$:0},oyamazaki:{$:0},sakyo:{$:0},seika:{$:0},tanabe:{$:0},uji:{$:0},ujitawara:{$:0},wazuka:{$:0},yamashina:{$:0},yawata:{$:0}},mie:{$:0,asahi:{$:0},inabe:{$:0},ise:{$:0},kameyama:{$:0},kawagoe:{$:0},kiho:{$:0},kisosaki:{$:0},kiwa:{$:0},komono:{$:0},kumano:{$:0},kuwana:{$:0},matsusaka:{$:0},meiwa:{$:0},mihama:{$:0},minamiise:{$:0},misugi:{$:0},miyama:{$:0},nabari:{$:0},shima:{$:0},suzuka:{$:0},tado:{$:0},taiki:{$:0},taki:{$:0},tamaki:{$:0},toba:{$:0},tsu:{$:0},udono:{$:0},ureshino:{$:0},watarai:{$:0},yokkaichi:{$:0}},miyagi:{$:0,furukawa:{$:0},higashimatsushima:{$:0},ishinomaki:{$:0},iwanuma:{$:0},kakuda:{$:0},kami:{$:0},kawasaki:{$:0},marumori:{$:0},matsushima:{$:0},minamisanriku:{$:0},misato:{$:0},murata:{$:0},natori:{$:0},ogawara:{$:0},ohira:{$:0},onagawa:{$:0},osaki:{$:0},rifu:{$:0},semine:{$:0},shibata:{$:0},shichikashuku:{$:0},shikama:{$:0},shiogama:{$:0},shiroishi:{$:0},tagajo:{$:0},taiwa:{$:0},tome:{$:0},tomiya:{$:0},wakuya:{$:0},watari:{$:0},yamamoto:{$:0},zao:{$:0}},miyazaki:{$:0,aya:{$:0},ebino:{$:0},gokase:{$:0},hyuga:{$:0},kadogawa:{$:0},kawaminami:{$:0},kijo:{$:0},kitagawa:{$:0},kitakata:{$:0},kitaura:{$:0},kobayashi:{$:0},kunitomi:{$:0},kushima:{$:0},mimata:{$:0},miyakonojo:{$:0},miyazaki:{$:0},morotsuka:{$:0},nichinan:{$:0},nishimera:{$:0},nobeoka:{$:0},saito:{$:0},shiiba:{$:0},shintomi:{$:0},takaharu:{$:0},takanabe:{$:0},takazaki:{$:0},tsuno:{$:0}},nagano:{$:0,achi:{$:0},agematsu:{$:0},anan:{$:0},aoki:{$:0},asahi:{$:0},azumino:{$:0},chikuhoku:{$:0},chikuma:{$:0},chino:{$:0},fujimi:{$:0},hakuba:{$:0},hara:{$:0},hiraya:{$:0},iida:{$:0},iijima:{$:0},iiyama:{$:0},iizuna:{$:0},ikeda:{$:0},ikusaka:{$:0},ina:{$:0},karuizawa:{$:0},kawakami:{$:0},kiso:{$:0},kisofukushima:{$:0},kitaaiki:{$:0},komagane:{$:0},komoro:{$:0},matsukawa:{$:0},matsumoto:{$:0},miasa:{$:0},minamiaiki:{$:0},minamimaki:{$:0},minamiminowa:{$:0},minowa:{$:0},miyada:{$:0},miyota:{$:0},mochizuki:{$:0},nagano:{$:0},nagawa:{$:0},nagiso:{$:0},nakagawa:{$:0},nakano:{$:0},nozawaonsen:{$:0},obuse:{$:0},ogawa:{$:0},okaya:{$:0},omachi:{$:0},omi:{$:0},ookuwa:{$:0},ooshika:{$:0},otaki:{$:0},otari:{$:0},sakae:{$:0},sakaki:{$:0},saku:{$:0},sakuho:{$:0},shimosuwa:{$:0},shinanomachi:{$:0},shiojiri:{$:0},suwa:{$:0},suzaka:{$:0},takagi:{$:0},takamori:{$:0},takayama:{$:0},tateshina:{$:0},tatsuno:{$:0},togakushi:{$:0},togura:{$:0},tomi:{$:0},ueda:{$:0},wada:{$:0},yamagata:{$:0},yamanouchi:{$:0},yasaka:{$:0},yasuoka:{$:0}},nagasaki:{$:0,chijiwa:{$:0},futsu:{$:0},goto:{$:0},hasami:{$:0},hirado:{$:0},iki:{$:0},isahaya:{$:0},kawatana:{$:0},kuchinotsu:{$:0},matsuura:{$:0},nagasaki:{$:0},obama:{$:0},omura:{$:0},oseto:{$:0},saikai:{$:0},sasebo:{$:0},seihi:{$:0},shimabara:{$:0},shinkamigoto:{$:0},togitsu:{$:0},tsushima:{$:0},unzen:{$:0}},nara:{$:0,ando:{$:0},gose:{$:0},heguri:{$:0},higashiyoshino:{$:0},ikaruga:{$:0},ikoma:{$:0},kamikitayama:{$:0},kanmaki:{$:0},kashiba:{$:0},kashihara:{$:0},katsuragi:{$:0},kawai:{$:0},kawakami:{$:0},kawanishi:{$:0},koryo:{$:0},kurotaki:{$:0},mitsue:{$:0},miyake:{$:0},nara:{$:0},nosegawa:{$:0},oji:{$:0},ouda:{$:0},oyodo:{$:0},sakurai:{$:0},sango:{$:0},shimoichi:{$:0},shimokitayama:{$:0},shinjo:{$:0},soni:{$:0},takatori:{$:0},tawaramoto:{$:0},tenkawa:{$:0},tenri:{$:0},uda:{$:0},yamatokoriyama:{$:0},yamatotakada:{$:0},yamazoe:{$:0},yoshino:{$:0}},niigata:{$:0,aga:{$:0},agano:{$:0},gosen:{$:0},itoigawa:{$:0},izumozaki:{$:0},joetsu:{$:0},kamo:{$:0},kariwa:{$:0},kashiwazaki:{$:0},minamiuonuma:{$:0},mitsuke:{$:0},muika:{$:0},murakami:{$:0},myoko:{$:0},nagaoka:{$:0},niigata:{$:0},ojiya:{$:0},omi:{$:0},sado:{$:0},sanjo:{$:0},seiro:{$:0},seirou:{$:0},sekikawa:{$:0},shibata:{$:0},tagami:{$:0},tainai:{$:0},tochio:{$:0},tokamachi:{$:0},tsubame:{$:0},tsunan:{$:0},uonuma:{$:0},yahiko:{$:0},yoita:{$:0},yuzawa:{$:0}},oita:{$:0,beppu:{$:0},bungoono:{$:0},bungotakada:{$:0},hasama:{$:0},hiji:{$:0},himeshima:{$:0},hita:{$:0},kamitsue:{$:0},kokonoe:{$:0},kuju:{$:0},kunisaki:{$:0},kusu:{$:0},oita:{$:0},saiki:{$:0},taketa:{$:0},tsukumi:{$:0},usa:{$:0},usuki:{$:0},yufu:{$:0}},okayama:{$:0,akaiwa:{$:0},asakuchi:{$:0},bizen:{$:0},hayashima:{$:0},ibara:{$:0},kagamino:{$:0},kasaoka:{$:0},kibichuo:{$:0},kumenan:{$:0},kurashiki:{$:0},maniwa:{$:0},misaki:{$:0},nagi:{$:0},niimi:{$:0},nishiawakura:{$:0},okayama:{$:0},satosho:{$:0},setouchi:{$:0},shinjo:{$:0},shoo:{$:0},soja:{$:0},takahashi:{$:0},tamano:{$:0},tsuyama:{$:0},wake:{$:0},yakage:{$:0}},okinawa:{$:0,aguni:{$:0},ginowan:{$:0},ginoza:{$:0},gushikami:{$:0},haebaru:{$:0},higashi:{$:0},hirara:{$:0},iheya:{$:0},ishigaki:{$:0},ishikawa:{$:0},itoman:{$:0},izena:{$:0},kadena:{$:0},kin:{$:0},kitadaito:{$:0},kitanakagusuku:{$:0},kumejima:{$:0},kunigami:{$:0},minamidaito:{$:0},motobu:{$:0},nago:{$:0},naha:{$:0},nakagusuku:{$:0},nakijin:{$:0},nanjo:{$:0},nishihara:{$:0},ogimi:{$:0},okinawa:{$:0},onna:{$:0},shimoji:{$:0},taketomi:{$:0},tarama:{$:0},tokashiki:{$:0},tomigusuku:{$:0},tonaki:{$:0},urasoe:{$:0},uruma:{$:0},yaese:{$:0},yomitan:{$:0},yonabaru:{$:0},yonaguni:{$:0},zamami:{$:0}},osaka:{$:0,abeno:{$:0},chihayaakasaka:{$:0},chuo:{$:0},daito:{$:0},fujiidera:{$:0},habikino:{$:0},hannan:{$:0},higashiosaka:{$:0},higashisumiyoshi:{$:0},higashiyodogawa:{$:0},hirakata:{$:0},ibaraki:{$:0},ikeda:{$:0},izumi:{$:0},izumiotsu:{$:0},izumisano:{$:0},kadoma:{$:0},kaizuka:{$:0},kanan:{$:0},kashiwara:{$:0},katano:{$:0},kawachinagano:{$:0},kishiwada:{$:0},kita:{$:0},kumatori:{$:0},matsubara:{$:0},minato:{$:0},minoh:{$:0},misaki:{$:0},moriguchi:{$:0},neyagawa:{$:0},nishi:{$:0},nose:{$:0},osakasayama:{$:0},sakai:{$:0},sayama:{$:0},sennan:{$:0},settsu:{$:0},shijonawate:{$:0},shimamoto:{$:0},suita:{$:0},tadaoka:{$:0},taishi:{$:0},tajiri:{$:0},takaishi:{$:0},takatsuki:{$:0},tondabayashi:{$:0},toyonaka:{$:0},toyono:{$:0},yao:{$:0}},saga:{$:0,ariake:{$:0},arita:{$:0},fukudomi:{$:0},genkai:{$:0},hamatama:{$:0},hizen:{$:0},imari:{$:0},kamimine:{$:0},kanzaki:{$:0},karatsu:{$:0},kashima:{$:0},kitagata:{$:0},kitahata:{$:0},kiyama:{$:0},kouhoku:{$:0},kyuragi:{$:0},nishiarita:{$:0},ogi:{$:0},omachi:{$:0},ouchi:{$:0},saga:{$:0},shiroishi:{$:0},taku:{$:0},tara:{$:0},tosu:{$:0},yoshinogari:{$:0}},saitama:{$:0,arakawa:{$:0},asaka:{$:0},chichibu:{$:0},fujimi:{$:0},fujimino:{$:0},fukaya:{$:0},hanno:{$:0},hanyu:{$:0},hasuda:{$:0},hatogaya:{$:0},hatoyama:{$:0},hidaka:{$:0},higashichichibu:{$:0},higashimatsuyama:{$:0},honjo:{$:0},ina:{$:0},iruma:{$:0},iwatsuki:{$:0},kamiizumi:{$:0},kamikawa:{$:0},kamisato:{$:0},kasukabe:{$:0},kawagoe:{$:0},kawaguchi:{$:0},kawajima:{$:0},kazo:{$:0},kitamoto:{$:0},koshigaya:{$:0},kounosu:{$:0},kuki:{$:0},kumagaya:{$:0},matsubushi:{$:0},minano:{$:0},misato:{$:0},miyashiro:{$:0},miyoshi:{$:0},moroyama:{$:0},nagatoro:{$:0},namegawa:{$:0},niiza:{$:0},ogano:{$:0},ogawa:{$:0},ogose:{$:0},okegawa:{$:0},omiya:{$:0},otaki:{$:0},ranzan:{$:0},ryokami:{$:0},saitama:{$:0},sakado:{$:0},satte:{$:0},sayama:{$:0},shiki:{$:0},shiraoka:{$:0},soka:{$:0},sugito:{$:0},toda:{$:0},tokigawa:{$:0},tokorozawa:{$:0},tsurugashima:{$:0},urawa:{$:0},warabi:{$:0},yashio:{$:0},yokoze:{$:0},yono:{$:0},yorii:{$:0},yoshida:{$:0},yoshikawa:{$:0},yoshimi:{$:0}},shiga:{$:0,aisho:{$:0},gamo:{$:0},higashiomi:{$:0},hikone:{$:0},koka:{$:0},konan:{$:0},kosei:{$:0},koto:{$:0},kusatsu:{$:0},maibara:{$:0},moriyama:{$:0},nagahama:{$:0},nishiazai:{$:0},notogawa:{$:0},omihachiman:{$:0},otsu:{$:0},ritto:{$:0},ryuoh:{$:0},takashima:{$:0},takatsuki:{$:0},torahime:{$:0},toyosato:{$:0},yasu:{$:0}},shimane:{$:0,akagi:{$:0},ama:{$:0},gotsu:{$:0},hamada:{$:0},higashiizumo:{$:0},hikawa:{$:0},hikimi:{$:0},izumo:{$:0},kakinoki:{$:0},masuda:{$:0},matsue:{$:0},misato:{$:0},nishinoshima:{$:0},ohda:{$:0},okinoshima:{$:0},okuizumo:{$:0},shimane:{$:0},tamayu:{$:0},tsuwano:{$:0},unnan:{$:0},yakumo:{$:0},yasugi:{$:0},yatsuka:{$:0}},shizuoka:{$:0,arai:{$:0},atami:{$:0},fuji:{$:0},fujieda:{$:0},fujikawa:{$:0},fujinomiya:{$:0},fukuroi:{$:0},gotemba:{$:0},haibara:{$:0},hamamatsu:{$:0},higashiizu:{$:0},ito:{$:0},iwata:{$:0},izu:{$:0},izunokuni:{$:0},kakegawa:{$:0},kannami:{$:0},kawanehon:{$:0},kawazu:{$:0},kikugawa:{$:0},kosai:{$:0},makinohara:{$:0},matsuzaki:{$:0},minamiizu:{$:0},mishima:{$:0},morimachi:{$:0},nishiizu:{$:0},numazu:{$:0},omaezaki:{$:0},shimada:{$:0},shimizu:{$:0},shimoda:{$:0},shizuoka:{$:0},susono:{$:0},yaizu:{$:0},yoshida:{$:0}},tochigi:{$:0,ashikaga:{$:0},bato:{$:0},haga:{$:0},ichikai:{$:0},iwafune:{$:0},kaminokawa:{$:0},kanuma:{$:0},karasuyama:{$:0},kuroiso:{$:0},mashiko:{$:0},mibu:{$:0},moka:{$:0},motegi:{$:0},nasu:{$:0},nasushiobara:{$:0},nikko:{$:0},nishikata:{$:0},nogi:{$:0},ohira:{$:0},ohtawara:{$:0},oyama:{$:0},sakura:{$:0},sano:{$:0},shimotsuke:{$:0},shioya:{$:0},takanezawa:{$:0},tochigi:{$:0},tsuga:{$:0},ujiie:{$:0},utsunomiya:{$:0},yaita:{$:0}},tokushima:{$:0,aizumi:{$:0},anan:{$:0},ichiba:{$:0},itano:{$:0},kainan:{$:0},komatsushima:{$:0},matsushige:{$:0},mima:{$:0},minami:{$:0},miyoshi:{$:0},mugi:{$:0},nakagawa:{$:0},naruto:{$:0},sanagochi:{$:0},shishikui:{$:0},tokushima:{$:0},wajiki:{$:0}},tokyo:{$:0,adachi:{$:0},akiruno:{$:0},akishima:{$:0},aogashima:{$:0},arakawa:{$:0},bunkyo:{$:0},chiyoda:{$:0},chofu:{$:0},chuo:{$:0},edogawa:{$:0},fuchu:{$:0},fussa:{$:0},hachijo:{$:0},hachioji:{$:0},hamura:{$:0},higashikurume:{$:0},higashimurayama:{$:0},higashiyamato:{$:0},hino:{$:0},hinode:{$:0},hinohara:{$:0},inagi:{$:0},itabashi:{$:0},katsushika:{$:0},kita:{$:0},kiyose:{$:0},kodaira:{$:0},koganei:{$:0},kokubunji:{$:0},komae:{$:0},koto:{$:0},kouzushima:{$:0},kunitachi:{$:0},machida:{$:0},meguro:{$:0},minato:{$:0},mitaka:{$:0},mizuho:{$:0},musashimurayama:{$:0},musashino:{$:0},nakano:{$:0},nerima:{$:0},ogasawara:{$:0},okutama:{$:0},ome:{$:0},oshima:{$:0},ota:{$:0},setagaya:{$:0},shibuya:{$:0},shinagawa:{$:0},shinjuku:{$:0},suginami:{$:0},sumida:{$:0},tachikawa:{$:0},taito:{$:0},tama:{$:0},toshima:{$:0}},tottori:{$:0,chizu:{$:0},hino:{$:0},kawahara:{$:0},koge:{$:0},kotoura:{$:0},misasa:{$:0},nanbu:{$:0},nichinan:{$:0},sakaiminato:{$:0},tottori:{$:0},wakasa:{$:0},yazu:{$:0},yonago:{$:0}},toyama:{$:0,asahi:{$:0},fuchu:{$:0},fukumitsu:{$:0},funahashi:{$:0},himi:{$:0},imizu:{$:0},inami:{$:0},johana:{$:0},kamiichi:{$:0},kurobe:{$:0},nakaniikawa:{$:0},namerikawa:{$:0},nanto:{$:0},nyuzen:{$:0},oyabe:{$:0},taira:{$:0},takaoka:{$:0},tateyama:{$:0},toga:{$:0},tonami:{$:0},toyama:{$:0},unazuki:{$:0},uozu:{$:0},yamada:{$:0}},wakayama:{$:0,arida:{$:0},aridagawa:{$:0},gobo:{$:0},hashimoto:{$:0},hidaka:{$:0},hirogawa:{$:0},inami:{$:0},iwade:{$:0},kainan:{$:0},kamitonda:{$:0},katsuragi:{$:0},kimino:{$:0},kinokawa:{$:0},kitayama:{$:0},koya:{$:0},koza:{$:0},kozagawa:{$:0},kudoyama:{$:0},kushimoto:{$:0},mihama:{$:0},misato:{$:0},nachikatsuura:{$:0},shingu:{$:0},shirahama:{$:0},taiji:{$:0},tanabe:{$:0},wakayama:{$:0},yuasa:{$:0},yura:{$:0}},yamagata:{$:0,asahi:{$:0},funagata:{$:0},higashine:{$:0},iide:{$:0},kahoku:{$:0},kaminoyama:{$:0},kaneyama:{$:0},kawanishi:{$:0},mamurogawa:{$:0},mikawa:{$:0},murayama:{$:0},nagai:{$:0},nakayama:{$:0},nanyo:{$:0},nishikawa:{$:0},obanazawa:{$:0},oe:{$:0},oguni:{$:0},ohkura:{$:0},oishida:{$:0},sagae:{$:0},sakata:{$:0},sakegawa:{$:0},shinjo:{$:0},shirataka:{$:0},shonai:{$:0},takahata:{$:0},tendo:{$:0},tozawa:{$:0},tsuruoka:{$:0},yamagata:{$:0},yamanobe:{$:0},yonezawa:{$:0},yuza:{$:0}},yamaguchi:{$:0,abu:{$:0},hagi:{$:0},hikari:{$:0},hofu:{$:0},iwakuni:{$:0},kudamatsu:{$:0},mitou:{$:0},nagato:{$:0},oshima:{$:0},shimonoseki:{$:0},shunan:{$:0},tabuse:{$:0},tokuyama:{$:0},toyota:{$:0},ube:{$:0},yuu:{$:0}},yamanashi:{$:0,chuo:{$:0},doshi:{$:0},fuefuki:{$:0},fujikawa:{$:0},fujikawaguchiko:{$:0},fujiyoshida:{$:0},hayakawa:{$:0},hokuto:{$:0},ichikawamisato:{$:0},kai:{$:0},kofu:{$:0},koshu:{$:0},kosuge:{$:0},"minami-alps":{$:0},minobu:{$:0},nakamichi:{$:0},nanbu:{$:0},narusawa:{$:0},nirasaki:{$:0},nishikatsura:{$:0},oshino:{$:0},otsuki:{$:0},showa:{$:0},tabayama:{$:0},tsuru:{$:0},uenohara:{$:0},yamanakako:{$:0},yamanashi:{$:0}},"xn--4pvxs":{$:0},"xn--vgu402c":{$:0},"xn--c3s14m":{$:0},"xn--f6qx53a":{$:0},"xn--8pvr4u":{$:0},"xn--uist22h":{$:0},"xn--djrs72d6uy":{$:0},"xn--mkru45i":{$:0},"xn--0trq7p7nn":{$:0},"xn--8ltr62k":{$:0},"xn--2m4a15e":{$:0},"xn--efvn9s":{$:0},"xn--32vp30h":{$:0},"xn--4it797k":{$:0},"xn--1lqs71d":{$:0},"xn--5rtp49c":{$:0},"xn--5js045d":{$:0},"xn--ehqz56n":{$:0},"xn--1lqs03n":{$:0},"xn--qqqt11m":{$:0},"xn--kbrq7o":{$:0},"xn--pssu33l":{$:0},"xn--ntsq17g":{$:0},"xn--uisz3g":{$:0},"xn--6btw5a":{$:0},"xn--1ctwo":{$:0},"xn--6orx2r":{$:0},"xn--rht61e":{$:0},"xn--rht27z":{$:0},"xn--djty4k":{$:0},"xn--nit225k":{$:0},"xn--rht3d":{$:0},"xn--klty5x":{$:0},"xn--kltx9a":{$:0},"xn--kltp7d":{$:0},"xn--uuwu58a":{$:0},"xn--zbx025d":{$:0},"xn--ntso0iqx3a":{$:0},"xn--elqq16h":{$:0},"xn--4it168d":{$:0},"xn--klt787d":{$:0},"xn--rny31h":{$:0},"xn--7t0a264c":{$:0},"xn--5rtq34k":{$:0},"xn--k7yn95e":{$:0},"xn--tor131o":{$:0},"xn--d5qv7z876c":{$:0},kawasaki:{"*":{$:0}},kitakyushu:{"*":{$:0}},kobe:{"*":{$:0}},nagoya:{"*":{$:0}},sapporo:{"*":{$:0}},sendai:{"*":{$:0}},yokohama:{"*":{$:0}},blogspot:{$:0}},ke:{$:0,ac:{$:0},co:{$:0,blogspot:{$:0}},go:{$:0},info:{$:0},me:{$:0},mobi:{$:0},ne:{$:0},or:{$:0},sc:{$:0}},kg:{$:0,org:{$:0},net:{$:0},com:{$:0},edu:{$:0},gov:{$:0},mil:{$:0}},kh:{"*":{$:0}},ki:{$:0,edu:{$:0},biz:{$:0},net:{$:0},org:{$:0},gov:{$:0},info:{$:0},com:{$:0}},km:{$:0,org:{$:0},nom:{$:0},gov:{$:0},prd:{$:0},tm:{$:0},edu:{$:0},mil:{$:0},ass:{$:0},com:{$:0},coop:{$:0},asso:{$:0},presse:{$:0},medecin:{$:0},notaires:{$:0},pharmaciens:{$:0},veterinaire:{$:0},gouv:{$:0}},kn:{$:0,net:{$:0},org:{$:0},edu:{$:0},gov:{$:0}},kp:{$:0,com:{$:0},edu:{$:0},gov:{$:0},org:{$:0},rep:{$:0},tra:{$:0}},kr:{$:0,ac:{$:0},co:{$:0},es:{$:0},go:{$:0},hs:{$:0},kg:{$:0},mil:{$:0},ms:{$:0},ne:{$:0},or:{$:0},pe:{$:0},re:{$:0},sc:{$:0},busan:{$:0},chungbuk:{$:0},chungnam:{$:0},daegu:{$:0},daejeon:{$:0},gangwon:{$:0},gwangju:{$:0},gyeongbuk:{$:0},gyeonggi:{$:0},gyeongnam:{$:0},incheon:{$:0},jeju:{$:0},jeonbuk:{$:0},jeonnam:{$:0},seoul:{$:0},ulsan:{$:0},blogspot:{$:0}},kw:{"*":{$:0}},ky:{$:0,edu:{$:0},gov:{$:0},com:{$:0},org:{$:0},net:{$:0}},kz:{$:0,org:{$:0},edu:{$:0},net:{$:0},gov:{$:0},mil:{$:0},com:{$:0},nym:{$:0}},la:{$:0,int:{$:0},net:{$:0},info:{$:0},edu:{$:0},gov:{$:0},per:{$:0},com:{$:0},org:{$:0},bnr:{$:0},c:{$:0},nym:{$:0}},lb:{$:0,com:{$:0},edu:{$:0},gov:{$:0},net:{$:0},org:{$:0}},lc:{$:0,com:{$:0},net:{$:0},co:{$:0},org:{$:0},edu:{$:0},gov:{$:0},oy:{$:0}},li:{$:0,blogspot:{$:0},nom:{$:0},nym:{$:0}},lk:{$:0,gov:{$:0},sch:{$:0},net:{$:0},int:{$:0},com:{$:0},org:{$:0},edu:{$:0},ngo:{$:0},soc:{$:0},web:{$:0},ltd:{$:0},assn:{$:0},grp:{$:0},hotel:{$:0},ac:{$:0}},lr:{$:0,com:{$:0},edu:{$:0},gov:{$:0},org:{$:0},net:{$:0}},ls:{$:0,co:{$:0},org:{$:0}},lt:{$:0,gov:{$:0},blogspot:{$:0},nym:{$:0}},lu:{$:0,blogspot:{$:0},nym:{$:0}},lv:{$:0,com:{$:0},edu:{$:0},gov:{$:0},org:{$:0},mil:{$:0},id:{$:0},net:{$:0},asn:{$:0},conf:{$:0}},ly:{$:0,com:{$:0},net:{$:0},gov:{$:0},plc:{$:0},edu:{$:0},sch:{$:0},med:{$:0},org:{$:0},id:{$:0}},ma:{$:0,co:{$:0},net:{$:0},gov:{$:0},org:{$:0},ac:{$:0},press:{$:0}},mc:{$:0,tm:{$:0},asso:{$:0}},md:{$:0,blogspot:{$:0}},me:{$:0,co:{$:0},net:{$:0},org:{$:0},edu:{$:0},ac:{$:0},gov:{$:0},its:{$:0},priv:{$:0},c66:{$:0},daplie:{$:0,localhost:{$:0}},filegear:{$:0},brasilia:{$:0},ddns:{$:0},dnsfor:{$:0},hopto:{$:0},loginto:{$:0},noip:{$:0},webhop:{$:0},nym:{$:0},diskstation:{$:0},dscloud:{$:0},i234:{$:0},myds:{$:0},synology:{$:0},wedeploy:{$:0},yombo:{$:0}},mg:{$:0,org:{$:0},nom:{$:0},gov:{$:0},prd:{$:0},tm:{$:0},edu:{$:0},mil:{$:0},com:{$:0},co:{$:0}},mh:{$:0},mil:{$:0},mk:{$:0,com:{$:0},org:{$:0},net:{$:0},edu:{$:0},gov:{$:0},inf:{$:0},name:{$:0},blogspot:{$:0},nom:{$:0}},ml:{$:0,com:{$:0},edu:{$:0},gouv:{$:0},gov:{$:0},net:{$:0},org:{$:0},presse:{$:0}},mm:{"*":{$:0}},mn:{$:0,gov:{$:0},edu:{$:0},org:{$:0},nyc:{$:0}},mo:{$:0,com:{$:0},net:{$:0},org:{$:0},edu:{$:0},gov:{$:0}},mobi:{$:0,dscloud:{$:0}},mp:{$:0},mq:{$:0},mr:{$:0,gov:{$:0},blogspot:{$:0}},ms:{$:0,com:{$:0},edu:{$:0},gov:{$:0},net:{$:0},org:{$:0}},mt:{$:0,com:{$:0,blogspot:{$:0}},edu:{$:0},net:{$:0},org:{$:0}},mu:{$:0,com:{$:0},net:{$:0},org:{$:0},gov:{$:0},ac:{$:0},co:{$:0},or:{$:0}},museum:{$:0,academy:{$:0},agriculture:{$:0},air:{$:0},airguard:{$:0},alabama:{$:0},alaska:{$:0},amber:{$:0},ambulance:{$:0},american:{$:0},americana:{$:0},americanantiques:{$:0},americanart:{$:0},amsterdam:{$:0},and:{$:0},annefrank:{$:0},anthro:{$:0},anthropology:{$:0},antiques:{$:0},aquarium:{$:0},arboretum:{$:0},archaeological:{$:0},archaeology:{$:0},architecture:{$:0},art:{$:0},artanddesign:{$:0},artcenter:{$:0},artdeco:{$:0},arteducation:{$:0},artgallery:{$:0},arts:{$:0},artsandcrafts:{$:0},asmatart:{$:0},assassination:{$:0},assisi:{$:0},association:{$:0},astronomy:{$:0},atlanta:{$:0},austin:{$:0},australia:{$:0},automotive:{$:0},aviation:{$:0},axis:{$:0},badajoz:{$:0},baghdad:{$:0},bahn:{$:0},bale:{$:0},baltimore:{$:0},barcelona:{$:0},baseball:{$:0},basel:{$:0},baths:{$:0},bauern:{$:0},beauxarts:{$:0},beeldengeluid:{$:0},bellevue:{$:0},bergbau:{$:0},berkeley:{$:0},berlin:{$:0},bern:{$:0},bible:{$:0},bilbao:{$:0},bill:{$:0},birdart:{$:0},birthplace:{$:0},bonn:{$:0},boston:{$:0},botanical:{$:0},botanicalgarden:{$:0},botanicgarden:{$:0},botany:{$:0},brandywinevalley:{$:0},brasil:{$:0},bristol:{$:0},british:{$:0},britishcolumbia:{$:0},broadcast:{$:0},brunel:{$:0},brussel:{$:0},brussels:{$:0},bruxelles:{$:0},building:{$:0},burghof:{$:0},bus:{$:0},bushey:{$:0},cadaques:{$:0},california:{$:0},cambridge:{$:0},can:{$:0},canada:{$:0},capebreton:{$:0},carrier:{$:0},cartoonart:{$:0},casadelamoneda:{$:0},castle:{$:0},castres:{$:0},celtic:{$:0},center:{$:0},chattanooga:{$:0},cheltenham:{$:0},chesapeakebay:{$:0},chicago:{$:0},children:{$:0},childrens:{$:0},childrensgarden:{$:0},chiropractic:{$:0},chocolate:{$:0},christiansburg:{$:0},cincinnati:{$:0},cinema:{$:0},circus:{$:0},civilisation:{$:0},civilization:{$:0},civilwar:{$:0},clinton:{$:0},clock:{$:0},coal:{$:0},coastaldefence:{$:0},cody:{$:0},coldwar:{$:0},collection:{$:0},colonialwilliamsburg:{$:0},coloradoplateau:{$:0},columbia:{$:0},columbus:{$:0},communication:{$:0},communications:{$:0},community:{$:0},computer:{$:0},computerhistory:{$:0},"xn--comunicaes-v6a2o":{$:0},contemporary:{$:0},contemporaryart:{$:0},convent:{$:0},copenhagen:{$:0},corporation:{$:0},"xn--correios-e-telecomunicaes-ghc29a":{$:0},corvette:{$:0},costume:{$:0},countryestate:{$:0},county:{$:0},crafts:{$:0},cranbrook:{$:0},creation:{$:0},cultural:{$:0},culturalcenter:{$:0},culture:{$:0},cyber:{$:0},cymru:{$:0},dali:{$:0},dallas:{$:0},database:{$:0},ddr:{$:0},decorativearts:{$:0},delaware:{$:0},delmenhorst:{$:0},denmark:{$:0},depot:{$:0},design:{$:0},detroit:{$:0},dinosaur:{$:0},discovery:{$:0},dolls:{$:0},donostia:{$:0},durham:{$:0},eastafrica:{$:0},eastcoast:{$:0},education:{$:0},educational:{$:0},egyptian:{$:0},eisenbahn:{$:0},elburg:{$:0},elvendrell:{$:0},embroidery:{$:0},encyclopedic:{$:0},england:{$:0},entomology:{$:0},environment:{$:0},environmentalconservation:{$:0},epilepsy:{$:0},essex:{$:0},estate:{$:0},ethnology:{$:0},exeter:{$:0},exhibition:{$:0},family:{$:0},farm:{$:0},farmequipment:{$:0},farmers:{$:0},farmstead:{$:0},field:{$:0},figueres:{$:0},filatelia:{$:0},film:{$:0},fineart:{$:0},finearts:{$:0},finland:{$:0},flanders:{$:0},florida:{$:0},force:{$:0},fortmissoula:{$:0},fortworth:{$:0},foundation:{$:0},francaise:{$:0},frankfurt:{$:0},franziskaner:{$:0},freemasonry:{$:0},freiburg:{$:0},fribourg:{$:0},frog:{$:0},fundacio:{$:0},furniture:{$:0},gallery:{$:0},garden:{$:0},gateway:{$:0},geelvinck:{$:0},gemological:{$:0},geology:{$:0},georgia:{$:0},giessen:{$:0},glas:{$:0},glass:{$:0},gorge:{$:0},grandrapids:{$:0},graz:{$:0},guernsey:{$:0},halloffame:{$:0},hamburg:{$:0},handson:{$:0},harvestcelebration:{$:0},hawaii:{$:0},health:{$:0},heimatunduhren:{$:0},hellas:{$:0},helsinki:{$:0},hembygdsforbund:{$:0},heritage:{$:0},histoire:{$:0},historical:{$:0},historicalsociety:{$:0},historichouses:{$:0},historisch:{$:0},historisches:{$:0},history:{$:0},historyofscience:{$:0},horology:{$:0},house:{$:0},humanities:{$:0},illustration:{$:0},imageandsound:{$:0},indian:{$:0},indiana:{$:0},indianapolis:{$:0},indianmarket:{$:0},intelligence:{$:0},interactive:{$:0},iraq:{$:0},iron:{$:0},isleofman:{$:0},jamison:{$:0},jefferson:{$:0},jerusalem:{$:0},jewelry:{$:0},jewish:{$:0},jewishart:{$:0},jfk:{$:0},journalism:{$:0},judaica:{$:0},judygarland:{$:0},juedisches:{$:0},juif:{$:0},karate:{$:0},karikatur:{$:0},kids:{$:0},koebenhavn:{$:0},koeln:{$:0},kunst:{$:0},kunstsammlung:{$:0},kunstunddesign:{$:0},labor:{$:0},labour:{$:0},lajolla:{$:0},lancashire:{$:0},landes:{$:0},lans:{$:0},"xn--lns-qla":{$:0},larsson:{$:0},lewismiller:{$:0},lincoln:{$:0},linz:{$:0},living:{$:0},livinghistory:{$:0},localhistory:{$:0},london:{$:0},losangeles:{$:0},louvre:{$:0},loyalist:{$:0},lucerne:{$:0},luxembourg:{$:0},luzern:{$:0},mad:{$:0},madrid:{$:0},mallorca:{$:0},manchester:{$:0},mansion:{$:0},mansions:{$:0},manx:{$:0},marburg:{$:0},maritime:{$:0},maritimo:{$:0},maryland:{$:0},marylhurst:{$:0},media:{$:0},medical:{$:0},medizinhistorisches:{$:0},meeres:{$:0},memorial:{$:0},mesaverde:{$:0},michigan:{$:0},midatlantic:{$:0},military:{$:0},mill:{$:0},miners:{$:0},mining:{$:0},minnesota:{$:0},missile:{$:0},missoula:{$:0},modern:{$:0},moma:{$:0},money:{$:0},monmouth:{$:0},monticello:{$:0},montreal:{$:0},moscow:{$:0},motorcycle:{$:0},muenchen:{$:0},muenster:{$:0},mulhouse:{$:0},muncie:{$:0},museet:{$:0},museumcenter:{$:0},museumvereniging:{$:0},music:{$:0},national:{$:0},nationalfirearms:{$:0},nationalheritage:{$:0},nativeamerican:{$:0},naturalhistory:{$:0},naturalhistorymuseum:{$:0},naturalsciences:{$:0},nature:{$:0},naturhistorisches:{$:0},natuurwetenschappen:{$:0},naumburg:{$:0},naval:{$:0},nebraska:{$:0},neues:{$:0},newhampshire:{$:0},newjersey:{$:0},newmexico:{$:0},newport:{$:0},newspaper:{$:0},newyork:{$:0},niepce:{$:0},norfolk:{$:0},north:{$:0},nrw:{$:0},nuernberg:{$:0},nuremberg:{$:0},nyc:{$:0},nyny:{$:0},oceanographic:{$:0},oceanographique:{$:0},omaha:{$:0},online:{$:0},ontario:{$:0},openair:{$:0},oregon:{$:0},oregontrail:{$:0},otago:{$:0},oxford:{$:0},pacific:{$:0},paderborn:{$:0},palace:{$:0},paleo:{$:0},palmsprings:{$:0},panama:{$:0},paris:{$:0},pasadena:{$:0},pharmacy:{$:0},philadelphia:{$:0},philadelphiaarea:{$:0},philately:{$:0},phoenix:{$:0},photography:{$:0},pilots:{$:0},pittsburgh:{$:0},planetarium:{$:0},plantation:{$:0},plants:{$:0},plaza:{$:0},portal:{$:0},portland:{$:0},portlligat:{$:0},"posts-and-telecommunications":{$:0},preservation:{$:0},presidio:{$:0},press:{$:0},project:{$:0},public:{$:0},pubol:{$:0},quebec:{$:0},railroad:{$:0},railway:{$:0},research:{$:0},resistance:{$:0},riodejaneiro:{$:0},rochester:{$:0},rockart:{$:0},roma:{$:0},russia:{$:0},saintlouis:{$:0},salem:{$:0},salvadordali:{$:0},salzburg:{$:0},sandiego:{$:0},sanfrancisco:{$:0},santabarbara:{$:0},santacruz:{$:0},santafe:{$:0},saskatchewan:{$:0},satx:{$:0},savannahga:{$:0},schlesisches:{$:0},schoenbrunn:{$:0},schokoladen:{$:0},school:{$:0},schweiz:{$:0},science:{$:0},scienceandhistory:{$:0},scienceandindustry:{$:0},sciencecenter:{$:0},sciencecenters:{$:0},"science-fiction":{$:0},sciencehistory:{$:0},sciences:{$:0},sciencesnaturelles:{$:0},scotland:{$:0},seaport:{$:0},settlement:{$:0},settlers:{$:0},shell:{$:0},sherbrooke:{$:0},sibenik:{$:0},silk:{$:0},ski:{$:0},skole:{$:0},society:{$:0},sologne:{$:0},soundandvision:{$:0},southcarolina:{$:0},southwest:{$:0},space:{$:0},spy:{$:0},square:{$:0},stadt:{$:0},stalbans:{$:0},starnberg:{$:0},state:{$:0},stateofdelaware:{$:0},station:{$:0},steam:{$:0},steiermark:{$:0},stjohn:{$:0},stockholm:{$:0},stpetersburg:{$:0},stuttgart:{$:0},suisse:{$:0},surgeonshall:{$:0},surrey:{$:0},svizzera:{$:0},sweden:{$:0},sydney:{$:0},tank:{$:0},tcm:{$:0},technology:{$:0},telekommunikation:{$:0},television:{$:0},texas:{$:0},textile:{$:0},theater:{$:0},time:{$:0},timekeeping:{$:0},topology:{$:0},torino:{$:0},touch:{$:0},town:{$:0},transport:{$:0},tree:{$:0},trolley:{$:0},trust:{$:0},trustee:{$:0},uhren:{$:0},ulm:{$:0},undersea:{$:0},university:{$:0},usa:{$:0},usantiques:{$:0},usarts:{$:0},uscountryestate:{$:0},usculture:{$:0},usdecorativearts:{$:0},usgarden:{$:0},ushistory:{$:0},ushuaia:{$:0},uslivinghistory:{$:0},utah:{$:0},uvic:{$:0},valley:{$:0},vantaa:{$:0},versailles:{$:0},viking:{$:0},village:{$:0},virginia:{$:0},virtual:{$:0},virtuel:{$:0},vlaanderen:{$:0},volkenkunde:{$:0},wales:{$:0},wallonie:{$:0},war:{$:0},washingtondc:{$:0},watchandclock:{$:0},"watch-and-clock":{$:0},western:{$:0},westfalen:{$:0},whaling:{$:0},wildlife:{$:0},williamsburg:{$:0},windmill:{$:0},workshop:{$:0},york:{$:0},yorkshire:{$:0},yosemite:{$:0},youth:{$:0},zoological:{$:0},zoology:{$:0},"xn--9dbhblg6di":{$:0},"xn--h1aegh":{$:0}},mv:{$:0,aero:{$:0},biz:{$:0},com:{$:0},coop:{$:0},edu:{$:0},gov:{$:0},info:{$:0},int:{$:0},mil:{$:0},museum:{$:0},name:{$:0},net:{$:0},org:{$:0},pro:{$:0}},mw:{$:0,ac:{$:0},biz:{$:0},co:{$:0},com:{$:0},coop:{$:0},edu:{$:0},gov:{$:0},int:{$:0},museum:{$:0},net:{$:0},org:{$:0}},mx:{$:0,com:{$:0},org:{$:0},gob:{$:0},edu:{$:0},net:{$:0},blogspot:{$:0},nym:{$:0}},my:{$:0,com:{$:0},net:{$:0},org:{$:0},gov:{$:0},edu:{$:0},mil:{$:0},name:{$:0},blogspot:{$:0}},mz:{$:0,ac:{$:0},adv:{$:0},co:{$:0},edu:{$:0},gov:{$:0},mil:{$:0},net:{$:0},org:{$:0}},na:{$:0,info:{$:0},pro:{$:0},name:{$:0},school:{$:0},or:{$:0},dr:{$:0},us:{$:0},mx:{$:0},ca:{$:0},in:{$:0},cc:{$:0},tv:{$:0},ws:{$:0},mobi:{$:0},co:{$:0},com:{$:0},org:{$:0}},name:{$:0,her:{forgot:{$:0}},his:{forgot:{$:0}}},nc:{$:0,asso:{$:0},nom:{$:0}},ne:{$:0},net:{$:0,alwaysdata:{$:0},cloudfront:{$:0},t3l3p0rt:{$:0},myfritz:{$:0},boomla:{$:0},bplaced:{$:0},square7:{$:0},gb:{$:0},hu:{$:0},jp:{$:0},se:{$:0},uk:{$:0},in:{$:0},cloudaccess:{$:0},"cdn77-ssl":{$:0},cdn77:{r:{$:0}},"feste-ip":{$:0},"knx-server":{$:0},"static-access":{$:0},cryptonomic:{"*":{$:0}},debian:{$:0},"at-band-camp":{$:0},blogdns:{$:0},"broke-it":{$:0},buyshouses:{$:0},dnsalias:{$:0},dnsdojo:{$:0},"does-it":{$:0},dontexist:{$:0},dynalias:{$:0},dynathome:{$:0},endofinternet:{$:0},"from-az":{$:0},"from-co":{$:0},"from-la":{$:0},"from-ny":{$:0},"gets-it":{$:0},"ham-radio-op":{$:0},homeftp:{$:0},homeip:{$:0},homelinux:{$:0},homeunix:{$:0},"in-the-band":{$:0},"is-a-chef":{$:0},"is-a-geek":{$:0},"isa-geek":{$:0},"kicks-ass":{$:0},"office-on-the":{$:0},podzone:{$:0},"scrapper-site":{$:0},selfip:{$:0},"sells-it":{$:0},servebbs:{$:0},serveftp:{$:0},thruhere:{$:0},webhop:{$:0},definima:{$:0},casacam:{$:0},dynu:{$:0},dynv6:{$:0},twmail:{$:0},ru:{$:0},channelsdvr:{$:0},fastlylb:{$:0,map:{$:0}},fastly:{freetls:{$:0},map:{$:0},prod:{a:{$:0},global:{$:0}},ssl:{a:{$:0},b:{$:0},global:{$:0}}},flynnhosting:{$:0},cloudfunctions:{$:0},moonscale:{$:0},ipifony:{$:0},barsy:{$:0},azurewebsites:{$:0},"azure-mobile":{$:0},cloudapp:{$:0},"eating-organic":{$:0},mydissent:{$:0},myeffect:{$:0},mymediapc:{$:0},mypsx:{$:0},mysecuritycamera:{$:0},nhlfan:{$:0},"no-ip":{$:0},pgafan:{$:0},privatizehealthinsurance:{$:0},bounceme:{$:0},ddns:{$:0},redirectme:{$:0},serveblog:{$:0},serveminecraft:{$:0},sytes:{$:0},rackmaze:{$:0},"firewall-gateway":{$:0},dsmynas:{$:0},familyds:{$:0},za:{$:0}},nf:{$:0,com:{$:0},net:{$:0},per:{$:0},rec:{$:0},web:{$:0},arts:{$:0},firm:{$:0},info:{$:0},other:{$:0},store:{$:0}},ng:{$:0,com:{$:0,blogspot:{$:0}},edu:{$:0},gov:{$:0},i:{$:0},mil:{$:0},mobi:{$:0},name:{$:0},net:{$:0},org:{$:0},sch:{$:0}},ni:{$:0,ac:{$:0},biz:{$:0},co:{$:0},com:{$:0},edu:{$:0},gob:{$:0},in:{$:0},info:{$:0},int:{$:0},mil:{$:0},net:{$:0},nom:{$:0},org:{$:0},web:{$:0}},nl:{$:0,bv:{$:0},virtueeldomein:{$:0},co:{$:0},"hosting-cluster":{$:0},blogspot:{$:0},transurl:{"*":{$:0}},cistron:{$:0},demon:{$:0}},no:{$:0,fhs:{$:0},vgs:{$:0},fylkesbibl:{$:0},folkebibl:{$:0},museum:{$:0},idrett:{$:0},priv:{$:0},mil:{$:0},stat:{$:0},dep:{$:0},kommune:{$:0},herad:{$:0},aa:{$:0,gs:{$:0}},ah:{$:0,gs:{$:0}},bu:{$:0,gs:{$:0}},fm:{$:0,gs:{$:0}},hl:{$:0,gs:{$:0}},hm:{$:0,gs:{$:0}},"jan-mayen":{$:0,gs:{$:0}},mr:{$:0,gs:{$:0}},nl:{$:0,gs:{$:0}},nt:{$:0,gs:{$:0}},of:{$:0,gs:{$:0}},ol:{$:0,gs:{$:0}},oslo:{$:0,gs:{$:0}},rl:{$:0,gs:{$:0}},sf:{$:0,gs:{$:0}},st:{$:0,gs:{$:0}},svalbard:{$:0,gs:{$:0}},tm:{$:0,gs:{$:0}},tr:{$:0,gs:{$:0}},va:{$:0,gs:{$:0}},vf:{$:0,gs:{$:0}},akrehamn:{$:0},"xn--krehamn-dxa":{$:0},algard:{$:0},"xn--lgrd-poac":{$:0},arna:{$:0},brumunddal:{$:0},bryne:{$:0},bronnoysund:{$:0},"xn--brnnysund-m8ac":{$:0},drobak:{$:0},"xn--drbak-wua":{$:0},egersund:{$:0},fetsund:{$:0},floro:{$:0},"xn--flor-jra":{$:0},fredrikstad:{$:0},hokksund:{$:0},honefoss:{$:0},"xn--hnefoss-q1a":{$:0},jessheim:{$:0},jorpeland:{$:0},"xn--jrpeland-54a":{$:0},kirkenes:{$:0},kopervik:{$:0},krokstadelva:{$:0},langevag:{$:0},"xn--langevg-jxa":{$:0},leirvik:{$:0},mjondalen:{$:0},"xn--mjndalen-64a":{$:0},"mo-i-rana":{$:0},mosjoen:{$:0},"xn--mosjen-eya":{$:0},nesoddtangen:{$:0},orkanger:{$:0},osoyro:{$:0},"xn--osyro-wua":{$:0},raholt:{$:0},"xn--rholt-mra":{$:0},sandnessjoen:{$:0},"xn--sandnessjen-ogb":{$:0},skedsmokorset:{$:0},slattum:{$:0},spjelkavik:{$:0},stathelle:{$:0},stavern:{$:0},stjordalshalsen:{$:0},"xn--stjrdalshalsen-sqb":{$:0},tananger:{$:0},tranby:{$:0},vossevangen:{$:0},afjord:{$:0},"xn--fjord-lra":{$:0},agdenes:{$:0},al:{$:0},"xn--l-1fa":{$:0},alesund:{$:0},"xn--lesund-hua":{$:0},alstahaug:{$:0},alta:{$:0},"xn--lt-liac":{$:0},alaheadju:{$:0},"xn--laheadju-7ya":{$:0},alvdal:{$:0},amli:{$:0},"xn--mli-tla":{$:0},amot:{$:0},"xn--mot-tla":{$:0},andebu:{$:0},andoy:{$:0},"xn--andy-ira":{$:0},andasuolo:{$:0},ardal:{$:0},"xn--rdal-poa":{$:0},aremark:{$:0},arendal:{$:0},"xn--s-1fa":{$:0},aseral:{$:0},"xn--seral-lra":{$:0},asker:{$:0},askim:{$:0},askvoll:{$:0},askoy:{$:0},"xn--asky-ira":{$:0},asnes:{$:0},"xn--snes-poa":{$:0},audnedaln:{$:0},aukra:{$:0},aure:{$:0},aurland:{$:0},"aurskog-holand":{$:0},"xn--aurskog-hland-jnb":{$:0},austevoll:{$:0},austrheim:{$:0},averoy:{$:0},"xn--avery-yua":{$:0},balestrand:{$:0},ballangen:{$:0},balat:{$:0},"xn--blt-elab":{$:0},balsfjord:{$:0},bahccavuotna:{$:0},"xn--bhccavuotna-k7a":{$:0},bamble:{$:0},bardu:{$:0},beardu:{$:0},beiarn:{$:0},bajddar:{$:0},"xn--bjddar-pta":{$:0},baidar:{$:0},"xn--bidr-5nac":{$:0},berg:{$:0},bergen:{$:0},berlevag:{$:0},"xn--berlevg-jxa":{$:0},bearalvahki:{$:0},"xn--bearalvhki-y4a":{$:0},bindal:{$:0},birkenes:{$:0},bjarkoy:{$:0},"xn--bjarky-fya":{$:0},bjerkreim:{$:0},bjugn:{$:0},bodo:{$:0},"xn--bod-2na":{$:0},badaddja:{$:0},"xn--bdddj-mrabd":{$:0},budejju:{$:0},bokn:{$:0},bremanger:{$:0},bronnoy:{$:0},"xn--brnny-wuac":{$:0},bygland:{$:0},bykle:{$:0},barum:{$:0},"xn--brum-voa":{$:0},telemark:{bo:{$:0},"xn--b-5ga":{$:0}},nordland:{bo:{$:0},"xn--b-5ga":{$:0},heroy:{$:0},"xn--hery-ira":{$:0}},bievat:{$:0},"xn--bievt-0qa":{$:0},bomlo:{$:0},"xn--bmlo-gra":{$:0},batsfjord:{$:0},"xn--btsfjord-9za":{$:0},bahcavuotna:{$:0},"xn--bhcavuotna-s4a":{$:0},dovre:{$:0},drammen:{$:0},drangedal:{$:0},dyroy:{$:0},"xn--dyry-ira":{$:0},donna:{$:0},"xn--dnna-gra":{$:0},eid:{$:0},eidfjord:{$:0},eidsberg:{$:0},eidskog:{$:0},eidsvoll:{$:0},eigersund:{$:0},elverum:{$:0},enebakk:{$:0},engerdal:{$:0},etne:{$:0},etnedal:{$:0},evenes:{$:0},evenassi:{$:0},"xn--eveni-0qa01ga":{$:0},"evje-og-hornnes":{$:0},farsund:{$:0},fauske:{$:0},fuossko:{$:0},fuoisku:{$:0},fedje:{$:0},fet:{$:0},finnoy:{$:0},"xn--finny-yua":{$:0},fitjar:{$:0},fjaler:{$:0},fjell:{$:0},flakstad:{$:0},flatanger:{$:0},flekkefjord:{$:0},flesberg:{$:0},flora:{$:0},fla:{$:0},"xn--fl-zia":{$:0},folldal:{$:0},forsand:{$:0},fosnes:{$:0},frei:{$:0},frogn:{$:0},froland:{$:0},frosta:{$:0},frana:{$:0},"xn--frna-woa":{$:0},froya:{$:0},"xn--frya-hra":{$:0},fusa:{$:0},fyresdal:{$:0},forde:{$:0},"xn--frde-gra":{$:0},gamvik:{$:0},gangaviika:{$:0},"xn--ggaviika-8ya47h":{$:0},gaular:{$:0},gausdal:{$:0},gildeskal:{$:0},"xn--gildeskl-g0a":{$:0},giske:{$:0},gjemnes:{$:0},gjerdrum:{$:0},gjerstad:{$:0},gjesdal:{$:0},gjovik:{$:0},"xn--gjvik-wua":{$:0},gloppen:{$:0},gol:{$:0},gran:{$:0},grane:{$:0},granvin:{$:0},gratangen:{$:0},grimstad:{$:0},grong:{$:0},kraanghke:{$:0},"xn--kranghke-b0a":{$:0},grue:{$:0},gulen:{$:0},hadsel:{$:0},halden:{$:0},halsa:{$:0},hamar:{$:0},hamaroy:{$:0},habmer:{$:0},"xn--hbmer-xqa":{$:0},hapmir:{$:0},"xn--hpmir-xqa":{$:0},hammerfest:{$:0},hammarfeasta:{$:0},"xn--hmmrfeasta-s4ac":{$:0},haram:{$:0},hareid:{$:0},harstad:{$:0},hasvik:{$:0},aknoluokta:{$:0},"xn--koluokta-7ya57h":{$:0},hattfjelldal:{$:0},aarborte:{$:0},haugesund:{$:0},hemne:{$:0},hemnes:{$:0},hemsedal:{$:0},"more-og-romsdal":{heroy:{$:0},sande:{$:0}},"xn--mre-og-romsdal-qqb":{"xn--hery-ira":{$:0},sande:{$:0}},hitra:{$:0},hjartdal:{$:0},hjelmeland:{$:0},hobol:{$:0},"xn--hobl-ira":{$:0},hof:{$:0},hol:{$:0},hole:{$:0},holmestrand:{$:0},holtalen:{$:0},"xn--holtlen-hxa":{$:0},hornindal:{$:0},horten:{$:0},hurdal:{$:0},hurum:{$:0},hvaler:{$:0},hyllestad:{$:0},hagebostad:{$:0},"xn--hgebostad-g3a":{$:0},hoyanger:{$:0},"xn--hyanger-q1a":{$:0},hoylandet:{$:0},"xn--hylandet-54a":{$:0},ha:{$:0},"xn--h-2fa":{$:0},ibestad:{$:0},inderoy:{$:0},"xn--indery-fya":{$:0},iveland:{$:0},jevnaker:{$:0},jondal:{$:0},jolster:{$:0},"xn--jlster-bya":{$:0},karasjok:{$:0},karasjohka:{$:0},"xn--krjohka-hwab49j":{$:0},karlsoy:{$:0},galsa:{$:0},"xn--gls-elac":{$:0},karmoy:{$:0},"xn--karmy-yua":{$:0},kautokeino:{$:0},guovdageaidnu:{$:0},klepp:{$:0},klabu:{$:0},"xn--klbu-woa":{$:0},kongsberg:{$:0},kongsvinger:{$:0},kragero:{$:0},"xn--krager-gya":{$:0},kristiansand:{$:0},kristiansund:{$:0},krodsherad:{$:0},"xn--krdsherad-m8a":{$:0},kvalsund:{$:0},rahkkeravju:{$:0},"xn--rhkkervju-01af":{$:0},kvam:{$:0},kvinesdal:{$:0},kvinnherad:{$:0},kviteseid:{$:0},kvitsoy:{$:0},"xn--kvitsy-fya":{$:0},kvafjord:{$:0},"xn--kvfjord-nxa":{$:0},giehtavuoatna:{$:0},kvanangen:{$:0},"xn--kvnangen-k0a":{$:0},navuotna:{$:0},"xn--nvuotna-hwa":{$:0},kafjord:{$:0},"xn--kfjord-iua":{$:0},gaivuotna:{$:0},"xn--givuotna-8ya":{$:0},larvik:{$:0},lavangen:{$:0},lavagis:{$:0},loabat:{$:0},"xn--loabt-0qa":{$:0},lebesby:{$:0},davvesiida:{$:0},leikanger:{$:0},leirfjord:{$:0},leka:{$:0},leksvik:{$:0},lenvik:{$:0},leangaviika:{$:0},"xn--leagaviika-52b":{$:0},lesja:{$:0},levanger:{$:0},lier:{$:0},lierne:{$:0},lillehammer:{$:0},lillesand:{$:0},lindesnes:{$:0},lindas:{$:0},"xn--linds-pra":{$:0},lom:{$:0},loppa:{$:0},lahppi:{$:0},"xn--lhppi-xqa":{$:0},lund:{$:0},lunner:{$:0},luroy:{$:0},"xn--lury-ira":{$:0},luster:{$:0},lyngdal:{$:0},lyngen:{$:0},ivgu:{$:0},lardal:{$:0},lerdal:{$:0},"xn--lrdal-sra":{$:0},lodingen:{$:0},"xn--ldingen-q1a":{$:0},lorenskog:{$:0},"xn--lrenskog-54a":{$:0},loten:{$:0},"xn--lten-gra":{$:0},malvik:{$:0},masoy:{$:0},"xn--msy-ula0h":{$:0},muosat:{$:0},"xn--muost-0qa":{$:0},mandal:{$:0},marker:{$:0},marnardal:{$:0},masfjorden:{$:0},meland:{$:0},meldal:{$:0},melhus:{$:0},meloy:{$:0},"xn--mely-ira":{$:0},meraker:{$:0},"xn--merker-kua":{$:0},moareke:{$:0},"xn--moreke-jua":{$:0},midsund:{$:0},"midtre-gauldal":{$:0},modalen:{$:0},modum:{$:0},molde:{$:0},moskenes:{$:0},moss:{$:0},mosvik:{$:0},malselv:{$:0},"xn--mlselv-iua":{$:0},malatvuopmi:{$:0},"xn--mlatvuopmi-s4a":{$:0},namdalseid:{$:0},aejrie:{$:0},namsos:{$:0},namsskogan:{$:0},naamesjevuemie:{$:0},"xn--nmesjevuemie-tcba":{$:0},laakesvuemie:{$:0},nannestad:{$:0},narvik:{$:0},narviika:{$:0},naustdal:{$:0},"nedre-eiker":{$:0},akershus:{nes:{$:0}},buskerud:{nes:{$:0}},nesna:{$:0},nesodden:{$:0},nesseby:{$:0},unjarga:{$:0},"xn--unjrga-rta":{$:0},nesset:{$:0},nissedal:{$:0},nittedal:{$:0},"nord-aurdal":{$:0},"nord-fron":{$:0},"nord-odal":{$:0},norddal:{$:0},nordkapp:{$:0},davvenjarga:{$:0},"xn--davvenjrga-y4a":{$:0},"nordre-land":{$:0},nordreisa:{$:0},raisa:{$:0},"xn--risa-5na":{$:0},"nore-og-uvdal":{$:0},notodden:{$:0},naroy:{$:0},"xn--nry-yla5g":{$:0},notteroy:{$:0},"xn--nttery-byae":{$:0},odda:{$:0},oksnes:{$:0},"xn--ksnes-uua":{$:0},oppdal:{$:0},oppegard:{$:0},"xn--oppegrd-ixa":{$:0},orkdal:{$:0},orland:{$:0},"xn--rland-uua":{$:0},orskog:{$:0},"xn--rskog-uua":{$:0},orsta:{$:0},"xn--rsta-fra":{$:0},hedmark:{os:{$:0},valer:{$:0},"xn--vler-qoa":{$:0}},hordaland:{os:{$:0}},osen:{$:0},osteroy:{$:0},"xn--ostery-fya":{$:0},"ostre-toten":{$:0},"xn--stre-toten-zcb":{$:0},overhalla:{$:0},"ovre-eiker":{$:0},"xn--vre-eiker-k8a":{$:0},oyer:{$:0},"xn--yer-zna":{$:0},oygarden:{$:0},"xn--ygarden-p1a":{$:0},"oystre-slidre":{$:0},"xn--ystre-slidre-ujb":{$:0},porsanger:{$:0},porsangu:{$:0},"xn--porsgu-sta26f":{$:0},porsgrunn:{$:0},radoy:{$:0},"xn--rady-ira":{$:0},rakkestad:{$:0},rana:{$:0},ruovat:{$:0},randaberg:{$:0},rauma:{$:0},rendalen:{$:0},rennebu:{$:0},rennesoy:{$:0},"xn--rennesy-v1a":{$:0},rindal:{$:0},ringebu:{$:0},ringerike:{$:0},ringsaker:{$:0},rissa:{$:0},risor:{$:0},"xn--risr-ira":{$:0},roan:{$:0},rollag:{$:0},rygge:{$:0},ralingen:{$:0},"xn--rlingen-mxa":{$:0},rodoy:{$:0},"xn--rdy-0nab":{$:0},romskog:{$:0},"xn--rmskog-bya":{$:0},roros:{$:0},"xn--rros-gra":{$:0},rost:{$:0},"xn--rst-0na":{$:0},royken:{$:0},"xn--ryken-vua":{$:0},royrvik:{$:0},"xn--ryrvik-bya":{$:0},rade:{$:0},"xn--rde-ula":{$:0},salangen:{$:0},siellak:{$:0},saltdal:{$:0},salat:{$:0},"xn--slt-elab":{$:0},"xn--slat-5na":{$:0},samnanger:{$:0},vestfold:{sande:{$:0}},sandefjord:{$:0},sandnes:{$:0},sandoy:{$:0},"xn--sandy-yua":{$:0},sarpsborg:{$:0},sauda:{$:0},sauherad:{$:0},sel:{$:0},selbu:{$:0},selje:{$:0},seljord:{$:0},sigdal:{$:0},siljan:{$:0},sirdal:{$:0},skaun:{$:0},skedsmo:{$:0},ski:{$:0},skien:{$:0},skiptvet:{$:0},skjervoy:{$:0},"xn--skjervy-v1a":{$:0},skierva:{$:0},"xn--skierv-uta":{$:0},skjak:{$:0},"xn--skjk-soa":{$:0},skodje:{$:0},skanland:{$:0},"xn--sknland-fxa":{$:0},skanit:{$:0},"xn--sknit-yqa":{$:0},smola:{$:0},"xn--smla-hra":{$:0},snillfjord:{$:0},snasa:{$:0},"xn--snsa-roa":{$:0},snoasa:{$:0},snaase:{$:0},"xn--snase-nra":{$:0},sogndal:{$:0},sokndal:{$:0},sola:{$:0},solund:{$:0},songdalen:{$:0},sortland:{$:0},spydeberg:{$:0},stange:{$:0},stavanger:{$:0},steigen:{$:0},steinkjer:{$:0},stjordal:{$:0},"xn--stjrdal-s1a":{$:0},stokke:{$:0},"stor-elvdal":{$:0},stord:{$:0},stordal:{$:0},storfjord:{$:0},omasvuotna:{$:0},strand:{$:0},stranda:{$:0},stryn:{$:0},sula:{$:0},suldal:{$:0},sund:{$:0},sunndal:{$:0},surnadal:{$:0},sveio:{$:0},svelvik:{$:0},sykkylven:{$:0},sogne:{$:0},"xn--sgne-gra":{$:0},somna:{$:0},"xn--smna-gra":{$:0},"sondre-land":{$:0},"xn--sndre-land-0cb":{$:0},"sor-aurdal":{$:0},"xn--sr-aurdal-l8a":{$:0},"sor-fron":{$:0},"xn--sr-fron-q1a":{$:0},"sor-odal":{$:0},"xn--sr-odal-q1a":{$:0},"sor-varanger":{$:0},"xn--sr-varanger-ggb":{$:0},"matta-varjjat":{$:0},"xn--mtta-vrjjat-k7af":{$:0},sorfold:{$:0},"xn--srfold-bya":{$:0},sorreisa:{$:0},"xn--srreisa-q1a":{$:0},sorum:{$:0},"xn--srum-gra":{$:0},tana:{$:0},deatnu:{$:0},time:{$:0},tingvoll:{$:0},tinn:{$:0},tjeldsund:{$:0},dielddanuorri:{$:0},tjome:{$:0},"xn--tjme-hra":{$:0},tokke:{$:0},tolga:{$:0},torsken:{$:0},tranoy:{$:0},"xn--trany-yua":{$:0},tromso:{$:0},"xn--troms-zua":{$:0},tromsa:{$:0},romsa:{$:0},trondheim:{$:0},troandin:{$:0},trysil:{$:0},trana:{$:0},"xn--trna-woa":{$:0},trogstad:{$:0},"xn--trgstad-r1a":{$:0},tvedestrand:{$:0},tydal:{$:0},tynset:{$:0},tysfjord:{$:0},divtasvuodna:{$:0},divttasvuotna:{$:0},tysnes:{$:0},tysvar:{$:0},"xn--tysvr-vra":{$:0},tonsberg:{$:0},"xn--tnsberg-q1a":{$:0},ullensaker:{$:0},ullensvang:{$:0},ulvik:{$:0},utsira:{$:0},vadso:{$:0},"xn--vads-jra":{$:0},cahcesuolo:{$:0},"xn--hcesuolo-7ya35b":{$:0},vaksdal:{$:0},valle:{$:0},vang:{$:0},vanylven:{$:0},vardo:{$:0},"xn--vard-jra":{$:0},varggat:{$:0},"xn--vrggt-xqad":{$:0},vefsn:{$:0},vaapste:{$:0},vega:{$:0},vegarshei:{$:0},"xn--vegrshei-c0a":{$:0},vennesla:{$:0},verdal:{$:0},verran:{$:0},vestby:{$:0},vestnes:{$:0},"vestre-slidre":{$:0},"vestre-toten":{$:0},vestvagoy:{$:0},"xn--vestvgy-ixa6o":{$:0},vevelstad:{$:0},vik:{$:0},vikna:{$:0},vindafjord:{$:0},volda:{$:0},voss:{$:0},varoy:{$:0},"xn--vry-yla5g":{$:0},vagan:{$:0},"xn--vgan-qoa":{$:0},voagat:{$:0},vagsoy:{$:0},"xn--vgsy-qoa0j":{$:0},vaga:{$:0},"xn--vg-yiab":{$:0},ostfold:{valer:{$:0}},"xn--stfold-9xa":{"xn--vler-qoa":{$:0}},co:{$:0},blogspot:{$:0}},np:{"*":{$:0}},nr:{$:0,biz:{$:0},info:{$:0},gov:{$:0},edu:{$:0},org:{$:0},net:{$:0},com:{$:0}},nu:{$:0,merseine:{$:0},mine:{$:0},shacknet:{$:0},nom:{$:0}},nz:{$:0,ac:{$:0},co:{$:0,blogspot:{$:0}},cri:{$:0},geek:{$:0},gen:{$:0},govt:{$:0},health:{$:0},iwi:{$:0},kiwi:{$:0},maori:{$:0},mil:{$:0},"xn--mori-qsa":{$:0},net:{$:0},org:{$:0},parliament:{$:0},school:{$:0},nym:{$:0}},om:{$:0,co:{$:0},com:{$:0},edu:{$:0},gov:{$:0},med:{$:0},museum:{$:0},net:{$:0},org:{$:0},pro:{$:0}},onion:{$:0},org:{$:0,amune:{tele:{$:0}},pimienta:{$:0},poivron:{$:0},potager:{$:0},sweetpepper:{$:0},ae:{$:0},us:{$:0},certmgr:{$:0},cdn77:{c:{$:0},rsc:{$:0}},"cdn77-secure":{origin:{ssl:{$:0}}},cloudns:{$:0},duckdns:{$:0},tunk:{$:0},dyndns:{$:0,go:{$:0},home:{$:0}},blogdns:{$:0},blogsite:{$:0},boldlygoingnowhere:{$:0},dnsalias:{$:0},dnsdojo:{$:0},doesntexist:{$:0},dontexist:{$:0},doomdns:{$:0},dvrdns:{$:0},dynalias:{$:0},endofinternet:{$:0},endoftheinternet:{$:0},"from-me":{$:0},"game-host":{$:0},gotdns:{$:0},"hobby-site":{$:0},homedns:{$:0},homeftp:{$:0},homelinux:{$:0},homeunix:{$:0},"is-a-bruinsfan":{$:0},"is-a-candidate":{$:0},"is-a-celticsfan":{$:0},"is-a-chef":{$:0},"is-a-geek":{$:0},"is-a-knight":{$:0},"is-a-linux-user":{$:0},"is-a-patsfan":{$:0},"is-a-soxfan":{$:0},"is-found":{$:0},"is-lost":{$:0},"is-saved":{$:0},"is-very-bad":{$:0},"is-very-evil":{$:0},"is-very-good":{$:0},"is-very-nice":{$:0},"is-very-sweet":{$:0},"isa-geek":{$:0},"kicks-ass":{$:0},misconfused:{$:0},podzone:{$:0},readmyblog:{$:0},selfip:{$:0},sellsyourhome:{$:0},servebbs:{$:0},serveftp:{$:0},servegame:{$:0},"stuff-4-sale":{$:0},webhop:{$:0},ddnss:{$:0},accesscam:{$:0},camdvr:{$:0},freeddns:{$:0},mywire:{$:0},webredirect:{$:0},eu:{$:0,al:{$:0},asso:{$:0},at:{$:0},au:{$:0},be:{$:0},bg:{$:0},ca:{$:0},cd:{$:0},ch:{$:0},cn:{$:0},cy:{$:0},cz:{$:0},de:{$:0},dk:{$:0},edu:{$:0},ee:{$:0},es:{$:0},fi:{$:0},fr:{$:0},gr:{$:0},hr:{$:0},hu:{$:0},ie:{$:0},il:{$:0},in:{$:0},int:{$:0},is:{$:0},it:{$:0},jp:{$:0},kr:{$:0},lt:{$:0},lu:{$:0},lv:{$:0},mc:{$:0},me:{$:0},mk:{$:0},mt:{$:0},my:{$:0},net:{$:0},ng:{$:0},nl:{$:0},no:{$:0},nz:{$:0},paris:{$:0},pl:{$:0},pt:{$:0},"q-a":{$:0},ro:{$:0},ru:{$:0},se:{$:0},si:{$:0},sk:{$:0},tr:{$:0},uk:{$:0},us:{$:0}},twmail:{$:0},fedorainfracloud:{$:0},fedorapeople:{$:0},fedoraproject:{cloud:{$:0},os:{app:{$:0}},stg:{os:{app:{$:0}}}},hepforge:{$:0},js:{$:0},bmoattachments:{$:0},"cable-modem":{$:0},collegefan:{$:0},couchpotatofries:{$:0},mlbfan:{$:0},mysecuritycamera:{$:0},nflfan:{$:0},"read-books":{$:0},ufcfan:{$:0},hopto:{$:0},myftp:{$:0},"no-ip":{$:0},zapto:{$:0},"my-firewall":{$:0},myfirewall:{$:0},spdns:{$:0},dsmynas:{$:0},familyds:{$:0},tuxfamily:{$:0},diskstation:{$:0},hk:{$:0},wmflabs:{$:0},za:{$:0}},pa:{$:0,ac:{$:0},gob:{$:0},com:{$:0},org:{$:0},sld:{$:0},edu:{$:0},net:{$:0},ing:{$:0},abo:{$:0},med:{$:0},nom:{$:0}},pe:{$:0,edu:{$:0},gob:{$:0},nom:{$:0},mil:{$:0},org:{$:0},com:{$:0},net:{$:0},blogspot:{$:0},nym:{$:0}},pf:{$:0,com:{$:0},org:{$:0},edu:{$:0}},pg:{"*":{$:0}},ph:{$:0,com:{$:0},net:{$:0},org:{$:0},gov:{$:0},edu:{$:0},ngo:{$:0},mil:{$:0},i:{$:0}},pk:{$:0,com:{$:0},net:{$:0},edu:{$:0},org:{$:0},fam:{$:0},biz:{$:0},web:{$:0},gov:{$:0},gob:{$:0},gok:{$:0},gon:{$:0},gop:{$:0},gos:{$:0},info:{$:0}},pl:{$:0,com:{$:0},net:{$:0},org:{$:0},aid:{$:0},agro:{$:0},atm:{$:0},auto:{$:0},biz:{$:0},edu:{$:0},gmina:{$:0},gsm:{$:0},info:{$:0},mail:{$:0},miasta:{$:0},media:{$:0},mil:{$:0},nieruchomosci:{$:0},nom:{$:0},pc:{$:0},powiat:{$:0},priv:{$:0},realestate:{$:0},rel:{$:0},sex:{$:0},shop:{$:0},sklep:{$:0},sos:{$:0},szkola:{$:0},targi:{$:0},tm:{$:0},tourism:{$:0},travel:{$:0},turystyka:{$:0},gov:{$:0,ap:{$:0},ic:{$:0},is:{$:0},us:{$:0},kmpsp:{$:0},kppsp:{$:0},kwpsp:{$:0},psp:{$:0},wskr:{$:0},kwp:{$:0},mw:{$:0},ug:{$:0},um:{$:0},umig:{$:0},ugim:{$:0},upow:{$:0},uw:{$:0},starostwo:{$:0},pa:{$:0},po:{$:0},psse:{$:0},pup:{$:0},rzgw:{$:0},sa:{$:0},so:{$:0},sr:{$:0},wsa:{$:0},sko:{$:0},uzs:{$:0},wiih:{$:0},winb:{$:0},pinb:{$:0},wios:{$:0},witd:{$:0},wzmiuw:{$:0},piw:{$:0},wiw:{$:0},griw:{$:0},wif:{$:0},oum:{$:0},sdn:{$:0},zp:{$:0},uppo:{$:0},mup:{$:0},wuoz:{$:0},konsulat:{$:0},oirm:{$:0}},augustow:{$:0},"babia-gora":{$:0},bedzin:{$:0},beskidy:{$:0},bialowieza:{$:0},bialystok:{$:0},bielawa:{$:0},bieszczady:{$:0},boleslawiec:{$:0},bydgoszcz:{$:0},bytom:{$:0},cieszyn:{$:0},czeladz:{$:0},czest:{$:0},dlugoleka:{$:0},elblag:{$:0},elk:{$:0},glogow:{$:0},gniezno:{$:0},gorlice:{$:0},grajewo:{$:0},ilawa:{$:0},jaworzno:{$:0},"jelenia-gora":{$:0},jgora:{$:0},kalisz:{$:0},"kazimierz-dolny":{$:0},karpacz:{$:0},kartuzy:{$:0},kaszuby:{$:0},katowice:{$:0},kepno:{$:0},ketrzyn:{$:0},klodzko:{$:0},kobierzyce:{$:0},kolobrzeg:{$:0},konin:{$:0},konskowola:{$:0},kutno:{$:0},lapy:{$:0},lebork:{$:0},legnica:{$:0},lezajsk:{$:0},limanowa:{$:0},lomza:{$:0},lowicz:{$:0},lubin:{$:0},lukow:{$:0},malbork:{$:0},malopolska:{$:0},mazowsze:{$:0},mazury:{$:0},mielec:{$:0},mielno:{$:0},mragowo:{$:0},naklo:{$:0},nowaruda:{$:0},nysa:{$:0},olawa:{$:0},olecko:{$:0},olkusz:{$:0},olsztyn:{$:0},opoczno:{$:0},opole:{$:0},ostroda:{$:0},ostroleka:{$:0},ostrowiec:{$:0},ostrowwlkp:{$:0},pila:{$:0},pisz:{$:0},podhale:{$:0},podlasie:{$:0},polkowice:{$:0},pomorze:{$:0},pomorskie:{$:0},prochowice:{$:0},pruszkow:{$:0},przeworsk:{$:0},pulawy:{$:0},radom:{$:0},"rawa-maz":{$:0},rybnik:{$:0},rzeszow:{$:0},sanok:{$:0},sejny:{$:0},slask:{$:0},slupsk:{$:0},sosnowiec:{$:0},"stalowa-wola":{$:0},skoczow:{$:0},starachowice:{$:0},stargard:{$:0},suwalki:{$:0},swidnica:{$:0},swiebodzin:{$:0},swinoujscie:{$:0},szczecin:{$:0},szczytno:{$:0},tarnobrzeg:{$:0},tgory:{$:0},turek:{$:0},tychy:{$:0},ustka:{$:0},walbrzych:{$:0},warmia:{$:0},warszawa:{$:0},waw:{$:0},wegrow:{$:0},wielun:{$:0},wlocl:{$:0},wloclawek:{$:0},wodzislaw:{$:0},wolomin:{$:0},wroclaw:{$:0},zachpomor:{$:0},zagan:{$:0},zarow:{$:0},zgora:{$:0},zgorzelec:{$:0},beep:{$:0},co:{$:0},art:{$:0},gliwice:{$:0},krakow:{$:0},poznan:{$:0},wroc:{$:0},zakopane:{$:0},gda:{$:0},gdansk:{$:0},gdynia:{$:0},med:{$:0},sopot:{$:0}},pm:{$:0},pn:{$:0,gov:{$:0},co:{$:0},org:{$:0},edu:{$:0},net:{$:0}},post:{$:0},pr:{$:0,com:{$:0},net:{$:0},org:{$:0},gov:{$:0},edu:{$:0},isla:{$:0},pro:{$:0},biz:{$:0},info:{$:0},name:{$:0},est:{$:0},prof:{$:0},ac:{$:0}},pro:{$:0,aaa:{$:0},aca:{$:0},acct:{$:0},avocat:{$:0},bar:{$:0},cpa:{$:0},eng:{$:0},jur:{$:0},law:{$:0},med:{$:0},recht:{$:0},cloudns:{$:0}},ps:{$:0,edu:{$:0},gov:{$:0},sec:{$:0},plo:{$:0},com:{$:0},org:{$:0},net:{$:0}},pt:{$:0,net:{$:0},gov:{$:0},org:{$:0},edu:{$:0},int:{$:0},publ:{$:0},com:{$:0},nome:{$:0},blogspot:{$:0},nym:{$:0}},pw:{$:0,co:{$:0},ne:{$:0},or:{$:0},ed:{$:0},go:{$:0},belau:{$:0},cloudns:{$:0},nom:{$:0}},py:{$:0,com:{$:0},coop:{$:0},edu:{$:0},gov:{$:0},mil:{$:0},net:{$:0},org:{$:0}},qa:{$:0,com:{$:0},edu:{$:0},gov:{$:0},mil:{$:0},name:{$:0},net:{$:0},org:{$:0},sch:{$:0},blogspot:{$:0},nom:{$:0}},re:{$:0,asso:{$:0},com:{$:0},nom:{$:0},blogspot:{$:0}},ro:{$:0,arts:{$:0},com:{$:0},firm:{$:0},info:{$:0},nom:{$:0},nt:{$:0},org:{$:0},rec:{$:0},store:{$:0},tm:{$:0},www:{$:0},shop:{$:0},blogspot:{$:0}},rs:{$:0,ac:{$:0},co:{$:0},edu:{$:0},gov:{$:0},in:{$:0},org:{$:0},blogspot:{$:0},nom:{$:0}},ru:{$:0,ac:{$:0},edu:{$:0},gov:{$:0},int:{$:0},mil:{$:0},test:{$:0},adygeya:{$:0},bashkiria:{$:0},bir:{$:0},cbg:{$:0},com:{$:0},dagestan:{$:0},grozny:{$:0},kalmykia:{$:0},kustanai:{$:0},marine:{$:0},mordovia:{$:0},msk:{$:0},mytis:{$:0},nalchik:{$:0},nov:{$:0},pyatigorsk:{$:0},spb:{$:0},vladikavkaz:{$:0},vladimir:{$:0},blogspot:{$:0},cldmail:{hb:{$:0}},net:{$:0},org:{$:0},pp:{$:0}},rw:{$:0,gov:{$:0},net:{$:0},edu:{$:0},ac:{$:0},com:{$:0},co:{$:0},int:{$:0},mil:{$:0},gouv:{$:0}},sa:{$:0,com:{$:0},net:{$:0},org:{$:0},gov:{$:0},med:{$:0},pub:{$:0},edu:{$:0},sch:{$:0}},sb:{$:0,com:{$:0},edu:{$:0},gov:{$:0},net:{$:0},org:{$:0}},sc:{$:0,com:{$:0},gov:{$:0},net:{$:0},org:{$:0},edu:{$:0}},sd:{$:0,com:{$:0},net:{$:0},org:{$:0},edu:{$:0},med:{$:0},tv:{$:0},gov:{$:0},info:{$:0}},se:{$:0,a:{$:0},ac:{$:0},b:{$:0},bd:{$:0},brand:{$:0},c:{$:0},d:{$:0},e:{$:0},f:{$:0},fh:{$:0},fhsk:{$:0},fhv:{$:0},g:{$:0},h:{$:0},i:{$:0},k:{$:0},komforb:{$:0},kommunalforbund:{$:0},komvux:{$:0},l:{$:0},lanbib:{$:0},m:{$:0},n:{$:0},naturbruksgymn:{$:0},o:{$:0},org:{$:0},p:{$:0},parti:{$:0},pp:{$:0},press:{$:0},r:{$:0},s:{$:0},t:{$:0},tm:{$:0},u:{$:0},w:{$:0},x:{$:0},y:{$:0},z:{$:0},com:{$:0},blogspot:{$:0}},sg:{$:0,com:{$:0},net:{$:0},org:{$:0},gov:{$:0},edu:{$:0},per:{$:0},blogspot:{$:0}},sh:{$:0,com:{$:0},net:{$:0},gov:{$:0},org:{$:0},mil:{$:0},hashbang:{$:0},platform:{"*":{$:0}},wedeploy:{$:0},now:{$:0}},si:{$:0,blogspot:{$:0},nom:{$:0}},sj:{$:0},sk:{$:0,blogspot:{$:0},nym:{$:0}},sl:{$:0,com:{$:0},net:{$:0},edu:{$:0},gov:{$:0},org:{$:0}},sm:{$:0},sn:{$:0,art:{$:0},com:{$:0},edu:{$:0},gouv:{$:0},org:{$:0},perso:{$:0},univ:{$:0},blogspot:{$:0}},so:{$:0,com:{$:0},net:{$:0},org:{$:0}},sr:{$:0},st:{$:0,co:{$:0},com:{$:0},consulado:{$:0},edu:{$:0},embaixada:{$:0},gov:{$:0},mil:{$:0},net:{$:0},org:{$:0},principe:{$:0},saotome:{$:0},store:{$:0}},su:{$:0,abkhazia:{$:0},adygeya:{$:0},aktyubinsk:{$:0},arkhangelsk:{$:0},armenia:{$:0},ashgabad:{$:0},azerbaijan:{$:0},balashov:{$:0},bashkiria:{$:0},bryansk:{$:0},bukhara:{$:0},chimkent:{$:0},dagestan:{$:0},"east-kazakhstan":{$:0},exnet:{$:0},georgia:{$:0},grozny:{$:0},ivanovo:{$:0},jambyl:{$:0},kalmykia:{$:0},kaluga:{$:0},karacol:{$:0},karaganda:{$:0},karelia:{$:0},khakassia:{$:0},krasnodar:{$:0},kurgan:{$:0},kustanai:{$:0},lenug:{$:0},mangyshlak:{$:0},mordovia:{$:0},msk:{$:0},murmansk:{$:0},nalchik:{$:0},navoi:{$:0},"north-kazakhstan":{$:0},nov:{$:0},obninsk:{$:0},penza:{$:0},pokrovsk:{$:0},sochi:{$:0},spb:{$:0},tashkent:{$:0},termez:{$:0},togliatti:{$:0},troitsk:{$:0},tselinograd:{$:0},tula:{$:0},tuva:{$:0},vladikavkaz:{$:0},vladimir:{$:0},vologda:{$:0},nym:{$:0}},sv:{$:0,com:{$:0},edu:{$:0},gob:{$:0},org:{$:0},red:{$:0}},sx:{$:0,gov:{$:0},nym:{$:0}},sy:{$:0,edu:{$:0},gov:{$:0},net:{$:0},mil:{$:0},com:{$:0},org:{$:0}},sz:{$:0,co:{$:0},ac:{$:0},org:{$:0}},tc:{$:0},td:{$:0,blogspot:{$:0}},tel:{$:0},tf:{$:0},tg:{$:0},th:{$:0,ac:{$:0},co:{$:0},go:{$:0},in:{$:0},mi:{$:0},net:{$:0},or:{$:0}},tj:{$:0,ac:{$:0},biz:{$:0},co:{$:0},com:{$:0},edu:{$:0},go:{$:0},gov:{$:0},int:{$:0},mil:{$:0},name:{$:0},net:{$:0},nic:{$:0},org:{$:0},test:{$:0},web:{$:0}},tk:{$:0},tl:{$:0,gov:{$:0}},tm:{$:0,com:{$:0},co:{$:0},org:{$:0},net:{$:0},nom:{$:0},gov:{$:0},mil:{$:0},edu:{$:0}},tn:{$:0,com:{$:0},ens:{$:0},fin:{$:0},gov:{$:0},ind:{$:0},intl:{$:0},nat:{$:0},net:{$:0},org:{$:0},info:{$:0},perso:{$:0},tourism:{$:0},edunet:{$:0},rnrt:{$:0},rns:{$:0},rnu:{$:0},mincom:{$:0},agrinet:{$:0},defense:{$:0},turen:{$:0}},to:{$:0,com:{$:0},gov:{$:0},net:{$:0},org:{$:0},edu:{$:0},mil:{$:0},vpnplus:{$:0}},tr:{$:0,com:{$:0,blogspot:{$:0}},info:{$:0},biz:{$:0},net:{$:0},org:{$:0},web:{$:0},gen:{$:0},tv:{$:0},av:{$:0},dr:{$:0},bbs:{$:0},name:{$:0},tel:{$:0},gov:{$:0},bel:{$:0},pol:{$:0},mil:{$:0},k12:{$:0},edu:{$:0},kep:{$:0},nc:{$:0,gov:{$:0}}},travel:{$:0},tt:{$:0,co:{$:0},com:{$:0},org:{$:0},net:{$:0},biz:{$:0},info:{$:0},pro:{$:0},int:{$:0},coop:{$:0},jobs:{$:0},mobi:{$:0},travel:{$:0},museum:{$:0},aero:{$:0},name:{$:0},gov:{$:0},edu:{$:0}},tv:{$:0,dyndns:{$:0},"better-than":{$:0},"on-the-web":{$:0},"worse-than":{$:0}},tw:{$:0,edu:{$:0},gov:{$:0},mil:{$:0},com:{$:0,mymailer:{$:0}},net:{$:0},org:{$:0},idv:{$:0},game:{$:0},ebiz:{$:0},club:{$:0},"xn--zf0ao64a":{$:0},"xn--uc0atv":{$:0},"xn--czrw28b":{$:0},url:{$:0},blogspot:{$:0},nym:{$:0}},tz:{$:0,ac:{$:0},co:{$:0},go:{$:0},hotel:{$:0},info:{$:0},me:{$:0},mil:{$:0},mobi:{$:0},ne:{$:0},or:{$:0},sc:{$:0},tv:{$:0}},ua:{$:0,com:{$:0},edu:{$:0},gov:{$:0},in:{$:0},net:{$:0},org:{$:0},cherkassy:{$:0},cherkasy:{$:0},chernigov:{$:0},chernihiv:{$:0},chernivtsi:{$:0},chernovtsy:{$:0},ck:{$:0},cn:{$:0},cr:{$:0},crimea:{$:0},cv:{$:0},dn:{$:0},dnepropetrovsk:{$:0},dnipropetrovsk:{$:0},dominic:{$:0},donetsk:{$:0},dp:{$:0},if:{$:0},"ivano-frankivsk":{$:0},kh:{$:0},kharkiv:{$:0},kharkov:{$:0},kherson:{$:0},khmelnitskiy:{$:0},khmelnytskyi:{$:0},kiev:{$:0},kirovograd:{$:0},km:{$:0},kr:{$:0},krym:{$:0},ks:{$:0},kv:{$:0},kyiv:{$:0},lg:{$:0},lt:{$:0},lugansk:{$:0},lutsk:{$:0},lv:{$:0},lviv:{$:0},mk:{$:0},mykolaiv:{$:0},nikolaev:{$:0},od:{$:0},odesa:{$:0},odessa:{$:0},pl:{$:0},poltava:{$:0},rivne:{$:0},rovno:{$:0},rv:{$:0},sb:{$:0},sebastopol:{$:0},sevastopol:{$:0},sm:{$:0},sumy:{$:0},te:{$:0},ternopil:{$:0},uz:{$:0},uzhgorod:{$:0},vinnica:{$:0},vinnytsia:{$:0},vn:{$:0},volyn:{$:0},yalta:{$:0},zaporizhzhe:{$:0},zaporizhzhia:{$:0},zhitomir:{$:0},zhytomyr:{$:0},zp:{$:0},zt:{$:0},cc:{$:0},inf:{$:0},ltd:{$:0},biz:{$:0},co:{$:0},pp:{$:0}},ug:{$:0,co:{$:0},or:{$:0},ac:{$:0},sc:{$:0},go:{$:0},ne:{$:0},com:{$:0},org:{$:0},blogspot:{$:0},nom:{$:0}},uk:{$:0,ac:{$:0},co:{$:0,blogspot:{$:0},"nh-serv":{$:0},"no-ip":{$:0},wellbeingzone:{$:0}},gov:{$:0,service:{$:0},homeoffice:{$:0}},ltd:{$:0},me:{$:0},net:{$:0},nhs:{$:0},org:{$:0},plc:{$:0},police:{$:0},sch:{"*":{$:0}}},us:{$:0,dni:{$:0},fed:{$:0},isa:{$:0},kids:{$:0},nsn:{$:0},ak:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},al:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ar:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},as:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},az:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ca:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},co:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ct:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},dc:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},de:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},fl:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ga:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},gu:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},hi:{$:0,cc:{$:0},lib:{$:0}},ia:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},id:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},il:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},in:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ks:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ky:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},la:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ma:{$:0,k12:{$:0,pvt:{$:0},chtr:{$:0},paroch:{$:0}},cc:{$:0},lib:{$:0}},md:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},me:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},mi:{$:0,k12:{$:0},cc:{$:0},lib:{$:0},"ann-arbor":{$:0},cog:{$:0},dst:{$:0},eaton:{$:0},gen:{$:0},mus:{$:0},tec:{$:0},washtenaw:{$:0}},mn:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},mo:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ms:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},mt:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},nc:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},nd:{$:0,cc:{$:0},lib:{$:0}},ne:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},nh:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},nj:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},nm:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},nv:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ny:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},oh:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ok:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},or:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},pa:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},pr:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ri:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},sc:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},sd:{$:0,cc:{$:0},lib:{$:0}},tn:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},tx:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},ut:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},vi:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},vt:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},va:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},wa:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},wi:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},wv:{$:0,cc:{$:0}},wy:{$:0,k12:{$:0},cc:{$:0},lib:{$:0}},cloudns:{$:0},drud:{$:0},"is-by":{$:0},"land-4-sale":{$:0},"stuff-4-sale":{$:0},golffan:{$:0},noip:{$:0},pointto:{$:0}},uy:{$:0,com:{$:0,blogspot:{$:0}},edu:{$:0},gub:{$:0},mil:{$:0},net:{$:0},org:{$:0},nom:{$:0}},uz:{$:0,co:{$:0},com:{$:0},net:{$:0},org:{$:0}},va:{$:0},vc:{$:0,com:{$:0},net:{$:0},org:{$:0},gov:{$:0},mil:{$:0},edu:{$:0},nom:{$:0}},ve:{$:0,arts:{$:0},co:{$:0},com:{$:0},e12:{$:0},edu:{$:0},firm:{$:0},gob:{$:0},gov:{$:0},info:{$:0},int:{$:0},mil:{$:0},net:{$:0},org:{$:0},rec:{$:0},store:{$:0},tec:{$:0},web:{$:0}},vg:{$:0,nom:{$:0}},vi:{$:0,co:{$:0},com:{$:0},k12:{$:0},net:{$:0},org:{$:0}},vn:{$:0,com:{$:0},net:{$:0},org:{$:0},edu:{$:0},gov:{$:0},int:{$:0},ac:{$:0},biz:{$:0},info:{$:0},name:{$:0},pro:{$:0},health:{$:0},blogspot:{$:0}},vu:{$:0,com:{$:0},edu:{$:0},net:{$:0},org:{$:0}},wf:{$:0},ws:{$:0,com:{$:0},net:{$:0},org:{$:0},gov:{$:0},edu:{$:0},advisor:{"*":{$:0}},dyndns:{$:0},mypets:{$:0}},yt:{$:0},"xn--mgbaam7a8h":{$:0},"xn--y9a3aq":{$:0},"xn--54b7fta0cc":{$:0},"xn--90ae":{$:0},"xn--90ais":{$:0},"xn--fiqs8s":{$:0},"xn--fiqz9s":{$:0},"xn--lgbbat1ad8j":{$:0},"xn--wgbh1c":{$:0},"xn--e1a4c":{$:0},"xn--node":{$:0},"xn--qxam":{$:0},"xn--j6w193g":{$:0},"xn--2scrj9c":{$:0},"xn--3hcrj9c":{$:0},"xn--45br5cyl":{$:0},"xn--h2breg3eve":{$:0},"xn--h2brj9c8c":{$:0},"xn--mgbgu82a":{$:0},"xn--rvc1e0am3e":{$:0},"xn--h2brj9c":{$:0},"xn--mgbbh1a71e":{$:0},"xn--fpcrj9c3d":{$:0},"xn--gecrj9c":{$:0},"xn--s9brj9c":{$:0},"xn--45brj9c":{$:0},"xn--xkc2dl3a5ee0h":{$:0},"xn--mgba3a4f16a":{$:0},"xn--mgba3a4fra":{$:0},"xn--mgbtx2b":{$:0},"xn--mgbayh7gpa":{$:0},"xn--3e0b707e":{$:0},"xn--80ao21a":{$:0},"xn--fzc2c9e2c":{$:0},"xn--xkc2al3hye2a":{$:0},"xn--mgbc0a9azcg":{$:0},"xn--d1alf":{$:0},"xn--l1acc":{$:0},"xn--mix891f":{$:0},"xn--mix082f":{$:0},"xn--mgbx4cd0ab":{$:0},"xn--mgb9awbf":{$:0},"xn--mgbai9azgqp6j":{$:0},"xn--mgbai9a5eva00b":{$:0},"xn--ygbi2ammx":{$:0},"xn--90a3ac":{$:0,"xn--o1ac":{$:0},"xn--c1avg":{$:0},"xn--90azh":{$:0},"xn--d1at":{$:0},"xn--o1ach":{$:0},"xn--80au":{$:0}},"xn--p1ai":{$:0},"xn--wgbl6a":{$:0},"xn--mgberp4a5d4ar":{$:0},"xn--mgberp4a5d4a87g":{$:0},"xn--mgbqly7c0a67fbc":{$:0},"xn--mgbqly7cvafr":{$:0},"xn--mgbpl2fh":{$:0},"xn--yfro4i67o":{$:0},"xn--clchc0ea0b2g2a9gcd":{$:0},"xn--ogbpf8fl":{$:0},"xn--mgbtf8fl":{$:0},"xn--o3cw4h":{$:0,"xn--12c1fe0br":{$:0},"xn--12co0c3b4eva":{$:0},"xn--h3cuzk1di":{$:0},"xn--o3cyx2a":{$:0},"xn--m3ch0j3a":{$:0},"xn--12cfi8ixb8l":{$:0}},"xn--pgbs0dh":{$:0},"xn--kpry57d":{$:0},"xn--kprw13d":{$:0},"xn--nnx388a":{$:0},"xn--j1amh":{$:0},"xn--mgb2ddes":{$:0},xxx:{$:0},ye:{"*":{$:0}},za:{ac:{$:0},agric:{$:0},alt:{$:0},co:{$:0,blogspot:{$:0}},edu:{$:0},gov:{$:0},grondar:{$:0},law:{$:0},mil:{$:0},net:{$:0},ngo:{$:0},nis:{$:0},nom:{$:0},org:{$:0},school:{$:0},tm:{$:0},web:{$:0}},zm:{$:0,ac:{$:0},biz:{$:0},co:{$:0},com:{$:0},edu:{$:0},gov:{$:0},info:{$:0},mil:{$:0},net:{$:0},org:{$:0},sch:{$:0}},zw:{$:0,ac:{$:0},co:{$:0},gov:{$:0},mil:{$:0},org:{$:0}},aaa:{$:0},aarp:{$:0},abarth:{$:0},abb:{$:0},abbott:{$:0},abbvie:{$:0},abc:{$:0},able:{$:0},abogado:{$:0},abudhabi:{$:0},academy:{$:0},accenture:{$:0},accountant:{$:0},accountants:{$:0},aco:{$:0},active:{$:0},actor:{$:0},adac:{$:0},ads:{$:0},adult:{$:0},aeg:{$:0},aetna:{$:0},afamilycompany:{$:0},afl:{$:0},africa:{$:0},agakhan:{$:0},agency:{$:0},aig:{$:0},aigo:{$:0},airbus:{$:0},airforce:{$:0},airtel:{$:0},akdn:{$:0},alfaromeo:{$:0},alibaba:{$:0},alipay:{$:0},allfinanz:{$:0},allstate:{$:0},ally:{$:0},alsace:{$:0},alstom:{$:0},americanexpress:{$:0},americanfamily:{$:0},amex:{$:0},amfam:{$:0},amica:{$:0},amsterdam:{$:0},analytics:{$:0},android:{$:0},anquan:{$:0},anz:{$:0},aol:{$:0},apartments:{$:0},app:{$:0},apple:{$:0},aquarelle:{$:0},arab:{$:0},aramco:{$:0},archi:{$:0},army:{$:0},art:{$:0},arte:{$:0},asda:{$:0},associates:{$:0},athleta:{$:0},attorney:{$:0},auction:{$:0},audi:{$:0},audible:{$:0},audio:{$:0},auspost:{$:0},author:{$:0},auto:{$:0},autos:{$:0},avianca:{$:0},aws:{$:0},axa:{$:0},azure:{$:0},baby:{$:0},baidu:{$:0},banamex:{$:0},bananarepublic:{$:0},band:{$:0},bank:{$:0},bar:{$:0},barcelona:{$:0},barclaycard:{$:0},barclays:{$:0},barefoot:{$:0},bargains:{$:0},baseball:{$:0},basketball:{$:0},bauhaus:{$:0},bayern:{$:0},bbc:{$:0},bbt:{$:0},bbva:{$:0},bcg:{$:0},bcn:{$:0},beats:{$:0},beauty:{$:0},beer:{$:0},bentley:{$:0},berlin:{$:0},best:{$:0},bestbuy:{$:0},bet:{$:0},bharti:{$:0},bible:{$:0},bid:{$:0},bike:{$:0},bing:{$:0},bingo:{$:0},bio:{$:0},black:{$:0},blackfriday:{$:0},blanco:{$:0},blockbuster:{$:0},blog:{$:0},bloomberg:{$:0},blue:{$:0},bms:{$:0},bmw:{$:0},bnl:{$:0},bnpparibas:{$:0},boats:{$:0},boehringer:{$:0},bofa:{$:0},bom:{$:0},bond:{$:0},boo:{$:0},book:{$:0},booking:{$:0},boots:{$:0},bosch:{$:0},bostik:{$:0},boston:{$:0},bot:{$:0},boutique:{$:0},box:{$:0},bradesco:{$:0},bridgestone:{$:0},broadway:{$:0},broker:{$:0},brother:{$:0},brussels:{$:0},budapest:{$:0},bugatti:{$:0},build:{$:0},builders:{$:0},business:{$:0},buy:{$:0},buzz:{$:0},bzh:{$:0},cab:{$:0},cafe:{$:0},cal:{$:0},call:{$:0},calvinklein:{$:0},cam:{$:0},camera:{$:0},camp:{$:0},cancerresearch:{$:0},canon:{$:0},capetown:{$:0},capital:{$:0},capitalone:{$:0},car:{$:0},caravan:{$:0},cards:{$:0},care:{$:0},career:{$:0},careers:{$:0},cars:{$:0},cartier:{$:0},casa:{$:0},case:{$:0},caseih:{$:0},cash:{$:0},casino:{$:0},catering:{$:0},catholic:{$:0},cba:{$:0},cbn:{$:0},cbre:{$:0},cbs:{$:0},ceb:{$:0},center:{$:0},ceo:{$:0},cern:{$:0},cfa:{$:0},cfd:{$:0},chanel:{$:0},channel:{$:0},chase:{$:0},chat:{$:0},cheap:{$:0},chintai:{$:0},christmas:{$:0},chrome:{$:0},chrysler:{$:0},church:{$:0},cipriani:{$:0},circle:{$:0},cisco:{$:0},citadel:{$:0},citi:{$:0},citic:{$:0},city:{$:0},cityeats:{$:0},claims:{$:0},cleaning:{$:0},click:{$:0},clinic:{$:0},clinique:{$:0},clothing:{$:0},cloud:{$:0,statics:{"*":{$:0}},magentosite:{"*":{$:0}},vapor:{$:0},sensiosite:{"*":{$:0}},trafficplex:{$:0}},club:{$:0,cloudns:{$:0}},clubmed:{$:0},coach:{$:0},codes:{$:0},coffee:{$:0},college:{$:0},cologne:{$:0},comcast:{$:0},commbank:{$:0},community:{$:0},company:{$:0},compare:{$:0},computer:{$:0},comsec:{$:0},condos:{$:0},construction:{$:0},consulting:{$:0},contact:{$:0},contractors:{$:0},cooking:{$:0},cookingchannel:{$:0},cool:{$:0,de:{$:0}},corsica:{$:0},country:{$:0},coupon:{$:0},coupons:{$:0},courses:{$:0},credit:{$:0},creditcard:{$:0},creditunion:{$:0},cricket:{$:0},crown:{$:0},crs:{$:0},cruise:{$:0},cruises:{$:0},csc:{$:0},cuisinella:{$:0},cymru:{$:0},cyou:{$:0},dabur:{$:0},dad:{$:0},dance:{$:0},data:{$:0},date:{$:0},dating:{$:0},datsun:{$:0},day:{$:0},dclk:{$:0},dds:{$:0},deal:{$:0},dealer:{$:0},deals:{$:0},degree:{$:0},delivery:{$:0},dell:{$:0},deloitte:{$:0},delta:{$:0},democrat:{$:0},dental:{$:0},dentist:{$:0},desi:{$:0},design:{$:0},dev:{$:0},dhl:{$:0},diamonds:{$:0},diet:{$:0},digital:{$:0},direct:{$:0},directory:{$:0},discount:{$:0},discover:{$:0},dish:{$:0},diy:{$:0},dnp:{$:0},docs:{$:0},doctor:{$:0},dodge:{$:0},dog:{$:0},doha:{$:0},domains:{$:0},dot:{$:0},download:{$:0},drive:{$:0},dtv:{$:0},dubai:{$:0},duck:{$:0},dunlop:{$:0},duns:{$:0},dupont:{$:0},durban:{$:0},dvag:{$:0},dvr:{$:0},earth:{$:0},eat:{$:0},eco:{$:0},edeka:{$:0},education:{$:0},email:{$:0},emerck:{$:0},energy:{$:0},engineer:{$:0},engineering:{$:0},enterprises:{$:0},epost:{$:0},epson:{$:0},equipment:{$:0},ericsson:{$:0},erni:{$:0},esq:{$:0},estate:{$:0,compute:{"*":{$:0}}},esurance:{$:0},etisalat:{$:0},eurovision:{$:0},eus:{$:0,party:{user:{$:0}}},events:{$:0},everbank:{$:0},exchange:{$:0},expert:{$:0},exposed:{$:0},express:{$:0},extraspace:{$:0},fage:{$:0},fail:{$:0},fairwinds:{$:0},faith:{$:0,ybo:{$:0}},family:{$:0},fan:{$:0},fans:{$:0},farm:{$:0,storj:{$:0}},farmers:{$:0},fashion:{$:0},fast:{$:0},fedex:{$:0},feedback:{$:0},ferrari:{$:0},ferrero:{$:0},fiat:{$:0},fidelity:{$:0},fido:{$:0},film:{$:0},final:{$:0},finance:{$:0},financial:{$:0},fire:{$:0},firestone:{$:0},firmdale:{$:0},fish:{$:0},fishing:{$:0},fit:{$:0,ptplus:{$:0}},fitness:{$:0},flickr:{$:0},flights:{$:0},flir:{$:0},florist:{$:0},flowers:{$:0},fly:{$:0},foo:{$:0},food:{$:0},foodnetwork:{$:0},football:{$:0},ford:{$:0},forex:{$:0},forsale:{$:0},forum:{$:0},foundation:{$:0},fox:{$:0},free:{$:0},fresenius:{$:0},frl:{$:0},frogans:{$:0},frontdoor:{$:0},frontier:{$:0},ftr:{$:0},fujitsu:{$:0},fujixerox:{$:0},fun:{$:0},fund:{$:0},furniture:{$:0},futbol:{$:0},fyi:{$:0},gal:{$:0},gallery:{$:0},gallo:{$:0},gallup:{$:0},game:{$:0},games:{$:0},gap:{$:0},garden:{$:0},gbiz:{$:0},gdn:{$:0},gea:{$:0},gent:{$:0},genting:{$:0},george:{$:0},ggee:{$:0},gift:{$:0},gifts:{$:0},gives:{$:0},giving:{$:0},glade:{$:0},glass:{$:0},gle:{$:0},global:{$:0},globo:{$:0},gmail:{$:0},gmbh:{$:0},gmo:{$:0},gmx:{$:0},godaddy:{$:0},gold:{$:0},goldpoint:{$:0},golf:{$:0},goo:{$:0},goodhands:{$:0},goodyear:{$:0},goog:{$:0,cloud:{$:0}},google:{$:0},gop:{$:0},got:{$:0},grainger:{$:0},graphics:{$:0},gratis:{$:0},green:{$:0},gripe:{$:0},grocery:{$:0},group:{$:0},guardian:{$:0},gucci:{$:0},guge:{$:0},guide:{$:0},guitars:{$:0},guru:{$:0},hair:{$:0},hamburg:{$:0},hangout:{$:0},haus:{$:0},hbo:{$:0},hdfc:{$:0},hdfcbank:{$:0},health:{$:0},healthcare:{$:0},help:{$:0},helsinki:{$:0},here:{$:0},hermes:{$:0},hgtv:{$:0},hiphop:{$:0},hisamitsu:{$:0},hitachi:{$:0},hiv:{$:0},hkt:{$:0},hockey:{$:0},holdings:{$:0},holiday:{$:0},homedepot:{$:0},homegoods:{$:0},homes:{$:0},homesense:{$:0},honda:{$:0},honeywell:{$:0},horse:{$:0},hospital:{$:0},host:{$:0,cloudaccess:{$:0},freesite:{$:0}},hosting:{$:0,opencraft:{$:0}},hot:{$:0},hoteles:{$:0},hotels:{$:0},hotmail:{$:0},house:{$:0},how:{$:0},hsbc:{$:0},hughes:{$:0},hyatt:{$:0},hyundai:{$:0},ibm:{$:0},icbc:{$:0},ice:{$:0},icu:{$:0},ieee:{$:0},ifm:{$:0},ikano:{$:0},imamat:{$:0},imdb:{$:0},immo:{$:0},immobilien:{$:0},industries:{$:0},infiniti:{$:0},ing:{$:0},ink:{$:0},institute:{$:0},insurance:{$:0},insure:{$:0},intel:{$:0},international:{$:0},intuit:{$:0},investments:{$:0},ipiranga:{$:0},irish:{$:0},iselect:{$:0},ismaili:{$:0},ist:{$:0},istanbul:{$:0},itau:{$:0},itv:{$:0},iveco:{$:0},iwc:{$:0},jaguar:{$:0},java:{$:0},jcb:{$:0},jcp:{$:0},jeep:{$:0},jetzt:{$:0},jewelry:{$:0},jio:{$:0},jlc:{$:0},jll:{$:0},jmp:{$:0},jnj:{$:0},joburg:{$:0},jot:{$:0},joy:{$:0},jpmorgan:{$:0},jprs:{$:0},juegos:{$:0},juniper:{$:0},kaufen:{$:0},kddi:{$:0},kerryhotels:{$:0},kerrylogistics:{$:0},kerryproperties:{$:0},kfh:{$:0},kia:{$:0},kim:{$:0},kinder:{$:0},kindle:{$:0},kitchen:{$:0},kiwi:{$:0},koeln:{$:0},komatsu:{$:0},kosher:{$:0},kpmg:{$:0},kpn:{$:0},krd:{$:0,co:{$:0},edu:{$:0}},kred:{$:0},kuokgroup:{$:0},kyoto:{$:0},lacaixa:{$:0},ladbrokes:{$:0},lamborghini:{$:0},lamer:{$:0},lancaster:{$:0},lancia:{$:0},lancome:{$:0},land:{$:0,static:{$:0,dev:{$:0},sites:{$:0}}},landrover:{$:0},lanxess:{$:0},lasalle:{$:0},lat:{$:0},latino:{$:0},latrobe:{$:0},law:{$:0},lawyer:{$:0},lds:{$:0},lease:{$:0},leclerc:{$:0},lefrak:{$:0},legal:{$:0},lego:{$:0},lexus:{$:0},lgbt:{$:0},liaison:{$:0},lidl:{$:0},life:{$:0},lifeinsurance:{$:0},lifestyle:{$:0},lighting:{$:0},like:{$:0},lilly:{$:0},limited:{$:0},limo:{$:0},lincoln:{$:0},linde:{$:0},link:{$:0,cyon:{$:0},mypep:{$:0}},lipsy:{$:0},live:{$:0},living:{$:0},lixil:{$:0},loan:{$:0},loans:{$:0},locker:{$:0},locus:{$:0},loft:{$:0},lol:{$:0},london:{$:0},lotte:{$:0},lotto:{$:0},love:{$:0},lpl:{$:0},lplfinancial:{$:0},ltd:{$:0},ltda:{$:0},lundbeck:{$:0},lupin:{$:0},luxe:{$:0},luxury:{$:0},macys:{$:0},madrid:{$:0},maif:{$:0},maison:{$:0},makeup:{$:0},man:{$:0},management:{$:0,router:{$:0}},mango:{$:0},map:{$:0},market:{$:0},marketing:{$:0},markets:{$:0},marriott:{$:0},marshalls:{$:0},maserati:{$:0},mattel:{$:0},mba:{$:0},mckinsey:{$:0},med:{$:0},media:{$:0},meet:{$:0},melbourne:{$:0},meme:{$:0},memorial:{$:0},men:{$:0},menu:{$:0},meo:{$:0},merckmsd:{$:0},metlife:{$:0},miami:{$:0},microsoft:{$:0},mini:{$:0},mint:{$:0},mit:{$:0},mitsubishi:{$:0},mlb:{$:0},mls:{$:0},mma:{$:0},mobile:{$:0},mobily:{$:0},moda:{$:0},moe:{$:0},moi:{$:0},mom:{$:0},monash:{$:0},money:{$:0},monster:{$:0},mopar:{$:0},mormon:{$:0},mortgage:{$:0},moscow:{$:0},moto:{$:0},motorcycles:{$:0},mov:{$:0},movie:{$:0},movistar:{$:0},msd:{$:0},mtn:{$:0},mtpc:{$:0},mtr:{$:0},mutual:{$:0},nab:{$:0},nadex:{$:0},nagoya:{$:0},nationwide:{$:0},natura:{$:0},navy:{$:0},nba:{$:0},nec:{$:0},netbank:{$:0},netflix:{$:0},network:{$:0,alces:{"*":{$:0}}},neustar:{$:0},new:{$:0},newholland:{$:0},news:{$:0},next:{$:0},nextdirect:{$:0},nexus:{$:0},nfl:{$:0},ngo:{$:0},nhk:{$:0},nico:{$:0},nike:{$:0},nikon:{$:0},ninja:{$:0},nissan:{$:0},nissay:{$:0},nokia:{$:0},northwesternmutual:{$:0},norton:{$:0},now:{$:0},nowruz:{$:0},nowtv:{$:0},nra:{$:0},nrw:{$:0},ntt:{$:0},nyc:{$:0},obi:{$:0},observer:{$:0},off:{$:0},office:{$:0},okinawa:{$:0},olayan:{$:0},olayangroup:{$:0},oldnavy:{$:0},ollo:{$:0},omega:{$:0},one:{$:0,homelink:{$:0}},ong:{$:0},onl:{$:0},online:{$:0,barsy:{$:0}},onyourside:{$:0},ooo:{$:0},open:{$:0},oracle:{$:0},orange:{$:0},organic:{$:0},origins:{$:0},osaka:{$:0},otsuka:{$:0},ott:{$:0},ovh:{$:0,nerdpol:{$:0}},page:{$:0},panasonic:{$:0},panerai:{$:0},paris:{$:0},pars:{$:0},partners:{$:0},parts:{$:0},party:{$:0,ybo:{$:0}},passagens:{$:0},pay:{$:0},pccw:{$:0},pet:{$:0},pfizer:{$:0},pharmacy:{$:0},phd:{$:0},philips:{$:0},phone:{$:0},photo:{$:0},photography:{$:0},photos:{$:0},physio:{$:0},piaget:{$:0},pics:{$:0},pictet:{$:0},pictures:{1337:{$:0},$:0},pid:{$:0},pin:{$:0},ping:{$:0},pink:{$:0},pioneer:{$:0},pizza:{$:0},place:{$:0},play:{$:0},playstation:{$:0},plumbing:{$:0},plus:{$:0},pnc:{$:0},pohl:{$:0},poker:{$:0},politie:{$:0},porn:{$:0},pramerica:{$:0},praxi:{$:0},press:{$:0},prime:{$:0},prod:{$:0},productions:{$:0},prof:{$:0},progressive:{$:0},promo:{$:0},properties:{$:0},property:{$:0},protection:{$:0},pru:{$:0},prudential:{$:0},pub:{$:0},pwc:{$:0},qpon:{$:0},quebec:{$:0},quest:{$:0},qvc:{$:0},racing:{$:0},radio:{$:0},raid:{$:0},read:{$:0},realestate:{$:0},realtor:{$:0},realty:{$:0},recipes:{$:0},red:{$:0},redstone:{$:0},redumbrella:{$:0},rehab:{$:0},reise:{$:0},reisen:{$:0},reit:{$:0},reliance:{$:0},ren:{$:0},rent:{$:0},rentals:{$:0},repair:{$:0},report:{$:0},republican:{$:0},rest:{$:0},restaurant:{$:0},review:{$:0,ybo:{$:0}},reviews:{$:0},rexroth:{$:0},rich:{$:0},richardli:{$:0},ricoh:{$:0},rightathome:{$:0},ril:{$:0},rio:{$:0},rip:{$:0,clan:{$:0}},rmit:{$:0},rocher:{$:0},rocks:{$:0,myddns:{$:0},"lima-city":{$:0},webspace:{$:0}},rodeo:{$:0},rogers:{$:0},room:{$:0},rsvp:{$:0},rugby:{$:0},ruhr:{$:0},run:{$:0},rwe:{$:0},ryukyu:{$:0},saarland:{$:0},safe:{$:0},safety:{$:0},sakura:{$:0},sale:{$:0},salon:{$:0},samsclub:{$:0},samsung:{$:0},sandvik:{$:0},sandvikcoromant:{$:0},sanofi:{$:0},sap:{$:0},sapo:{$:0},sarl:{$:0},sas:{$:0},save:{$:0},saxo:{$:0},sbi:{$:0},sbs:{$:0},sca:{$:0},scb:{$:0},schaeffler:{$:0},schmidt:{$:0},scholarships:{$:0},school:{$:0},schule:{$:0},schwarz:{$:0},science:{$:0,ybo:{$:0}},scjohnson:{$:0},scor:{$:0},scot:{$:0},search:{$:0},seat:{$:0},secure:{$:0},security:{$:0},seek:{$:0},select:{$:0},sener:{$:0},services:{$:0},ses:{$:0},seven:{$:0},sew:{$:0},sex:{$:0},sexy:{$:0},sfr:{$:0},shangrila:{$:0},sharp:{$:0},shaw:{$:0},shell:{$:0},shia:{$:0},shiksha:{$:0},shoes:{$:0},shop:{$:0},shopping:{$:0},shouji:{$:0},show:{$:0},showtime:{$:0},shriram:{$:0},silk:{$:0},sina:{$:0},singles:{$:0},site:{$:0,cyon:{$:0},platformsh:{"*":{$:0}},byen:{$:0}},ski:{$:0},skin:{$:0},sky:{$:0},skype:{$:0},sling:{$:0},smart:{$:0},smile:{$:0},sncf:{$:0},soccer:{$:0},social:{$:0},softbank:{$:0},software:{$:0},sohu:{$:0},solar:{$:0},solutions:{$:0},song:{$:0},sony:{$:0},soy:{$:0},space:{$:0,stackspace:{$:0},uber:{$:0},xs4all:{$:0}},spiegel:{$:0},spot:{$:0},spreadbetting:{$:0},srl:{$:0},srt:{$:0},stada:{$:0},staples:{$:0},star:{$:0},starhub:{$:0},statebank:{$:0},statefarm:{$:0},statoil:{$:0},stc:{$:0},stcgroup:{$:0},stockholm:{$:0},storage:{$:0},store:{$:0},stream:{$:0},studio:{$:0},study:{$:0},style:{$:0},sucks:{$:0},supplies:{$:0},supply:{$:0},support:{$:0,barsy:{$:0}},surf:{$:0},surgery:{$:0},suzuki:{$:0},swatch:{$:0},swiftcover:{$:0},swiss:{$:0},sydney:{$:0},symantec:{$:0},systems:{$:0,knightpoint:{$:0}},tab:{$:0},taipei:{$:0},talk:{$:0},taobao:{$:0},target:{$:0},tatamotors:{$:0},tatar:{$:0},tattoo:{$:0},tax:{$:0},taxi:{$:0},tci:{$:0},tdk:{$:0},team:{$:0},tech:{$:0},technology:{$:0},telecity:{$:0},telefonica:{$:0},temasek:{$:0},tennis:{$:0},teva:{$:0},thd:{$:0},theater:{$:0},theatre:{$:0},tiaa:{$:0},tickets:{$:0},tienda:{$:0},tiffany:{$:0},tips:{$:0},tires:{$:0},tirol:{$:0},tjmaxx:{$:0},tjx:{$:0},tkmaxx:{$:0},tmall:{$:0},today:{$:0},tokyo:{$:0},tools:{$:0},top:{$:0},toray:{$:0},toshiba:{$:0},total:{$:0},tours:{$:0},town:{$:0},toyota:{$:0},toys:{$:0},trade:{$:0,ybo:{$:0}},trading:{$:0},training:{$:0},travelchannel:{$:0},travelers:{$:0},travelersinsurance:{$:0},trust:{$:0},trv:{$:0},tube:{$:0},tui:{$:0},tunes:{$:0},tushu:{$:0},tvs:{$:0},ubank:{$:0},ubs:{$:0},uconnect:{$:0},unicom:{$:0},university:{$:0},uno:{$:0},uol:{$:0},ups:{$:0},vacations:{$:0},vana:{$:0},vanguard:{$:0},vegas:{$:0},ventures:{$:0},verisign:{$:0},versicherung:{$:0},vet:{$:0},viajes:{$:0},video:{$:0},vig:{$:0},viking:{$:0},villas:{$:0},vin:{$:0},vip:{$:0},virgin:{$:0},visa:{$:0},vision:{$:0},vista:{$:0},vistaprint:{$:0},viva:{$:0},vivo:{$:0},vlaanderen:{$:0},vodka:{$:0},volkswagen:{$:0},volvo:{$:0},vote:{$:0},voting:{$:0},voto:{$:0},voyage:{$:0},vuelos:{$:0},wales:{$:0},walmart:{$:0},walter:{$:0},wang:{$:0},wanggou:{$:0},warman:{$:0},watch:{$:0},watches:{$:0},weather:{$:0},weatherchannel:{$:0},webcam:{$:0},weber:{$:0},website:{$:0},wed:{$:0},wedding:{$:0},weibo:{$:0},weir:{$:0},whoswho:{$:0},wien:{$:0},wiki:{$:0},williamhill:{$:0},win:{$:0},windows:{$:0},wine:{$:0},winners:{$:0},wme:{$:0},wolterskluwer:{$:0},woodside:{$:0},work:{$:0},works:{$:0},world:{$:0},wow:{$:0},wtc:{$:0},wtf:{$:0},xbox:{$:0},xerox:{$:0},xfinity:{$:0},xihuan:{$:0},xin:{$:0},"xn--11b4c3d":{$:0},"xn--1ck2e1b":{$:0},"xn--1qqw23a":{$:0},"xn--30rr7y":{$:0},"xn--3bst00m":{$:0},"xn--3ds443g":{$:0},"xn--3oq18vl8pn36a":{$:0},"xn--3pxu8k":{$:0},"xn--42c2d9a":{$:0},"xn--45q11c":{$:0},"xn--4gbrim":{$:0},"xn--55qw42g":{$:0},"xn--55qx5d":{$:0},"xn--5su34j936bgsg":{$:0},"xn--5tzm5g":{$:0},"xn--6frz82g":{$:0},"xn--6qq986b3xl":{$:0},"xn--80adxhks":{$:0},"xn--80aqecdr1a":{$:0},"xn--80asehdb":{$:0},"xn--80aswg":{$:0},"xn--8y0a063a":{$:0},"xn--9dbq2a":{$:0},"xn--9et52u":{$:0},"xn--9krt00a":{$:0},"xn--b4w605ferd":{$:0},"xn--bck1b9a5dre4c":{$:0},"xn--c1avg":{$:0},"xn--c2br7g":{$:0},"xn--cck2b3b":{$:0},"xn--cg4bki":{$:0},"xn--czr694b":{$:0},"xn--czrs0t":{$:0},"xn--czru2d":{$:0},"xn--d1acj3b":{$:0},"xn--eckvdtc9d":{$:0},"xn--efvy88h":{$:0},"xn--estv75g":{$:0},"xn--fct429k":{$:0},"xn--fhbei":{$:0},"xn--fiq228c5hs":{$:0},"xn--fiq64b":{$:0},"xn--fjq720a":{$:0},"xn--flw351e":{$:0},"xn--fzys8d69uvgm":{$:0},"xn--g2xx48c":{$:0},"xn--gckr3f0f":{$:0},"xn--gk3at1e":{$:0},"xn--hxt814e":{$:0},"xn--i1b6b1a6a2e":{$:0},"xn--imr513n":{$:0},"xn--io0a7i":{$:0},"xn--j1aef":{$:0},"xn--jlq61u9w7b":{$:0},"xn--jvr189m":{$:0},"xn--kcrx77d1x4a":{$:0},"xn--kpu716f":{$:0},"xn--kput3i":{$:0},"xn--mgba3a3ejt":{$:0},"xn--mgba7c0bbn0a":{$:0},"xn--mgbaakc7dvf":{$:0},"xn--mgbab2bd":{$:0},"xn--mgbb9fbpob":{$:0},"xn--mgbca7dzdo":{$:0},"xn--mgbi4ecexp":{$:0},"xn--mgbt3dhd":{$:0},"xn--mk1bu44c":{$:0},"xn--mxtq1m":{$:0},"xn--ngbc5azd":{$:0},"xn--ngbe9e0a":{$:0},"xn--ngbrx":{$:0},"xn--nqv7f":{$:0},"xn--nqv7fs00ema":{$:0},"xn--nyqy26a":{$:0},"xn--p1acf":{$:0},"xn--pbt977c":{$:0},"xn--pssy2u":{$:0},"xn--q9jyb4c":{$:0},"xn--qcka1pmc":{$:0},"xn--rhqv96g":{$:0},"xn--rovu88b":{$:0},"xn--ses554g":{$:0},"xn--t60b56a":{$:0},"xn--tckwe":{$:0},"xn--tiq49xqyj":{$:0},"xn--unup4y":{$:0},"xn--vermgensberater-ctb":{$:0},"xn--vermgensberatung-pwb":{$:0},"xn--vhquv":{$:0},"xn--vuq861b":{$:0},"xn--w4r85el8fhu5dnra":{$:0},"xn--w4rs40l":{$:0},"xn--xhq521b":{$:0},"xn--zfr164b":{$:0},xperia:{$:0},xyz:{$:0,blogsite:{$:0},fhapp:{$:0}},yachts:{$:0},yahoo:{$:0},yamaxun:{$:0},yandex:{$:0},yodobashi:{$:0},yoga:{$:0},yokohama:{$:0},you:{$:0},youtube:{$:0},yun:{$:0},zappos:{$:0},zara:{$:0},zero:{$:0},zip:{$:0},zippo:{$:0},zone:{$:0,triton:{"*":{$:0}},lima:{$:0}},zuerich:{$:0}}}},{}]},{},[1])(1)});
;
/* global pysOptions */


! function ($, options) {
    if (options.debug) {
        console.log('PYS:', options);
    }
    var uniqueId = {};

    let gtm_variables = {};
    let gtm_datalayername = "dynamicVariable";

    var domain = '';
    if(options.hasOwnProperty("track_cookie_for_subdomains") && options.track_cookie_for_subdomains) {
        domain = getRootDomain(true);
    }

    var dummyPinterest = function () {

        /**
         * Public API
         */
        return {
            isEnabled: function () {},
            disable: function () {},
            loadPixel: function () {},
            fireEvent: function (name, data) {
                return false;
            },
            onCommentEvent: function () {},
            onDownloadEvent: function (params) {},
            onFormEvent: function (params) {},
            onWooAddToCartOnButtonEvent: function (product_id) {},
            onWooAddToCartOnSingleEvent: function (product_id, qty, is_variable, is_external, $form) {},
            onWooRemoveFromCartEvent: function (cart_item_hash) {},
            onEddAddToCartOnButtonEvent: function (download_id, price_index, qty) {},
            onEddRemoveFromCartEvent: function (item) {},
            onPageScroll: function (event) {},
            onTime: function (event) {},

        }

    }();

    var dummyBing = function () {

        /**
         * Public API
         */
        return {
            isEnabled: function () {},
            disable: function () {},
            loadPixel: function () {},
            fireEvent: function (name, data) {
                return false;
            },
            onAdSenseEvent: function () {},
            onClickEvent: function (params) {},
            onWatchVideo: function (params) {},
            onCommentEvent: function () {},
            onFormEvent: function (params) {},
            onDownloadEvent: function (params) {},
            onWooAddToCartOnButtonEvent: function (product_id) {},
            onWooAddToCartOnSingleEvent: function (product_id, qty, is_variable, is_external, $form) {},
            onWooRemoveFromCartEvent: function (cart_item_hash) {},
            onWooAffiliateEvent: function (product_id) {},
            onWooPayPalEvent: function () {},
            onEddAddToCartOnButtonEvent: function (download_id, price_index, qty) {},
            onEddRemoveFromCartEvent: function (item) {},
            onPageScroll: function (event) {},
            onTime: function (event) {},
        }

    }();

    var Utils = function (options) {

        var Pinterest = dummyPinterest;

        var Bing = dummyBing;

        var gtag_loaded = false;

        var gtm_loaded = false;

        let isNewSession = checkSession();

        var utmTerms = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];

        var utmId = ['fbadid', 'gadid', 'padid', 'bingid'];

        let dataLayerName = 'dataLayerPYS';

        let GTMdataLayerName = 'dataLayer';

        function validateEmail(email) {
            var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
            return re.test(email);
        }
        function getDomain(url) {

            url = url.replace(/(https?:\/\/)?(www.)?/i, '');

            if (url.indexOf('/') !== -1) {
                return url.split('/')[0];
            }

            return url;
        }
        function loadPixels() {

            if (!options.gdpr.all_disabled_by_api) {

                if (!options.gdpr.facebook_disabled_by_api) {
                    Facebook.loadPixel();
                }

                if (!options.gdpr.analytics_disabled_by_api) {
                    Analytics.loadPixel();
                }

                if (!options.gdpr.analytics_disabled_by_api) {
                    GTM.loadPixel();
                }

                if (!options.gdpr.pinterest_disabled_by_api) {
                    Pinterest.loadPixel();
                }

                if (!options.gdpr.bing_disabled_by_api) {
                    Bing.loadPixel();
                }
            }
            if (options.gdpr.consent_magic_integration_enabled && typeof CS_Data !== "undefined") {
                if (typeof CS_Data.cs_google_analytics_consent_mode !== "undefined" && CS_Data.cs_google_analytics_consent_mode == 1) {
                    Analytics.loadPixel();
                }
            }

        }

        function checkSession() {
            if( Cookies.get('pys_start_session') === undefined ||
                Cookies.get('pys_session_limit') === undefined) {
                firstVisit = true;
                return true
            }
            return false

        }

        function getTrafficSource() {

            try {

                let referrer = document.referrer.toString(),
                    source;

                let direct = referrer.length === 0;
                let internal = direct ? false : referrer.indexOf(options.siteUrl) === 0;
                let external = !direct && !internal;

                if (external === false) {
                    source = 'direct';
                } else {
                    source = referrer;
                }

                if (source !== 'direct') {
                    // leave only domain (Issue #70)
                    return getDomain(source);
                } else {
                    return source;
                }

            } catch (e) {
                console.error(e);
                return 'direct';
            }

        }

        /**
         * Return query variables object with where property name is query variable
         * and property value is query variable value.
         */
        function getQueryVars() {

            try {

                var result = {},
                    tmp = [];

                window.location.search
                    .substr(1)
                    .split("&")
                    .forEach(function (item) {

                        tmp = item.split('=');

                        if (tmp.length > 1) {
                            result[tmp[0]] = tmp[1];
                        }

                    });

                return result;

            } catch (e) {
                console.error(e);
                return {};
            }

        }


        function getLandingPageValue() {
            let name = "pys_landing_page"
            if(options.visit_data_model === "last_visit") {
                name = "last_pys_landing_page"
            }
            if(Cookies.get(name) && Cookies.get(name) !== "undefined") {
                return Cookies.get(name);
            }
            else if(options.hasOwnProperty("tracking_analytics") && options.tracking_analytics.TrafficLanding){
                return options.tracking_analytics.TrafficLanding;
            } else{
                return "";
            }
        }
        function getTrafficSourceValue() {
            let name = "pysTrafficSource"
            if(options.visit_data_model === "last_visit") {
                name = "last_pysTrafficSource"
            }
            if(Cookies.get(name) && Cookies.get(name) !== "undefined") {
                return Cookies.get(name);
            }
            else if(options.hasOwnProperty("tracking_analytics") && options.tracking_analytics.TrafficSource){
                return options.tracking_analytics.TrafficSource;
            } else{
                return "";
            }
        }

        function getUTMId(useLast = false) {
            try {
                let cookiePrefix = 'pys_'
                let terms = [];
                if (useLast) {
                    cookiePrefix = 'last_pys_'
                }
                $.each(utmId, function (index, name) {
                    if (Cookies.get(cookiePrefix + name)) {
                        terms[name] = Cookies.get(cookiePrefix + name)
                    }
                    else if(options.hasOwnProperty("tracking_analytics") && options.tracking_analytics.TrafficUtmsId[name]) {
                        terms[name] = filterEmails(options.tracking_analytics.TrafficUtmsId[name])
                    }
                });
                return terms;
            } catch (e) {
                console.error(e);
                return [];
            }
        }
        /**
         * Return UTM terms from request query variables or from cookies.
         */
        function getUTMs(useLast = false) {

            try {
                let cookiePrefix = 'pys_'
                if(useLast) {
                    cookiePrefix = 'last_pys_'
                }
                let terms = [];
                $.each(utmTerms, function (index, name) {
                    if (Cookies.get(cookiePrefix + name)) {
                        let value = Cookies.get(cookiePrefix + name);
                        terms[name] = filterEmails(value); // do not allow email in request params (Issue #70)
                    }
                    else if(options.hasOwnProperty("tracking_analytics") && options.tracking_analytics.TrafficUtms[name]) {
                        terms[name] = filterEmails(options.tracking_analytics.TrafficUtms[name])
                    }
                });

                return terms;

            } catch (e) {
                console.error(e);
                return [];
            }

        }

        function getDateTime() {
            var dateTime = new Array();
            var date = new Date(),
                days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
                months = ['January', 'February', 'March', 'April', 'May', 'June',
                    'July', 'August', 'September', 'October', 'November', 'December'
                ],
                hours = ['00-01', '01-02', '02-03', '03-04', '04-05', '05-06', '06-07', '07-08',
                    '08-09', '09-10', '10-11', '11-12', '12-13', '13-14', '14-15', '15-16', '16-17',
                    '17-18', '18-19', '19-20', '20-21', '21-22', '22-23', '23-24'
                ];
            dateTime.push(hours[date.getHours()]);
            dateTime.push(days[date.getDay()]);
            dateTime.push(months[date.getMonth()]);
            return dateTime;
        }

        function filterEmails(value) {
            return validateEmail(value) ? undefined : value;
        }

        /**
         * PUBLIC API
         */
        return {
            PRODUCT_SIMPLE : 0,
            PRODUCT_VARIABLE : 1,
            PRODUCT_BUNDLE : 2,
            PRODUCT_GROUPED : 3,
            utmTerms : utmTerms,
            utmId : utmId,
            fireEventForAllPixel:function(functionName,events){
                if (events.hasOwnProperty(Facebook.tag()))
                    Facebook[functionName](events[Facebook.tag()]);
                if (events.hasOwnProperty(Analytics.tag()))
                    Analytics[functionName](events[Analytics.tag()]);
                if (events.hasOwnProperty(Pinterest.tag()))
                    Pinterest[functionName](events[Pinterest.tag()]);
                if (events.hasOwnProperty(Bing.tag()))
                    Bing[functionName](events[Bing.tag()]);

                if (events.hasOwnProperty(GTM.tag()))
                    GTM[functionName](events[GTM.tag()]);
            },

            setupPinterestObject: function () {
                Pinterest = window.pys.Pinterest || Pinterest;
                return Pinterest;
            },

            setupBingObject: function () {
                Bing = window.pys.Bing || Bing;
                return Bing;
            },

            // Clone all object members to another and return it
            copyProperties: function (from, to) {
                for (var key in from) {
                    if("function" == typeof from[key]) {
                        continue;
                    }
                    to[key] = from[key];
                }
                return to;
            },

            manageCookies: function () {

                if (options.gdpr.cookiebot_integration_enabled && typeof Cookiebot !== 'undefined') {
                    if (Cookiebot.consented === false && !Cookiebot.consent['marketing'] && !Cookiebot.consent['statistics']) {
                        return;
                    }
                }
                let cm_consent_not_expressed = false;
                if ( options.gdpr.consent_magic_integration_enabled && window.CS_Data !== undefined && window.CS_Data.cs_refresh_after_consent == 1 ) {
                    if ( Cookies.get( 'cs_viewed_cookie_policy' ) === undefined ) {
                        cm_consent_not_expressed = true;
                    }
                }

                if( !cm_consent_not_expressed && isNewSession && !options.cookie.disabled_all_cookie && !options.cookie.disabled_start_session_cookie) {
                    let duration = options.last_visit_duration * 60000
                    var now = new Date();
                    now.setTime(now.getTime() + duration);
                    Cookies.set('pys_session_limit', true,{ expires: now, path: '/',domain: domain })
                    Cookies.set('pys_start_session', true,{path: '/',domain: domain});
                }

                if (options.ajaxForServerEvent && !Cookies.get('pbid') && Facebook.isEnabled()) {
                    jQuery.ajax({
                        url: options.ajaxUrl,
                        dataType: 'json',
                        data: {
                            action: 'pys_get_pbid'
                        },
                        success: function (res) {
                            if (res.data && res.data.pbid != false && options.send_external_id) {
                                if(!(options.cookie.disabled_all_cookie || options.cookie.externalID_disabled_by_api)){
                                    var expires = parseInt(options.external_id_expire || 180);
                                    Cookies.set('pbid', res.data.pbid, { expires: expires, path: '/',domain: domain });
                                }

                                if(options.hasOwnProperty('facebook')) {
                                    options.facebook.advancedMatching = {
                                        ...options.facebook.advancedMatching,  // распыляем текущие значения advancedMatching
                                        external_id: res.data.pbid
                                    };
                                }
                            }
                        }
                    });
                } else if (Cookies.get('pbid') && Facebook.isEnabled()){
                    if(Facebook.advancedMatching() && Facebook.advancedMatching().external_id && !(options.cookie.disabled_all_cookie || options.cookie.externalID_disabled_by_api)){
                        let expires = parseInt(options.external_id_expire || 180);
                        Cookies.set('pbid', Facebook.advancedMatching().external_id, { expires: expires, path: '/',domain: domain });
                    }
                }

                let expires = parseInt(options.cookie_duration); //  days
                let queryVars = getQueryVars();
                let landing = window.location.href.split('?')[0];
                try {
                    // save data for first visit
                    if(Cookies.get('pys_first_visit') === undefined && (!options.cookie.disabled_all_cookie)) {

                        if(!options.cookie.disabled_first_visit_cookie)
                        {
                            Cookies.set('pys_first_visit', true, { expires: expires, path: '/',domain: domain });
                        }
                        else {
                            Cookies.remove('pys_first_visit')
                        }

                        if(!options.cookie.disabled_trafficsource_cookie)
                        {
                            Cookies.set('pysTrafficSource', getTrafficSource(), { expires: expires,path: '/',domain: domain });
                        }
                        else {
                            Cookies.remove('pysTrafficSource')
                        }

                        if(!options.cookie.disabled_landing_page_cookie)
                        {
                            Cookies.set('pys_landing_page',landing,{ expires: expires,path: '/',domain: domain });
                        }
                        else {
                            Cookies.remove('pys_landing_page')
                        }

                        if(!options.cookie.disabled_utmTerms_cookie)
                        {
                            $.each(utmTerms, function (index, name) {
                                if (queryVars.hasOwnProperty(name)) {
                                    Cookies.set('pys_' + name, queryVars[name], { expires: expires,path: '/',domain: domain });
                                } else {
                                    Cookies.remove('pys_' + name)
                                }
                            });
                        }
                        else {
                            $.each(utmTerms, function (index, name) {
                                Cookies.remove('pys_' + name)
                            });
                        }

                        if(!options.cookie.disabled_utmId_cookie)
                        {
                            $.each(utmId,function(index,name) {
                                if (queryVars.hasOwnProperty(name)) {
                                    Cookies.set('pys_' + name, queryVars[name], { expires: expires,path: '/',domain: domain });
                                } else {
                                    Cookies.remove('pys_' + name)
                                }
                            })
                        }
                        else {
                            $.each(utmId, function (index, name) {
                                Cookies.remove('pys_' + name)
                            });
                        }
                    }

                    // save data for last visit if it new session
                    if(isNewSession && (!options.cookie.disabled_all_cookie)) {
                        if(!options.cookie.disabled_trafficsource_cookie)
                        {
                            Cookies.set('last_pysTrafficSource', getTrafficSource(), { expires: expires,path: '/',domain: domain });
                        }
                        else {
                            Cookies.remove('last_pysTrafficSource')
                        }

                        if(!options.cookie.disabled_landing_page_cookie)
                        {
                            Cookies.set('last_pys_landing_page',landing,{ expires: expires,path: '/',domain: domain });
                        }
                        else {
                            Cookies.remove('last_pys_landing_page')
                        }

                        if(!options.cookie.disabled_utmTerms_cookie)
                        {
                            $.each(utmTerms, function (index, name) {
                                if (queryVars.hasOwnProperty(name)) {
                                    Cookies.set('last_pys_' + name, queryVars[name], { expires: expires,path: '/',domain: domain });
                                } else {
                                    Cookies.remove('last_pys_' + name)
                                }
                            });
                        }
                        else {
                            $.each(utmTerms, function (index, name) {
                                Cookies.remove('last_pys_' + name)
                            });
                        }

                        if(!options.cookie.disabled_utmId_cookie)
                        {
                            $.each(utmId,function(index,name) {
                                if (queryVars.hasOwnProperty(name)) {
                                    Cookies.set('last_pys_' + name, queryVars[name], { expires: expires,path: '/',domain: domain });
                                } else {
                                    Cookies.remove('last_pys_' + name)
                                }
                            })
                        }
                        else {
                            $.each(utmId, function (index, name) {
                                Cookies.remove('last_pys_' + name)
                            });
                        }

                    }
                    if(options.cookie.disabled_start_session_cookie) {
                        Cookies.remove('pys_start_session')
                        Cookies.remove('pys_session_limit')
                    }
                    if(options.cookie.disabled_all_cookie)
                    {
                        Cookies.remove('pys_first_visit')
                        Cookies.remove('pysTrafficSource')
                        Cookies.remove('pys_landing_page')
                        Cookies.remove('last_pys_landing_page')
                        Cookies.remove('last_pysTrafficSource')
                        Cookies.remove('pys_start_session')
                        Cookies.remove('pys_session_limit')
                        $.each(Utils.utmTerms, function (index, name) {
                            Cookies.remove('pys_' + name)
                        });
                        $.each(Utils.utmId,function(index,name) {
                            Cookies.remove('pys_' + name)
                        })
                        $.each(Utils.utmTerms, function (index, name) {
                            Cookies.remove('last_pys_' + name)
                        });
                        $.each(Utils.utmId,function(index,name) {
                            Cookies.remove('last_pys_' + name)
                        });
                    }
                } catch (e) {
                    console.error(e);
                }
            },
            /**
             * Generate unique ID
             */
            generateUniqueId : function (event) {
                if(event.eventID.length == 0 || (event.type == "static" && options.ajaxForServerStaticEvent) || (event.type !== "static" && options.ajaxForServerEvent)) {
                    let idKey = event.hasOwnProperty('custom_event_post_id') ? event.custom_event_post_id : event.e_id;
                    if (!uniqueId.hasOwnProperty(idKey)) {
                        uniqueId[idKey] = pys_generate_token();
                    }
                    return uniqueId[idKey];
                }
                else if(event.eventID.length !== 0)
                {
                    return event.eventID;
                }
            },
            sendServerAjaxRequest : function(url, data) {
                jQuery.ajax({
                    type: 'POST',
                    url: url,
                    data: data,
                    headers: {
                        'Cache-Control': 'no-cache'
                    },
                    success: function () {},
                });
            },
            // clone object
            clone: function(obj) {
                var copy;

                // Handle the 3 simple types, and null or undefined
                if (null == obj || "object" != typeof obj) return obj;

                // Handle Date
                if (obj instanceof Date) {
                    copy = new Date();
                    copy.setTime(obj.getTime());
                    return copy;
                }

                // Handle Array
                if (obj instanceof Array) {
                    copy = [];
                    for (var i = 0, len = obj.length; i < len; i++) {
                        if("function" == typeof obj[i]) {
                            continue;
                        }
                        copy[i] = Utils.clone(obj[i]);
                    }
                    return copy;
                }

                // Handle Object
                if (obj instanceof Object) {
                    copy = {};
                    for (var attr in obj) {
                        if (obj.hasOwnProperty(attr)) {
                            if("function" == typeof obj[attr]) {
                                continue;
                            }
                            copy[attr] = Utils.clone(obj[attr]);
                        }
                    }
                    return copy;
                }

                return obj;
            },

            // Returns array of elements with given tag name
            getTagsAsArray: function (tag) {
                return [].slice.call(document.getElementsByTagName(tag));
            },

            getRequestParams: function () {
                return [];
            },

            /**
             * CUSTOM EVENTS
             */

            setupMouseOverClickEvents: function (eventId, triggers) {

                // Non-default binding used to avoid situations when some code in external js
                // stopping events propagation, eg. returns false, and our handler will never called
                document.addEventListener('mouseover', function(event) {
                    var matchedElements = Array.from(document.querySelectorAll(triggers));
                    var clickedElement = event.target;
                    var closestMatch = clickedElement.closest(triggers);
                    if (matchedElements.includes(clickedElement) || closestMatch){
                        if (event.target.classList.contains('pys-mouse-over-' + eventId)) {
                            return true;
                        } else {
                            event.target.classList.add('pys-mouse-over-' + eventId);
                        }

                        Utils.fireTriggerEvent(eventId);
                    }
                });

            },

            setupCSSClickEvents: function (eventId, triggers) {
                // Non-default binding used to avoid situations when some code in external js
                // stopping events propagation, eg. returns false, and our handler will never called
                document.addEventListener('click', function(event) {
                    let matchedElements = Array.from(document.querySelectorAll(triggers)),
                        clickedElement = event.target,
                        closestMatch = clickedElement.closest(triggers);

                    if (matchedElements.includes(clickedElement) || closestMatch){
                        Utils.fireTriggerEvent(eventId);
                    }
                }, true);
            },

            setupURLClickEvents: function () {

                if( !options.triggerEventTypes.hasOwnProperty('url_click') ) {
                    return;
                }
                // Non-default binding used to avoid situations when some code in external js
                // stopping events propagation, eg. returns false, and our handler will never called
                $('a[data-pys-event-id]').onFirst('click', function (evt) {

                    $(this).attr('data-pys-event-id').split(',').forEach(function (eventId) {

                        eventId = parseInt(eventId);

                        if (isNaN(eventId) === false) {
                            Utils.fireTriggerEvent(eventId);
                        }

                    });

                });


            },

            setupScrollPosEvents: function (eventId, triggers) {

                var scrollPosThresholds = {},
                    docHeight = $(document).height() - $(window).height();

                // convert % to absolute positions
                $.each(triggers, function (index, scrollPos) {

                    // convert % to pixels
                    scrollPos = docHeight * scrollPos / 100;
                    scrollPos = Math.round(scrollPos);

                    scrollPosThresholds[scrollPos] = eventId;

                });

                $(document).on("scroll",function () {

                    var scrollPos = $(window).scrollTop();

                    $.each(scrollPosThresholds, function (threshold, eventId) {

                        // position has not reached yes
                        if (scrollPos <= threshold) {
                            return true;
                        }

                        // fire event only once
                        if (eventId === null) {
                            return true;
                        } else {
                            scrollPosThresholds[threshold] = null;
                        }

                        Utils.fireTriggerEvent(eventId);

                    });

                });


            },
            setupCommentEvents : function (eventId,triggers) {
                $('form.comment-form').on("submit",function () {
                    Utils.fireTriggerEvent(eventId);
                });
            },

            /**
             * Events
             */

            fireTriggerEvent: function (eventId) {

                if (!options.triggerEvents.hasOwnProperty(eventId)) {
                    return;
                }

                var event = {};
                var events = options.triggerEvents[eventId];

                if (events.hasOwnProperty('facebook')) {
                    event = events.facebook;
                    Facebook.fireEvent(event.name, event);
                }

                if (events.hasOwnProperty('ga')) {
                    event = events.ga;
                    Analytics.fireEvent(event.name, event);
                }

                if (events.hasOwnProperty('pinterest')) {
                    event = events.pinterest;
                    Pinterest.fireEvent(event.name, event);
                }

                if (events.hasOwnProperty('bing')) {
                    event = events.bing;
                    Bing.fireEvent(event.name, event);
                }

                if (events.hasOwnProperty('gtm')) {
                    event = events.gtm;
                    GTM.fireEvent(event.name, event);
                }
            },

            fireStaticEvents: function (pixel) {

                if (options.staticEvents.hasOwnProperty(pixel)) {

                    $.each(options.staticEvents[pixel], function (eventName, events) {
                        $.each(events, function (index, eventData) {

                            eventData.fired = eventData.fired || false;

                            if (!eventData.fired) {

                                var fired = false;

                                // fire event
                                if ('facebook' === pixel) {
                                    fired = Facebook.fireEvent(eventData.name, eventData);
                                } else if ('ga' === pixel) {
                                    fired = Analytics.fireEvent(eventData.name, eventData);
                                } else if ('pinterest' === pixel) {
                                    fired = Pinterest.fireEvent(eventData.name, eventData);
                                } else if ('bing' === pixel) {
                                    fired = Bing.fireEvent(eventData.name, eventData);
                                } else if ('gtm' === pixel) {
                                    fired = GTM.fireEvent(eventData.name, eventData);
                                }

                                // prevent event double event firing
                                eventData.fired = fired;

                            }

                        });
                    });

                }

            },

            /**
             * Load tag's JS
             *
             * @link: https://developers.google.com/analytics/devguides/collection/gtagjs/
             * @link: https://developers.google.com/analytics/devguides/collection/gtagjs/custom-dims-mets
             */
            loadGoogleTag: function (id) {

                if (!gtag_loaded) {
                    let dataLayerName = this.dataLayerName;
                    if(options.hasOwnProperty('GATags')){
                        switch (options.GATags.ga_datalayer_type) {
                            case 'default':
                                dataLayerName = 'dataLayerPYS';
                                break;
                            case 'custom':
                                dataLayerName = options.GATags.ga_datalayer_name;
                                break;
                            default:
                                dataLayerName = 'dataLayer';
                        }
                    }
                    this.dataLayerName = dataLayerName;
                    (function (window, document, src) {
                        var a = document.createElement('script'),
                            m = document.getElementsByTagName('script')[0];
                        a.async = 1;
                        a.src = src;
                        m.parentNode.insertBefore(a, m);
                    })(window, document, '//www.googletagmanager.com/gtag/js?id=' + id+'&l='+this.dataLayerName);

                    window[dataLayerName] = window[dataLayerName] || [];
                    window.gtag = window.gtag || function gtag() {
                        window[dataLayerName].push(arguments);
                    };

                    if ( options.google_consent_mode ) {
                        let data = {};
                        data[ 'analytics_storage' ] = options.gdpr.analytics_storage.enabled ? options.gdpr.analytics_storage.value : 'granted';
                        data[ 'ad_storage' ] = options.gdpr.ad_storage.enabled ? options.gdpr.ad_storage.value : 'granted';
                        data[ 'ad_user_data' ] = options.gdpr.ad_user_data.enabled ? options.gdpr.ad_user_data.value : 'granted';
                        data[ 'ad_personalization' ] = options.gdpr.ad_personalization.enabled ? options.gdpr.ad_personalization.value : 'granted';

                        this.loadDefaultConsent( 'consent', 'default', data );
                    }

                    gtag('js', new Date());
                    gtag_loaded = true;

                }

            },

            loadDefaultConsent: function() {
                window[ this.dataLayerName ].push( arguments );
            },

            loadGTMScript: function (id = '') {
                const domain = options.gtm.gtm_container_domain ?? 'www.googletagmanager.com';
                const loader = options.gtm.gtm_container_identifier ?? 'gtm';
                const gtm_auth = options.gtm.gtm_auth ?? ''; // Set this if needed
                const gtm_preview = options.gtm.gtm_preview ?? ''; // Set this if needed
                const datalayer_name = options.gtm.gtm_dataLayer_name ?? 'dataLayer';

                window[ datalayer_name ] = window[ datalayer_name ] || [];
                window.gtag = window.gtag || function gtag() {
                    window[ datalayer_name ].push( arguments );
                };

                if ( options.google_consent_mode ) {
                    let data = {};
                    data[ 'analytics_storage' ] = options.gdpr.analytics_storage.enabled ? options.gdpr.analytics_storage.value : 'granted';
                    data[ 'ad_storage' ] = options.gdpr.ad_storage.enabled ? options.gdpr.ad_storage.value : 'granted';
                    data[ 'ad_user_data' ] = options.gdpr.ad_user_data.enabled ? options.gdpr.ad_user_data.value : 'granted';
                    data[ 'ad_personalization' ] = options.gdpr.ad_personalization.enabled ? options.gdpr.ad_personalization.value : 'granted';

                    this.GTMdataLayerName = datalayer_name;
                    this.loadDefaultGTMConsent( 'consent', 'default', data );
                }

                (function(w, d, s, l, i) {
                    w[l] = w[l] || [];
                    w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
                    const f = d.getElementsByTagName(s)[0];
                    const j = d.createElement(s);
                    const dl = l !== 'dataLayer' ? '&l=' + l : '';
                    j.async = true;
                    j.src = 'https://' + domain + '/' + loader + '.js?id=' + i + dl;
                    if (gtm_auth && gtm_preview) {
                        j.src += '&gtm_auth=' + gtm_auth + '&gtm_preview=' + gtm_preview + '&gtm_cookies_win=x';
                    }
                    f.parentNode.insertBefore(j, f);
                })(window, document, 'script', datalayer_name, id);

            },

            loadDefaultGTMConsent: function() {
                window[ this.GTMdataLayerName ].push( arguments );
            },

            /**
             * GDPR
             */

            loadPixels: function () {

                if (options.gdpr.ajax_enabled && !options.gdpr.consent_magic_integration_enabled) {

                    // retrieves actual PYS GDPR filters values which allow to avoid cache issues
                    $.get({
                        url: options.ajaxUrl,
                        dataType: 'json',
                        data: {
                            action: 'pys_get_gdpr_filters_values'
                        },
                        success: function (res) {

                            if (res.success) {

                                options.gdpr.all_disabled_by_api = res.data.all_disabled_by_api;
                                options.gdpr.facebook_disabled_by_api = res.data.facebook_disabled_by_api;
                                options.gdpr.analytics_disabled_by_api = res.data.analytics_disabled_by_api;
                                options.gdpr.google_ads_disabled_by_api = res.data.google_ads_disabled_by_api;
                                options.gdpr.pinterest_disabled_by_api = res.data.pinterest_disabled_by_api;
                                options.gdpr.bing_disabled_by_api = res.data.bing_disabled_by_api;

                                options.cookie.externalID_disabled_by_api = res.data.externalID_disabled_by_api;
                                options.cookie.disabled_all_cookie = res.data.disabled_all_cookie;
                                options.cookie.disabled_advanced_form_data_cookie = res.data.disabled_advanced_form_data_cookie;
                                options.cookie.disabled_landing_page_cookie = res.data.disabled_landing_page_cookie;
                                options.cookie.disabled_first_visit_cookie = res.data.disabled_first_visit_cookie;
                                options.cookie.disabled_trafficsource_cookie = res.data.disabled_trafficsource_cookie;
                                options.cookie.disabled_utmTerms_cookie = res.data.disabled_utmTerms_cookie;
                                options.cookie.disabled_utmId_cookie = res.data.disabled_utmId_cookie;
                            }

                            loadPixels();

                        }
                    });

                } else {
                    loadPixels();
                }

            },

            consentGiven: function (pixel) {

                /**
                 * ConsentMagic
                 */
                if ( options.gdpr.consent_magic_integration_enabled && typeof CS_Data !== "undefined" ) {

                    let test_prefix = CS_Data.test_prefix;
                    if (
                        ( ( typeof CS_Data.cs_google_consent_mode_enabled !== "undefined" && CS_Data.cs_google_consent_mode_enabled == 1 ) && ( pixel == 'analytics' || pixel == 'google_ads' ) )
                        || ( typeof CS_Data.cs_meta_ldu_mode !== "undefined" && CS_Data.cs_meta_ldu_mode && pixel == 'facebook' )
                        || ( typeof CS_Data.cs_bing_consent_mode !== "undefined" && CS_Data.cs_bing_consent_mode.ad_storage.enabled && pixel == 'bing' )
                    ) {
                        if ( CS_Data.cs_cache_enabled == 0 || ( CS_Data.cs_cache_enabled == 1 && window.CS_Cache && window.CS_Cache.check_status ) ) {
                            return true;
                        } else {
                            return false;
                        }
                    }

                    if( pixel == 'facebook' && ( CS_Data.cs_script_cat.facebook == 0 || CS_Data.cs_script_cat.facebook == CS_Data.cs_necessary_cat_id ) ) {
                        return true;
                    } else if( pixel == 'bing' && ( CS_Data.cs_script_cat.bing == 0 || CS_Data.cs_script_cat.bing == CS_Data.cs_necessary_cat_id ) ) {
                        return true;
                    } else if( pixel == 'analytics' && ( CS_Data.cs_script_cat.analytics == 0 || CS_Data.cs_script_cat.analytics == CS_Data.cs_necessary_cat_id ) ) {
                        return true;
                    } else if( pixel == 'google_ads' && ( CS_Data.cs_script_cat.gads == 0 || CS_Data.cs_script_cat.gads == CS_Data.cs_necessary_cat_id ) ) {
                        return true;
                    } else if( pixel == 'pinterest' && ( CS_Data.cs_script_cat.pinterest == 0 || CS_Data.cs_script_cat.pinterest == CS_Data.cs_necessary_cat_id ) ) {
                        return true;
                    } else if( pixel == 'tiktok' && ( CS_Data.cs_script_cat.tiktok == 0 || CS_Data.cs_script_cat.tiktok == CS_Data.cs_necessary_cat_id ) ) {
                        return true;
                    }

                    let substring = "cs_enabled_cookie_term",
                        theCookies = document.cookie.split( ';' );

                    for ( let i = 1; i <= theCookies.length; i++ ) {
                        if ( theCookies[ i - 1 ].indexOf( substring ) !== -1 ) {
                            let categoryCookie = theCookies[ i - 1 ].replace( 'cs_enabled_cookie_term' + test_prefix + '_', '' );
                            categoryCookie = Number( categoryCookie.replace( /\D+/g, "" ) );
                            let cs_cookie_val = Cookies.get( 'cs_enabled_cookie_term' + test_prefix + '_' + categoryCookie );

                            if ( categoryCookie === CS_Data.cs_script_cat.facebook && pixel == 'facebook' ) {
                                return cs_cookie_val == 'yes';
                            } else if ( categoryCookie === CS_Data.cs_script_cat.bing && pixel == 'bing' ) {
                                return cs_cookie_val == 'yes';
                            } else if ( categoryCookie === CS_Data.cs_script_cat.analytics && pixel == 'analytics' ) {
                                return cs_cookie_val == 'yes';
                            } else if ( categoryCookie === CS_Data.cs_script_cat.gads && pixel == 'google_ads' ) {
                                return cs_cookie_val == 'yes';
                            } else if ( categoryCookie === CS_Data.cs_script_cat.pinterest && pixel == 'pinterest' ) {
                                return cs_cookie_val == 'yes';
                            } else if ( categoryCookie === CS_Data.cs_script_cat.tiktok && pixel == 'tiktok' ) {
                                return cs_cookie_val == 'yes';
                            }
                        }
                    }

                    return false;
                }

                /**
                 * Real Cookie Banner
                 */
                if(options.gdpr.real_cookie_banner_integration_enabled) {
                    var consentApi = window.consentApi;
                    if (consentApi) {
                        switch (pixel) {
                            case "analytics":
                                return consentApi.consentSync("http", "_ga", "*").cookieOptIn;
                            case "facebook":
                                return consentApi.consentSync("http", "_fbp", "*").cookieOptIn;
                            case "pinterest":
                                return consentApi.consentSync("http", "_pinterest_sess", ".pinterest.com").cookieOptIn;
                            default:
                                return true;
                        }
                    }
                }

                /**
                 * Cookiebot
                 */
                if (options.gdpr.cookiebot_integration_enabled && typeof Cookiebot !== 'undefined') {

                    var cookiebot_consent_category = options.gdpr['cookiebot_' + pixel + '_consent_category'];

                    if (options.gdpr[pixel + '_prior_consent_enabled']) {
                        if (Cookiebot.consented === true || Cookiebot.consent[cookiebot_consent_category]) {
                            return true;
                        }
                    } else {
                        if (Cookiebot.consent[cookiebot_consent_category]) {
                            return true;
                        }
                    }

                    return false;

                }

                /**
                 * Cookie Notice
                 */
                if (options.gdpr.cookie_notice_integration_enabled && typeof cnArgs !== 'undefined') {

                    var cn_cookie = Cookies.get(cnArgs.cookieName);

                    if (options.gdpr[pixel + '_prior_consent_enabled']) {
                        if (typeof cn_cookie === 'undefined' || cn_cookie === 'true') {
                            return true;
                        }
                    } else {
                        if (cn_cookie === 'true') {
                            return true;
                        }
                    }

                    return false;

                }

                /**
                 * Cookie Law Info
                 */
                if (options.gdpr.cookie_law_info_integration_enabled) {
                    var cli_cookie = Cookies.get('cookieyes-consent') ?? Cookies.get('wt_consent') ?? Cookies.get('viewed_cookie_policy');
                    if (options.gdpr[pixel + '_prior_consent_enabled']) {
                        if (typeof cli_cookie === 'undefined') return true;
                        if (
                            cli_cookie &&
                            (cli_cookie === Cookies.get('cookieyes-consent') || cli_cookie === Cookies.get('wt_consent'))
                        ) {
                            if (getCookieYes('analytics') === 'yes') {
                                return true;
                            }
                        } else if (cli_cookie && cli_cookie === Cookies.get('viewed_cookie_policy')) {
                            if (Cookies.get('viewed_cookie_policy') === 'yes') {
                                return true;
                            }
                        }
                    } else {
                        if (
                            cli_cookie &&
                            (cli_cookie === Cookies.get('cookieyes-consent') || cli_cookie === Cookies.get('wt_consent'))
                        ) {
                            if (getCookieYes('analytics') === 'yes') {
                                return true;
                            }
                        } else if (cli_cookie && cli_cookie === Cookies.get('viewed_cookie_policy')) {
                            if (Cookies.get('viewed_cookie_policy') === 'yes') {
                                return true;
                            }
                        }
                    }
                    return false;
                }

                return true;

            },

            setupGdprCallbacks: function () {
                /**
                 * ConsentMagic
                 */
                if (options.gdpr.consent_magic_integration_enabled && typeof CS_Data !== "undefined") {
                    let test_prefix = CS_Data.test_prefix,
                        cs_refresh_after_consent = false,
                        substring = "cs_enabled_cookie_term";

                    if (CS_Data.cs_refresh_after_consent == 1) {
                        cs_refresh_after_consent = CS_Data.cs_refresh_after_consent;
                    }

                    let consent_actions = function () {
                        let theCookies = document.cookie.split( ';' );

                        let consent = {
                            facebook: true,
                            ga: true,
                            google_ads: true,
                            tiktok: true,
                            bing: true,
                            pinterest: true,
                            gtm: true,
                        };

                        for (let i = 1 ; i <= theCookies.length; i++) {
                            if (theCookies[i-1].indexOf(substring) !== -1) {
                                let categoryCookie = theCookies[i-1].replace('cs_enabled_cookie_term'+test_prefix+'_','');
                                categoryCookie = Number(categoryCookie.replace(/\D+/g,""));
                                let cs_cookie_val = Cookies.get('cs_enabled_cookie_term'+test_prefix+'_'+categoryCookie);
                                if(cs_cookie_val == 'yes') {
                                    if ( ( categoryCookie === CS_Data.cs_script_cat.facebook ) || ( typeof CS_Data.cs_meta_ldu_mode !== "undefined" && CS_Data.cs_meta_ldu_mode ) ) {
                                        Facebook.loadPixel();
                                    }

                                    if ( categoryCookie === CS_Data.cs_script_cat.bing || ( typeof CS_Data.cs_bing_consent_mode !== "undefined" && CS_Data.cs_bing_consent_mode.ad_storage.enabled ) ) {
                                        Bing.loadPixel();
                                    }

                                    if (categoryCookie === CS_Data.cs_script_cat.analytics || (typeof CS_Data.cs_google_analytics_consent_mode !== "undefined" && CS_Data.cs_google_analytics_consent_mode == 1)) {

                                        Analytics.loadPixel();
                                    }

                                    if (categoryCookie === CS_Data.cs_script_cat.pinterest) {
                                        Pinterest.loadPixel();
                                    }
                                } else {
                                    if ( ( categoryCookie === CS_Data.cs_script_cat.facebook ) && ( typeof CS_Data.cs_meta_ldu_mode == "undefined" || !CS_Data.cs_meta_ldu_mode ) ) {
                                        Facebook.disable();
                                        consent.facebook = false;
                                    }

                                    if ( categoryCookie === CS_Data.cs_script_cat.bing && ( typeof CS_Data.cs_bing_consent_mode == "undefined" || !CS_Data.cs_bing_consent_mode.ad_storage.enabled ) ) {
                                        Bing.disable();
                                        consent.bing = false;
                                    }
                                    if (categoryCookie === CS_Data.cs_script_cat.analytics && (typeof CS_Data.cs_google_analytics_consent_mode == "undefined" || CS_Data.cs_google_analytics_consent_mode == 0)) {
                                        Analytics.disable();
                                        consent.ga = false;
                                        consent.gtm = false;
                                    }

                                    if (categoryCookie === CS_Data.cs_script_cat.pinterest) {
                                        Pinterest.disable();
                                        consent.pinterest = false;
                                    }
                                }
                                if (Cookies.get('cs_enabled_advanced_matching') == 'yes') {
                                    Facebook.loadPixel();
                                }
                            }
                        }
                        Utils.setupGDPRData( consent );
                    }

                    if (!cs_refresh_after_consent) {
                        consent_actions();

                        $(document).on('click','.cs_action_btn',function(e) {
                            e.preventDefault();

                            let consent = {
                                facebook: true,
                                ga: true,
                                bing: true,
                                pinterest: true,
                                gtm: true,
                            };

                            let elm = $(this),
                                button_action = elm.attr('data-cs_action');

                            if(button_action === 'allow_all') {
                                Facebook.loadPixel();
                                Bing.loadPixel();
                                Analytics.loadPixel();
                                Pinterest.loadPixel();

                                consent.facebook = true;
                                consent.bing = true;
                                consent.ga = true;
                                consent.pinterest = true;
                                consent.gtm = true;

                                Utils.setupGDPRData( consent );
                            } else if ( button_action === 'disable_all' ) {
                                if ( typeof CS_Data.cs_meta_ldu_mode == "undefined" || CS_Data.cs_meta_ldu_mode == 0 ) {
                                    Facebook.disable();
                                    consent.facebook = false;
                                }

                                if ( typeof CS_Data.cs_bing_consent_mode == "undefined" || CS_Data.cs_bing_consent_mode.ad_storage.enabled == 0 ) {
                                    Bing.disable();
                                    consent.bing = false;
                                }

                                if ( CS_Data.cs_google_analytics_consent_mode == 0 || typeof CS_Data.cs_google_analytics_consent_mode == "undefined" ) {
                                    Analytics.disable();
                                    consent.ga = false;
                                    consent.gtm = false;
                                }

                                Pinterest.disable();
                                consent.pinterest = false;
                                Utils.setupGDPRData( consent );
                            } else if ( button_action === 'cs_confirm' ) {
                                consent_actions();
                            }
                        });
                    }
                }
                /**
                 * Real Cookie Banner
                 */
                if(options.gdpr.real_cookie_banner_integration_enabled) {
                    let consentApi = window.consentApi;
                    if (consentApi) {
                        consentApi.consent("http", "_ga", "*")
                            .then(Analytics.loadPixel.bind(Analytics), Analytics.disable.bind(Analytics));
                        consentApi.consent("http", "_fbp", "*")
                            .then(Facebook.loadPixel.bind(Facebook), Facebook.disable.bind(Facebook));
                        consentApi.consent("http", "_pinterest_sess", ".pinterest.com")
                            .then(Pinterest.loadPixel.bind(Pinterest), Pinterest.disable.bind(Pinterest));
                        consentApi.consent("http", "_uetsid", "*")
                            .then(Bing.loadPixel.bind(Bing), Bing.disable.bind(Bing));

                        let consent = {
                            facebook: true,
                            ga: true,
                            bing: true,
                            pinterest: true,
                            gtm: true,
                        };

                        if (!consentApi.consentSync("http", "_ga", "*").cookieOptIn) {
                            consent.ga = false;
                            consent.gtm = false;
                        }
                        if (!consentApi.consentSync("http", "_fbp", "*").cookieOptIn) {
                            consent.facebook = false;
                        }
                        if (!consentApi.consentSync("http", "_pinterest_sess", ".pinterest.com").cookieOptIn) {
                            consent.pinterest = false;
                        }
                        if (!consentApi.consentSync("http", "_uetsid", "*").cookieOptIn) {
                            consent.bing = false;
                        }
                        Utils.setupGDPRData( consent );
                    }
                }
                /**
                 * Cookiebot
                 */
                if (options.gdpr.cookiebot_integration_enabled && typeof Cookiebot !== 'undefined') {

                    window.addEventListener("CookiebotOnConsentReady", function() {

                        let consent = {
                            facebook: true,
                            ga: true,
                            bing: true,
                            pinterest: true,
                            gtm: true,
                        };

                        Utils.manageCookies();
                        if (Cookiebot.consent.marketing) {
                            Facebook.loadPixel();
                            Bing.loadPixel();
                            Pinterest.loadPixel();

                            consent.facebook = true;
                            consent.bing = true;
                            consent.pinterest = true;
                        }
                        if (Cookiebot.consent.statistics) {
                            Analytics.loadPixel();

                            consent.ga = true;
                            consent.gtm = true;
                        }
                        if (!Cookiebot.consent.marketing) {
                            Facebook.disable();
                            Pinterest.disable();
                            Bing.disable();

                            consent.facebook = false;
                            consent.bing = false;
                            consent.pinterest = false;
                        }
                        if (!Cookiebot.consent.statistics) {
                            Analytics.disable();

                            consent.ga = false;
                            consent.gtm = false;
                        }

                        Utils.setupGDPRData( consent );
                    });

                }

                /**
                 * Cookie Notice
                 */
                if (options.gdpr.cookie_notice_integration_enabled) {

                    $(document).onFirst('click', '.cn-set-cookie', function () {

                        let consent = {};

                        if ($(this).data('cookie-set') === 'accept') {
                            Facebook.loadPixel();
                            Analytics.loadPixel();
                            Pinterest.loadPixel();
                            Bing.loadPixel();

                            consent = {
                                facebook: true,
                                ga: true,
                                bing: true,
                                pinterest: true,
                                gtm: true,
                            };
                        } else {
                            Facebook.disable();
                            Analytics.disable();
                            Pinterest.disable();
                            Bing.disable();

                            consent = {
                                facebook: false,
                                ga: false,
                                bing: false,
                                pinterest: false,
                                gtm: false,
                            };
                        }

                        Utils.setupGDPRData( consent );
                    });

                    $(document).onFirst('click', '.cn-revoke-cookie', function () {
                        Facebook.disable();
                        Analytics.disable();
                        Pinterest.disable();
                        Bing.disable();

                        let consent = {
                            facebook: false,
                            ga: false,
                            bing: false,
                            pinterest: false,
                            gtm: false,
                        };
                        Utils.setupGDPRData( consent );

                    });

                }

                /**
                 * Cookie Law Info
                 */
                if (options.gdpr.cookie_law_info_integration_enabled) {

                    $(document).onFirst('click', '#wt-cli-accept-all-btn,#cookie_action_close_header, .cky-btn-accept', function () {
                        setTimeout(function (){
                            let cli_cookie = Cookies.get('cookieyes-consent') ?? Cookies.get('wt_consent') ?? Cookies.get('viewed_cookie_policy');
                            if (typeof cli_cookie !== 'undefined') {
                                if (cli_cookie === Cookies.get('cookieyes-consent') || cli_cookie === Cookies.get('wt_consent')) {
                                    if (getCookieYes('analytics') === 'yes') {
                                        Utils.manageCookies();
                                    }
                                } else if (cli_cookie === Cookies.get('viewed_cookie_policy') && cli_cookie == 'yes') {
                                    Utils.manageCookies();
                                }
                            }
                        },1000)
                        Facebook.loadPixel();
                        Analytics.loadPixel();
                        Pinterest.loadPixel();
                        Bing.loadPixel();

                        let consent = {
                            facebook: true,
                            ga: true,
                            bing: true,
                            pinterest: true,
                            gtm: true,
                        };
                        Utils.setupGDPRData( consent );
                    });

                    $(document).onFirst('click', '#cookie_action_close_header_reject, .cky-btn-reject', function () {
                        Facebook.disable();
                        Analytics.disable();
                        Pinterest.disable();
                        Bing.disable();

                        let consent = {
                            facebook: false,
                            ga: false,
                            bing: false,
                            pinterest: false,
                            gtm: false,
                        };
                        Utils.setupGDPRData( consent );
                    });

                }

            },

            setupGDPRData: function ( consent ) {
                consent = window.btoa( JSON.stringify( consent ) );
                Cookies.set( 'pys_consent', consent, { expires: 365, path: '/', domain: domain } );
            },

            /**
             * DOWNLOAD DOCS
             */

            getLinkExtension: function (link) {

                // Remove anchor, query string and everything before last slash
                link = link.substring(0, (link.indexOf("#") === -1) ? link.length : link.indexOf("#"));
                link = link.substring(0, (link.indexOf("?") === -1) ? link.length : link.indexOf("?"));
                link = link.substring(link.lastIndexOf("/") + 1, link.length);

                // If there's a period left in the URL, then there's a extension
                if (link.length > 0 && link.indexOf('.') !== -1) {
                    link = link.substring(link.indexOf(".") + 1); // Remove everything but what's after the first period
                    return link;
                } else {
                    return "";
                }
            },

            getLinkFilename: function (link) {

                // Remove anchor, query string and everything before last slash
                link = link.substring(0, (link.indexOf("#") === -1) ? link.length : link.indexOf("#"));
                link = link.substring(0, (link.indexOf("?") === -1) ? link.length : link.indexOf("?"));
                link = link.substring(link.lastIndexOf("/") + 1, link.length);

                // If there's a period left in the URL, then there's a extension
                if (link.length > 0 && link.indexOf('.') !== -1) {
                    return link;
                } else {
                    return "";
                }
            },
            /**
             * Enrich
             */
            isCheckoutPage: function () {
                return $('body').hasClass('woocommerce-checkout') || document.querySelector('.woocommerce-checkout') ||
                    $('body').hasClass('edd-checkout');
            },
            addCheckoutFields : function() {
                var utm = "";
                var utms = getUTMs()

                $.each(utmTerms, function (index, name) {
                    if(index > 0) {
                        utm+="|";
                    }
                    utm+=name+":"+utms[name];
                });
                var utmIdList = "";
                var utmsIds = getUTMId()
                $.each(utmId, function (index, name) {
                    if(index > 0) {
                        utmIdList+="|";
                    }
                    utmIdList+=name+":"+utmsIds[name];
                });
                var utmIdListLast = "";
                var utmsIdsLast = getUTMId(true)
                $.each(utmId, function (index, name) {
                    if(index > 0) {
                        utmIdListLast+="|";
                    }
                    utmIdListLast+=name+":"+utmsIdsLast[name];
                });


                var utmLast = "";
                var utmsLast = getUTMs(true)
                $.each(utmTerms, function (index, name) {
                    if(index > 0) {
                        utmLast+="|";
                    }
                    utmLast+=name+":"+utmsLast[name];
                });

                var dateTime = getDateTime();
                var landing = getLandingPageValue();
                var lastLanding = getLandingPageValue();
                var trafic = getTrafficSourceValue();
                var lastTrafic = getTrafficSourceValue();

                var $form = null;
                if($('body').hasClass('woocommerce-checkout')) {
                    $form = $("form.woocommerce-checkout");
                } else {
                    $form = $("#edd_purchase_form");
                }
                var inputs = {'pys_utm':utm,
                    'pys_utm_id':utmIdList,
                    'pys_browser_time':dateTime.join("|"),
                    'pys_landing':landing,
                    'pys_source':trafic,
                    'pys_order_type': $(".wcf-optin-form").length > 0 ? "wcf-optin" : "normal",

                    'last_pys_landing':lastLanding,
                    'last_pys_source':lastTrafic,
                    'last_pys_utm':utmLast,
                    'last_pys_utm_id':utmIdListLast,
                }

                Object.keys(inputs).forEach(function(key,index) {
                    $form.append("<input type='hidden' name='"+key+"' value='"+inputs[key]+"' /> ");
                });


            },
            getAdvancedFormData: function () {
                let dataStr = Cookies.get("pys_advanced_form_data");
                if(dataStr === undefined) {
                    return {'first_name':"",'last_name':"",'email':"",'phone':""};
                } else {
                    return JSON.parse(dataStr);
                }
            }
        };

    }(options);

    var Facebook = function (options) {


        var defaultEventTypes = [
            'PageView',
            'ViewContent',
            'Search',
            'AddToCart',
            'AddToWishlist',
            'InitiateCheckout',
            'AddPaymentInfo',
            'Purchase',
            'Lead',

            'Subscribe',
            'CustomizeProduct',
            'FindLocation',
            'StartTrial',
            'SubmitApplication',
            'Schedule',
            'Contact',
            'Donate'
        ];

        var initialized = false;
        var genereateFbp = function (){
            return !Cookies.get('_fbp') ? 'fb.1.'+Date.now()+'.'+Math.floor(1000000000 + Math.random() * 9000000000) : Cookies.get('_fbp');
        };
        var genereateFbc = function (){
            return getUrlParameter('fbclid') ? 'fb.1.'+Date.now()+'.'+getUrlParameter('fbclid') : ''
        };
        // fire server side event gdpr plugin installed
        var isApiDisabled = options.gdpr.all_disabled_by_api ||
            options.gdpr.facebook_disabled_by_api ||
            options.gdpr.cookiebot_integration_enabled ||
            options.gdpr.consent_magic_integration_enabled ||
            options.gdpr.cookie_notice_integration_enabled ||
            options.gdpr.cookie_law_info_integration_enabled;

        /**
         *
         * @param allData
         * @param params
         * @returns {string | null}
         */
        function sendFbServerEvent(allData,name,params) {
            let eventId = null;
            if(options.facebook.serverApiEnabled) {

                if(allData.e_id === "woo_remove_from_cart") {// server event will sended from hook
                    Facebook.updateEventId(allData.name);
                    allData.eventID = Facebook.getEventId(allData.name);
                } else {
                    // send event from server if they was bloc by gdpr or need send with delay
                    allData.eventID = Utils.generateUniqueId(allData);

                    if(Cookies.get('_fbp')){
                        params._fbp = Cookies.get('_fbp');
                    }
                    if(Cookies.get('_fbc')){
                        params._fbc = Cookies.get('_fbc');
                    }

                    if( options.ajaxForServerEvent || isApiDisabled ){
                        var json = {
                            action: 'pys_api_event',
                            pixel: 'facebook',
                            event: name,
                            data:params,
                            ids:options.facebook.pixelIds,
                            eventID:allData.eventID,
                            url:window.location.href,
                            ajax_event:options.ajax_event
                        };
                        if(allData.hasOwnProperty('woo_order')) {
                            json['woo_order'] = allData.woo_order;
                        }
                        if(allData.hasOwnProperty('edd_order')) {
                            json['edd_order'] = allData.edd_order;
                        }

                        if (allData.e_id === "automatic_event_internal_link" || allData.e_id === "automatic_event_outbound_link") {
                            setTimeout(() => Utils.sendServerAjaxRequest(options.ajaxUrl, json), 500);
                        } else if (allData.type != 'static') {
                            Utils.sendServerAjaxRequest(options.ajaxUrl, json);
                        }

                        if ( ( allData.type == 'static' && options.ajaxForServerStaticEvent ) || ( allData.hasOwnProperty( 'ajaxFire' ) && allData.ajaxFire ) ) {
                            Utils.sendServerAjaxRequest( options.ajaxUrl, json );
                        }
                    }
                }
                delete params._fbp;
                delete params._fbc;
                eventId = allData.eventID
            }
            return eventId;
        }

        function fireEvent(name, allData) {

            if(typeof window.pys_event_data_filter === "function" && window.pys_disable_event_filter(name,'facebook')) {
                return;
            }

            var actionType = defaultEventTypes.includes(name) ? 'track' : 'trackCustom';
            var data = allData.params;
            var params = {};
            var arg = {};
            Utils.copyProperties(data, params);
            let eventId = sendFbServerEvent(allData,name,params)


            if("hCR" === name) {
                return;
            }

            if (options.debug) {
                console.log('[Facebook] ' + name, params,"eventID",eventId);
            }

            if(eventId != null) {
                arg.eventID = eventId;
            }

            fbq(actionType, name, params, arg);

        }

        /**
         * Public API
         */
        return {
            tag: function() {
                return "facebook";
            },
            isEnabled: function () {
                return options.hasOwnProperty('facebook');
            },

            disable: function () {
                initialized = false;
            },
            advancedMatching: function () {
                if(options.facebook.advancedMatchingEnabled) {
                    let advancedMatchingForm = Utils.getAdvancedFormData();
                    let advancedMatching = {};
                    if(Object.keys(options.facebook.advancedMatching).length > 0) {
                        advancedMatching = options.facebook.advancedMatching;
                    }

                    if(!advancedMatching.hasOwnProperty("em")
                        && advancedMatchingForm.hasOwnProperty("email") && advancedMatchingForm["email"].length > 0) {
                        advancedMatching["em"] = advancedMatchingForm["email"];
                    }
                    if(!advancedMatching.hasOwnProperty("ph")
                        && advancedMatchingForm.hasOwnProperty("phone") && advancedMatchingForm["phone"].length > 0) {
                        advancedMatching["ph"] = advancedMatchingForm["phone"];
                    }
                    if(!advancedMatching.hasOwnProperty("fn")
                        && advancedMatchingForm.hasOwnProperty("first_name") && advancedMatchingForm["first_name"].length > 0) {
                        advancedMatching["fn"] = advancedMatchingForm["first_name"];
                    }
                    if(!advancedMatching.hasOwnProperty("ln")
                        && advancedMatchingForm.hasOwnProperty("last_name") && advancedMatchingForm["last_name"].length > 0) {
                        advancedMatching["ln"] = advancedMatchingForm["last_name"];
                    }
                    if(!advancedMatching.hasOwnProperty("external_id")){
                        if (Cookies.get('pbid') || (options.hasOwnProperty('pbid') && options.pbid)) {
                            advancedMatching["external_id"] = Cookies.get('pbid') ? Cookies.get('pbid') : options.pbid;
                        }
                    }
                    else if(advancedMatching.external_id != Cookies.get('pbid'))
                    {
                        advancedMatching["external_id"] = Cookies.get('pbid') ? Cookies.get('pbid') : advancedMatching.external_id;
                    }
                    if(Object.keys(advancedMatching).length > 0) {
                        return advancedMatching;
                    }
                }
                return false
            },
            /**
             * Load pixel's JS
             */
            loadPixel: function () {

                if (initialized || !this.isEnabled() || !Utils.consentGiven('facebook')) {
                    return;
                }

                !function (f, b, e, v, n, t, s) {
                    if (f.fbq) return;
                    n = f.fbq = function () {
                        n.callMethod ?
                            n.callMethod.apply(n, arguments) : n.queue.push(arguments)
                    };
                    if (!f._fbq) f._fbq = n;
                    n.push = n;
                    n.loaded = !0;
                    n.version = '2.0';
                    n.agent = 'dvpixelyoursite';
                    n.queue = [];
                    t = b.createElement(e);
                    t.async = !0;
                    t.src = v;
                    s = b.getElementsByTagName(e)[0];
                    s.parentNode.insertBefore(t, s)
                }(window,
                    document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');

                let expires = parseInt(options.cookie_duration);
                if(!Cookies.get('_fbp')) {
                    Cookies.set('_fbp',genereateFbp(),  { expires: expires,path: '/',domain: domain });
                }

                if(getUrlParameter('fbclid')) {
                    Cookies.set('_fbc',genereateFbc(),  { expires: expires,path: '/',domain: domain });
                }
                // initialize pixel
                options.facebook.pixelIds.forEach(function (pixelId) {
                    if (options.facebook.removeMetadata) {
                        fbq('set', 'autoConfig', false, pixelId);
                    }
                    let advancedMatching = Facebook.advancedMatching();

                    if ( +options.facebook.meta_ldu === 1  ) {
                        fbq( 'dataProcessingOptions', [ 'LDU' ], 0, 0 );
                    }

                    if (options.gdpr.consent_magic_integration_enabled && typeof CS_Data !== "undefined") {
                        if(!advancedMatching) {
                            fbq('init', pixelId);
                        } else {
                            var test_prefix = CS_Data.test_prefix;
                            var cs_advanced_matching = Cookies.get('cs_enabled_advanced_matching'+test_prefix);
                            if (jQuery('#cs_enabled_advanced_matching'+test_prefix).length > 0) {
                                if (cs_advanced_matching == 'yes') {
                                    fbq('init', pixelId, advancedMatching);
                                } else {
                                    fbq('init', pixelId);
                                }
                            } else {
                                fbq('init', pixelId, advancedMatching);
                            }
                        }
                    } else {
                        if(!advancedMatching) {
                            fbq('init', pixelId);
                        }  else {
                            fbq('init', pixelId, advancedMatching);
                        }
                    }
                });

                initialized = true;

                Utils.fireStaticEvents('facebook');

            },

            fireEvent: function (name, data) {

                if (!initialized || !this.isEnabled()) {
                    return false;
                }

                data.delay = data.delay || 0;
                data.params = data.params || {};

                if (data.delay === 0) {

                    fireEvent(name, data);

                } else {

                    setTimeout(function (name, params) {
                        fireEvent(name, params);
                    }, data.delay * 1000, name, data);

                }

                return true;

            },

            onCommentEvent: function (event) {
                this.fireEvent(event.name, event);
            },

            onDownloadEvent: function (event) {
                this.fireEvent(event.name, event);
            },

            onFormEvent: function (event) {

                this.fireEvent(event.name, event);

            },

            onWooAddToCartOnButtonEvent: function (product_id) {

                if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
                    return;
                var event = options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()];
                window.pysWooProductData = window.pysWooProductData || [];
                if (window.pysWooProductData.hasOwnProperty(product_id)) {
                    if (window.pysWooProductData[product_id].hasOwnProperty('facebook')) {
                        event = Utils.copyProperties(event, {})
                        Utils.copyProperties(window.pysWooProductData[product_id]['facebook'].params, event.params)
                        this.fireEvent(event.name, event);
                    }
                }
            },

            onWooAddToCartOnSingleEvent: function (product_id, qty, product_type, $form) {

                window.pysWooProductData = window.pysWooProductData || [];
                if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
                    return;
                var event = Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);

                if (product_type === Utils.PRODUCT_VARIABLE && !options.facebook.wooVariableAsSimple) {
                    product_id = parseInt($form.find('input[name="variation_id"]').val());
                }

                if (window.pysWooProductData.hasOwnProperty(product_id)) {
                    if (window.pysWooProductData[product_id].hasOwnProperty('facebook')) {


                        Utils.copyProperties(window.pysWooProductData[product_id]['facebook'].params, event.params);

                        var groupValue = 0;
                        if(product_type === Utils.PRODUCT_GROUPED ) {
                            $form.find(".woocommerce-grouped-product-list .qty").each(function(index){
                                var childId = $(this).attr('name').replaceAll("quantity[","").replaceAll("]","");
                                var quantity = parseInt($(this).val());
                                if(isNaN(quantity)) {
                                    quantity = 0;
                                }
                                var childItem = window.pysWooProductData[product_id]['facebook'].grouped[childId];

                                if(quantity == 0) {
                                    event.params.content_ids.forEach(function(el,index,array) {
                                        if(el == childItem.content_id) {
                                            array.splice(index, 1);
                                        }
                                    });
                                }

                                if(event.params.hasOwnProperty('contents')) {
                                    event.params.contents.forEach(function(el,index,array) {
                                        if(el.id == childItem.content_id) {
                                            if(quantity > 0){
                                                el.quantity = quantity;
                                            } else {
                                                array.splice(index, 1);
                                            }
                                        }
                                    });
                                }


                                groupValue += childItem.price * quantity;
                            });
                            if(groupValue == 0) return; // skip if no items selected
                        }

                        // maybe customize value option
                        if (options.woo.addToCartOnButtonValueEnabled && options.woo.addToCartOnButtonValueOption !== 'global') {

                            if(product_type === Utils.PRODUCT_GROUPED) {
                                event.params.value = groupValue;
                            } else if(product_type === Utils.PRODUCT_BUNDLE) {
                                var data = $(".bundle_form .bundle_data").data("bundle_form_data");
                                var items_sum = getBundlePriceOnSingleProduct(data);
                                event.params.value = (parseInt(data.base_price) + items_sum )* qty;
                            } else {
                                event.params.value = event.params.value * qty;
                            }
                        }

                        // only when non Facebook for WooCommerce logic used
                        if (event.params.hasOwnProperty('contents') && product_type !== Utils.PRODUCT_GROUPED) {
                            event.params.contents[0].quantity = qty;
                        }

                        this.fireEvent(event.name, event);

                    }
                }
            },

            onWooRemoveFromCartEvent: function (event) {
                this.fireEvent(event.name, event);
            },

            onEddAddToCartOnButtonEvent: function (download_id, price_index, qty) {

                if(!options.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
                    return;
                var event = Utils.clone(options.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]);

                if (window.pysEddProductData.hasOwnProperty(download_id)) {

                    var index;

                    if (price_index) {
                        index = download_id + '_' + price_index;
                    } else {
                        index = download_id;
                    }

                    if (window.pysEddProductData[download_id].hasOwnProperty(index)) {
                        if (window.pysEddProductData[download_id][index].hasOwnProperty('facebook')) {


                            Utils.copyProperties(window.pysEddProductData[download_id][index]['facebook']["params"], event.params)

                            // maybe customize value option
                            if (options.edd.addToCartOnButtonValueEnabled && options.edd.addToCartOnButtonValueOption !== 'global') {
                                event.params.value = event.params.value * qty;
                            }

                            // update contents qty param
                            var contents = event.params.contents;
                            contents[0].quantity = qty;
                            event.params.contents = contents;

                            this.fireEvent(event.name,event);

                        }
                    }

                }

            },

            onEddRemoveFromCartEvent: function (event) {
                this.fireEvent(event.name, event);
            },
            onPageScroll: function (event) {
                this.fireEvent(event.name, event);
            },
            onTime: function (event) {
                this.fireEvent(event.name, event);
            },
            initEventIdCookies: function (key) {
                var ids = {};
                ids[key] = pys_generate_token(36)
                Cookies.set('pys_fb_event_id', JSON.stringify(ids));
            },
            updateEventId:function(key) {
                var cooData = Cookies.get("pys_fb_event_id")
                if(cooData === undefined) {
                    this.initEventIdCookies(key);
                } else {
                    var data = JSON.parse(cooData);
                    data[key] = pys_generate_token(36);
                    Cookies.set('pys_fb_event_id', JSON.stringify(data) );
                }
            },

            getEventId:function (key) {
                var data = Cookies.get("pys_fb_event_id");
                if(data === undefined) {
                    this.initEventIdCookies(key);
                    data = Cookies.get("pys_fb_event_id");
                }
                return JSON.parse(data)[key];
            },
        };

    }(options);

    var Analytics = function (options) {

        var initialized = false;

        /**
         * Fires event
         *
         * @link: https://developers.google.com/analytics/devguides/collection/gtagjs/sending-data
         * @link: https://developers.google.com/analytics/devguides/collection/gtagjs/events
         * @link: https://developers.google.com/gtagjs/reference/event
         * @link: https://developers.google.com/gtagjs/reference/parameter
         *
         * @link: https://developers.google.com/analytics/devguides/collection/gtagjs/custom-dims-mets
         *
         * @param name
         * @param data
         */
        function fireEvent(name, data) {

            if(typeof window.pys_event_data_filter === "function" && window.pys_disable_event_filter(name,'ga')) {
                return;
            }

            var eventParams = Utils.copyProperties(data, {});
            var _fireEvent = function (tracking_id,name,params) {

                params['send_to'] = tracking_id;

                if (options.debug) {
                    console.log('[Google Analytics #' + tracking_id + '] ' + name, params);
                }

                gtag('event', name, params);

            };
            options.ga.trackingIds.forEach(function (tracking_id) {
                var copyParams = Utils.copyProperties(eventParams, {}); // copy params because mapParamsTov4 can modify it
                var params = mapParamsTov4(tracking_id,name,copyParams)
                _fireEvent(tracking_id,name,params);
            });

        }
        function mapParamsTov4(tag,name,param) {
            //GA4 automatically collects a number of parameters for all events
            delete param.landing_page;
            // end
            if(isv4(tag)) {
                delete param.traffic_source;
                delete param.event_category;
                delete param.event_label;
                delete param.ecomm_prodid;
                delete param.ecomm_pagetype;
                delete param.ecomm_totalvalue;
                if(name === 'search') {
                    param['search'] = param.search_term;
                    delete param.search_term;
                    delete param.dynx_itemid;
                    delete param.dynx_pagetype;
                    delete param.dynx_totalvalue;
                }
            }
            return param;
        }

        function isv4(tag) {
            return tag.indexOf('G') === 0;
        }

        /**
         * Public API
         */
        return {
            tag: function() {
                return "ga";
            },
            isEnabled: function () {
                return options.hasOwnProperty('ga');
            },

            disable: function () {
                initialized = false;
            },

            loadPixel: function () {

                if (initialized || !this.isEnabled() || !Utils.consentGiven('analytics')) {
                    return;
                }

                Utils.loadGoogleTag(options.ga.trackingIds[0]);
                var config = {};
                // Cross-Domain tracking
                if (options.ga.crossDomainEnabled) {
                    config.linker = {
                        accept_incoming: options.ga.crossDomainAcceptIncoming,
                        domains: options.ga.crossDomainDomains
                    };
                }
                var ids = options.ga.trackingIds;
                // configure tracking ids
                ids.forEach(function (trackingId,index) {
                    var obj = options.ga.isDebugEnabled;
                    var searchValue = "index_"+index;
                    var config_for_tag = Object.assign({}, options.config);
                    config_for_tag.debug_mode = false;
                    config_for_tag.send_page_view = !options.ga.custom_page_view_event;
                    for (var key in obj) {
                        if (obj.hasOwnProperty(key) && obj[key] === searchValue) {
                            config_for_tag.debug_mode = true;
                            break;
                        }
                    }
                    if(!config_for_tag.debug_mode)
                    {
                        delete config_for_tag.debug_mode;
                    }
                    if(isv4(trackingId)) {
                        if(options.ga.disableAdvertisingFeatures) {
                            config_for_tag.allow_google_signals = false
                        }
                        if(options.ga.disableAdvertisingPersonalization) {
                            config_for_tag.allow_ad_personalization_signals = false
                        }
                    }
                    if(options.ga.hasOwnProperty('additionalConfig')){
                        if(options.ga.additionalConfig.hasOwnProperty(trackingId) && options.ga.additionalConfig[trackingId]){
                            config_for_tag.first_party_collection = options.ga.additionalConfig[trackingId].first_party_collection;
                        }

                    }
                    if(options.ga.hasOwnProperty('serverContainerUrls')){
                        if(options.ga.serverContainerUrls.hasOwnProperty(trackingId) && options.ga.serverContainerUrls[trackingId].enable_server_container != false){
                            if(options.ga.serverContainerUrls[trackingId].server_container_url != ''){
                                config_for_tag.server_container_url = options.ga.serverContainerUrls[trackingId].server_container_url;
                            }
                            if(options.ga.serverContainerUrls[trackingId].transport_url != ''){
                                config_for_tag.transport_url = options.ga.serverContainerUrls[trackingId].transport_url;
                            }
                        }
                    }
                    if (options.gdpr.cookiebot_integration_enabled && typeof Cookiebot !== 'undefined') {

                        var cookiebot_consent_category = options.gdpr['cookiebot_analytics_consent_category'];
                        if (options.gdpr['analytics_prior_consent_enabled']) {
                            if (Cookiebot.consented === true && Cookiebot.consent[cookiebot_consent_category]) {
                                gtag('config', trackingId, config_for_tag);
                            }
                        } else {
                            if (Cookiebot.consent[cookiebot_consent_category]) {
                                gtag('config', trackingId, config_for_tag);
                            }
                        }
                    }
                    else
                    {
                        gtag('config', trackingId, config_for_tag);
                    }
                });

                initialized = true;

                Utils.fireStaticEvents('ga');

            },

            fireEvent: function (name, data) {

                if (!initialized || !this.isEnabled()) {
                    return false;
                }

                data.delay = data.delay || 0;
                data.params = data.params || {};
                data.params.eventID = Utils.generateUniqueId(data);
                if (data.delay === 0) {

                    fireEvent(name, data.params);

                } else {

                    setTimeout(function (name, params) {
                        fireEvent(name, params);
                    }, data.delay * 1000, name, data.params);

                }

                return true;

            },

            onCommentEvent: function (event) {
                this.fireEvent(event.name, event);
            },

            onDownloadEvent: function (event) {
                this.fireEvent(event.name, event);
            },

            onFormEvent: function (event) {
                this.fireEvent(event.name, event);
            },

            onWooAddToCartOnButtonEvent: function (product_id) {

                if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
                    return;
                var event = Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);

                if (window.pysWooProductData.hasOwnProperty(product_id)) {
                    if (window.pysWooProductData[product_id].hasOwnProperty('ga')) {
                        Utils.copyProperties(window.pysWooProductData[product_id]['ga'].params, event.params)
                        this.fireEvent(event.name, event);
                    }
                }


            },

            onWooAddToCartOnSingleEvent: function (product_id, qty, product_type, $form) {

                window.pysWooProductData = window.pysWooProductData || [];

                if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
                    return;
                var event = Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);

                if (product_type === Utils.PRODUCT_VARIABLE && !options.ga.wooVariableAsSimple) {
                    product_id = parseInt($form.find('input[name="variation_id"]').val());
                }

                if (window.pysWooProductData.hasOwnProperty(product_id)) {
                    if (window.pysWooProductData[product_id].hasOwnProperty('ga')) {

                        Utils.copyProperties(window.pysWooProductData[product_id]['ga'].params, event.params);
                        if(product_type === Utils.PRODUCT_GROUPED ) {
                            var groupValue = 0;
                            $form.find(".woocommerce-grouped-product-list .qty").each(function(index){
                                var childId = $(this).attr('name').replaceAll("quantity[","").replaceAll("]","");
                                var quantity = parseInt($(this).val());
                                if(isNaN(quantity)) {
                                    quantity = 0;
                                }
                                var childItem = window.pysWooProductData[product_id]['ga'].grouped[childId];
                                // update quantity
                                event.params.items.forEach(function(el,index,array) {
                                    if(el.id == childItem.content_id) {
                                        if(quantity > 0){
                                            el.quantity = quantity;
                                        } else {
                                            array.splice(index, 1);
                                        }
                                    }
                                });
                                groupValue += childItem.price * quantity;
                            });
                            if(options.woo.addToCartOnButtonValueEnabled &&
                                options.woo.addToCartOnButtonValueOption !== 'global' &&
                                event.params.hasOwnProperty('ecomm_totalvalue')) {
                                event.params.ecomm_totalvalue = groupValue;
                            }

                            if(groupValue == 0) return; // skip if no items selected
                        } else {
                            // update items qty param
                            event.params.items[0].quantity = qty;
                        }

                        // maybe customize value option
                        if (options.woo.addToCartOnButtonValueEnabled &&
                            options.woo.addToCartOnButtonValueOption !== 'global' &&
                            product_type !== Utils.PRODUCT_GROUPED)
                        {
                            if(event.params.hasOwnProperty('ecomm_totalvalue')) {
                                event.params.ecomm_totalvalue = event.params.items[0].price * qty;
                            }

                        }


                        this.fireEvent(event.name, event);
                    }
                }

            },

            onWooRemoveFromCartEvent: function (event) {

                this.fireEvent(event.name, event);

            },

            onEddAddToCartOnButtonEvent: function (download_id, price_index, qty) {

                if(!options.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
                    return;
                var event = Utils.clone(options.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]);


                if (window.pysEddProductData.hasOwnProperty(download_id)) {

                    var index;

                    if (price_index) {
                        index = download_id + '_' + price_index;
                    } else {
                        index = download_id;
                    }

                    if (window.pysEddProductData[download_id].hasOwnProperty(index)) {
                        if (window.pysEddProductData[download_id][index].hasOwnProperty('ga')) {

                            Utils.copyProperties(window.pysEddProductData[download_id][index]['ga'].params, event.params);

                            // update items qty param
                            event.params.items[0].quantity = qty;

                            this.fireEvent(event.name,event);

                        }
                    }

                }

            },

            onEddRemoveFromCartEvent: function (event) {
                this.fireEvent(event.name, event);
            },
            onPageScroll: function (event) {
                this.fireEvent(event.name, event);
            },
            onTime: function (event) {
                this.fireEvent(event.name, event);
            },

        };

    }(options);

    var GTM = function (options) {
        var initialized = false;

        var datalayer_name = 'dataLayer';
        /*
         * @param name
         * @param data
         */
        function fireEvent(name, event) {
            if(typeof window.pys_event_data_filter === "function" && window.pys_disable_event_filter(name,'gtm')) {
                return;
            }


            var eventParams = event.params;
            var data = event.params;
            var valuesArray = Object.values(event.trackingIds);
            var ids = valuesArray;
            Utils.copyProperties(Utils.getRequestParams(), eventParams);
            var _fireEvent = function (tracking_id,name,params, event=null) {
                var eventData = {};
                var ContainerCodeHasTag = !options.gtm.gtm_just_data_layer && tracking_id.length > 0;
                if(ContainerCodeHasTag) {
                    params['send_to'] = tracking_id;
                }
                else if(!options.gtm.gtm_just_data_layer){
                    return
                }

                if (params.hasOwnProperty('ecommerce')) {
                    eventData.ecommerce = params.ecommerce;
                    delete params.ecommerce;
                }

                var automatedParams = { ...params };
                [params['manualName'], 'manualName', 'triggerType'].forEach(key => delete automatedParams[key]);
                if(event && (!event.hasOwnProperty('hasAutoParam') || (event.hasOwnProperty('hasAutoParam') && event.hasAutoParam))) {
                    eventData.automatedParameters = automatedParams;
                }

// Move custom parameters to eventData

                if (params.hasOwnProperty(params['manualName'])) {
                    eventData[params['manualName']] = params[params['manualName']];
                    delete params[params['manualName']];
                }

                ['manualName','triggerType'].forEach(key => {
                    if (params.hasOwnProperty(key)) {
                        eventData[key] = params[key];
                        delete params[key];
                    }
                });

                eventData.manualDataLayer = options.gtm.gtm_dataLayer_name ?? 'dataLayer';

                eventData.event = name;

                if (options.debug) {
                    if (ContainerCodeHasTag){
                        console.log('[Google GTM #' + tracking_id + '] ' + name, eventData);
                    }
                    else {
                        console.log('[Google GTM push to "'+datalayer_name+'"] ' + name, eventData);
                    }
                }
                window[datalayer_name].push(eventData);

            };

            var copyParams = Utils.copyProperties(eventParams, {}); // copy params because mapParamsToGTM can modify it

            var params = mapParamsToGTM(ids,name,copyParams)

            params.event_id = Utils.generateUniqueId(event);

            _fireEvent(ids, name, params, event);
        }

        function normalizeEventName(eventName) {

            var matches = {
                ViewContent: 'view_item',
                AddToCart: 'add_to_cart',
                AddToWishList: 'add_to_wishlist',
                InitiateCheckout: 'begin_checkout',
                Purchase: 'purchase',
                Lead: 'generate_lead',
                CompleteRegistration: 'sign_up',
                AddPaymentInfo: 'set_checkout_option'
            };

            return matches.hasOwnProperty(eventName) ? matches[eventName] : eventName;

        }

        function mapParamsToGTM(tag,name,param) {
            //GA4 automatically collects a number of parameters for all events
            var hasGTM = false;

            // end
            if (Array.isArray(tag)) {
                hasGTM = tag.some(function (element) {
                    return isGTM(element);
                });
            } else if(isGTM(tag)) {
                // tag является строкой и соответствует GTM
                hasGTM = true;
            }
            if(hasGTM) {
                delete param.event_category;
                delete param.event_label;

                delete param.analytics_storage;
                delete param.ad_storage;
                delete param.ad_user_data;
                delete param.ad_personalization;

                if(name === 'search') {
                    param['search'] = param.search_term;
                    delete param.search_term;
                    delete param.dynx_itemid;
                    delete param.dynx_pagetype;
                    delete param.dynx_totalvalue;
                }
            }
            return param;
        }

        function isGTM(tag) {
            return tag.indexOf('GTM') === 0;
        }
        /**
         * Public API
         */
        return {
            tag: function() {
                return "gtm";
            },
            isEnabled: function () {
                return options.hasOwnProperty('gtm');
            },
            disable: function () {
                initialized = false;
            },
            updateEnhancedConversionData : function () {
                if (!initialized || !this.isEnabled()) {
                    return;
                }
                if(options.hasOwnProperty("tracking_analytics") && options.tracking_analytics.hasOwnProperty("userDataEnable") && options.tracking_analytics.userDataEnable) {
                    var advanced = Utils.getAdvancedFormData();
                    if (Object.keys(advanced).length > 0) {
                        window[datalayer_name].push({'user_data' : advanced});
                    }
                }
            },
            loadPixel: function () {

                if (initialized || !this.isEnabled() || !Utils.consentGiven('analytics')) {
                    return;
                }
                datalayer_name = options.gtm.gtm_dataLayer_name ?? 'dataLayer';

                for (var i = 0; i < options.gtm.trackingIds.length; i++) {
                    var trackingId = options.gtm.trackingIds[i];
                    if (!options.gtm.gtm_just_data_layer) {
                        console.log('[PYS] Google Tag Manager container code loaded');
                        Utils.loadGTMScript(trackingId);
                        break;
                    }
                }
                if(options.gtm.gtm_just_data_layer) {
                    console.warn && console.warn("[PYS] Google Tag Manager container code placement set to OFF !!!");
                    console.warn && console.warn("[PYS] Data layer codes are active but GTM container must be loaded using custom coding !!!");
                    if(options.gtm.trackingIds.length == 0){
                        Utils.loadGTMScript();
                    }
                }

                if(options.hasOwnProperty("tracking_analytics") && options.tracking_analytics.hasOwnProperty("userDataEnable") && options.tracking_analytics.userDataEnable){
                    var advanced = Utils.getAdvancedFormData();
                    if(Object.keys(advanced).length > 0){
                        window[datalayer_name].push({'user_data' : advanced});
                    }
                }


                var config = {};

                if(options.user_id && options.user_id != 0) {
                    config.user_id = options.user_id;
                }

                // Cross-Domain tracking

                var ids = options.gtm.trackingIds;


                initialized = true;

                Utils.fireStaticEvents('gtm');
            },

            fireEvent: function (name, data) {

                if (!initialized || !this.isEnabled()) {
                    return false;
                }

                data.delay = data.delay || 0;
                data.params = data.params || {};

                if (data.delay === 0) {

                    fireEvent(name, data);

                } else {

                    setTimeout(function (name, params) {
                        fireEvent(name, params);
                    }, data.delay * 1000, name, data);

                }

                return true;

            },

            onCommentEvent: function (event) {
                this.fireEvent(event.name, event);
            },

            onDownloadEvent: function (event) {
                this.fireEvent(event.name, event);
            },

            onFormEvent: function (event) {
                this.fireEvent(event.name, event);
            },

            onWooAddToCartOnButtonEvent: function (product_id, prod_info = null) {
                if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
                    return;
                var event = Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);

                if (window.pysWooProductData.hasOwnProperty(product_id)) {
                    if (window.pysWooProductData[product_id].hasOwnProperty('gtm')) {
                        Utils.copyProperties(window.pysWooProductData[product_id]['gtm'].params, event.params)
                        this.fireEvent(event.name, event);
                    }
                }

            },

            onWooAddToCartOnSingleEvent: function (product_id, qty, product_type, is_external, $form, prod_info) {
                window.pysWooProductData = window.pysWooProductData || [];

                if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
                    return;
                var event = Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);

                if (product_type === Utils.PRODUCT_VARIABLE && !options.gtm.wooVariableAsSimple) {
                    product_id = parseInt($form.find('input[name="variation_id"]').val());
                }

                if (window.pysWooProductData.hasOwnProperty(product_id)) {
                    if (window.pysWooProductData[product_id].hasOwnProperty('gtm')) {

                        Utils.copyProperties(window.pysWooProductData[product_id]['gtm'].params, event.params);

                        params = event.params.hasOwnProperty('ecommerce') ? event.params.ecommerce : event.params;

                        if(product_type === Utils.PRODUCT_GROUPED ) {
                            var groupValue = 0;
                            $form.find(".woocommerce-grouped-product-list .qty").each(function(index){
                                var childId = $(this).attr('name').replaceAll("quantity[","").replaceAll("]","");
                                var quantity = parseInt($(this).val());
                                if(isNaN(quantity)) {
                                    quantity = 0;
                                }
                                var childItem = window.pysWooProductData[product_id]['gtm'].grouped[childId];
                                params.items.forEach(function(el,index,array) {
                                    if(el.id == childItem.content_id) {
                                        if(quantity > 0){
                                            el.quantity = quantity;
                                            el.price = childItem.price;
                                        } else {
                                            array.splice(index, 1);
                                        }
                                    }
                                });
                                groupValue += childItem.price * quantity;
                            });

                            if(options.woo.addToCartOnButtonValueEnabled &&
                                options.woo.addToCartOnButtonValueOption !== 'global' &&
                                params.hasOwnProperty('value')) {
                                params.value = groupValue;
                            }

                            if(groupValue == 0) return; // skip if no items selected
                        } else {
                            // update items qty param
                            params.items[0].quantity = qty;
                        }

                        // maybe customize value option
                        if (options.woo.addToCartOnButtonValueEnabled &&
                            options.woo.addToCartOnButtonValueOption !== 'global' &&
                            product_type !== Utils.PRODUCT_GROUPED)
                        {
                            if(params.hasOwnProperty('value')) {
                                params.value = params.items[0].price * qty;
                            }

                        }


                        this.fireEvent(event.name, event);
                    }
                }

            },

            onWooRemoveFromCartEvent: function (event) {

                this.fireEvent(event.name, event);

            },

            onEddAddToCartOnButtonEvent: function (download_id, price_index, qty) {
                if(!options.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag()))
                    return;
                var event = Utils.clone(options.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]);


                if (window.pysEddProductData.hasOwnProperty(download_id)) {

                    var index;

                    if (price_index) {
                        index = download_id + '_' + price_index;
                    } else {
                        index = download_id;
                    }

                    if (window.pysEddProductData[download_id].hasOwnProperty(index)) {
                        if (window.pysEddProductData[download_id][index].hasOwnProperty('gtm')) {

                            Utils.copyProperties(window.pysEddProductData[download_id][index]['gtm'].params, event.params);
                            item = event.params.hasOwnProperty('ecommerce') ? event.params.ecommerce.items[0] : event.params.items[0];
                            // update items qty param
                            item.quantity = qty;

                            this.fireEvent(event.name,event);

                        }
                    }

                }

            },

            onEddRemoveFromCartEvent: function (event) {
                this.fireEvent(event.name, event);
            },
            onPageScroll: function (event) {
                this.fireEvent(event.name, event);
            },
            onTime: function (event) {
                this.fireEvent(event.name, event);
            },
        };

    }(options);

    window.pys = window.pys || {};
    window.pys.Facebook = Facebook;
    window.pys.Analytics = Analytics;
    window.pys.GTM = GTM;
    window.pys.Utils = Utils;




    $(document).ready(function () {

        if($("#pys_late_event").length > 0) {
            var dirAttr = $("#pys_late_event").attr("dir");
            if (dirAttr) {
                try {
                    var events = JSON.parse(dirAttr);
                } catch (e) {
                    console.warn("Invalid JSON in pys_late_event dir attribute:", e);
                }
            } else {
                console.warn("pys_late_event dir attribute is undefined or empty");
            }
            if (events) {
                for (var key in events) {
                    var event = {};
                    event[events[key].e_id] = [events[key]];
                    if (options.staticEvents.hasOwnProperty(key)) {
                        Object.assign(options.staticEvents[key], event);
                    } else {
                        options.staticEvents[key] = event;
                    }
                }
            }
        }

        var Pinterest = Utils.setupPinterestObject();
        var Bing = Utils.setupBingObject();

        if(options.hasOwnProperty('cookie'))
        {
            if(options.cookie.externalID_disabled_by_api || options.cookie.disabled_all_cookie)
            {
                Cookies.remove('pbid')
            }
            if(options.cookie.disabled_advanced_form_data_cookie || options.cookie.disabled_all_cookie)
            {
                Cookies.remove('pys_advanced_form_data')
            }
            if(options.cookie.disabled_landing_page_cookie || options.cookie.disabled_all_cookie)
            {
                Cookies.remove('pys_landing_page')
                Cookies.remove('last_pys_landing_page')
            }
            if(options.cookie.disabled_trafficsource_cookie || options.cookie.disabled_all_cookie)
            {
                Cookies.remove('pysTrafficSource')
                Cookies.remove('last_pysTrafficSource')
            }
            if(options.cookie.disabled_first_visit_cookie || options.cookie.disabled_all_cookie)
            {
                Cookies.remove('pys_first_visit')

            }
            if(options.cookie.disabled_utmTerms_cookie || options.cookie.disabled_all_cookie)
            {
                $.each(Utils.utmTerms, function (index, name) {
                    Cookies.remove('pys_' + name)
                });
                $.each(Utils.utmTerms, function (index, name) {
                    Cookies.remove('last_pys_' + name)
                });
            }
            if(options.cookie.disabled_utmId_cookie || options.cookie.disabled_all_cookie)
            {
                $.each(Utils.utmId,function(index,name) {
                    Cookies.remove('pys_' + name)
                })
                $.each(Utils.utmId,function(index,name) {
                    Cookies.remove('last_pys_' + name)
                });
            }
        }


        if (options.gdpr.cookie_law_info_integration_enabled) {
            var cli_cookie = Cookies.get('cookieyes-consent') ?? Cookies.get('viewed_cookie_policy');

            if (typeof cli_cookie !== 'undefined') {
                if (cli_cookie === Cookies.get('cookieyes-consent') && getCookieYes('analytics') == 'yes') {
                    Utils.manageCookies();
                } else if (cli_cookie === Cookies.get('viewed_cookie_policy') && cli_cookie == 'yes') {
                    Utils.manageCookies();
                }
            }
        }

        if ( options.gdpr.consent_magic_integration_enabled && typeof CS_Data !== "undefined" ) {
            if ( CS_Data.cs_script_cat.pys == CS_Data.cs_necessary_cat_id || CS_Data.cs_script_cat.pys == 0 ) {
                Utils.manageCookies();
            } else if ( Cookies.get( 'cs_enabled_cookie_term' + CS_Data.test_prefix + '_' + CS_Data.cs_script_cat.pys ) == 'yes' ) {
                Utils.manageCookies();
            }
        } else {
            Utils.manageCookies();
        }

        Utils.setupGdprCallbacks();
        // page scroll event
        if ( options.dynamicEvents.hasOwnProperty("automatic_event_scroll")
        ) {

            var singlePageScroll = function () {


                var docHeight = $(document).height() - $(window).height();
                var isFired = false;

                if (options.dynamicEvents.hasOwnProperty("automatic_event_scroll")) {
                    var pixels = Object.keys(options.dynamicEvents.automatic_event_scroll);
                    for(var i = 0;i<pixels.length;i++) {
                        var event = Utils.clone(options.dynamicEvents.automatic_event_scroll[pixels[i]]);
                        var scroll = Math.round(docHeight * event.scroll_percent / 100)// convert % to absolute positions

                        if(scroll < $(window).scrollTop()) {
                            Utils.copyProperties(Utils.getRequestParams(), event.params);
                            getPixelBySlag(pixels[i]).onPageScroll(event);
                            isFired = true
                        }
                    }
                }
                if(isFired) {
                    $(document).off("scroll",singlePageScroll);
                }
            }
            $(document).on("scroll",singlePageScroll);
        }


        if (options.dynamicEvents.hasOwnProperty("automatic_event_time_on_page")) {
            var pixels = Object.keys(options.dynamicEvents.automatic_event_time_on_page);
            var time = options.dynamicEvents.automatic_event_time_on_page[pixels[0]].time_on_page; // the same for all pixel
            setTimeout(function(){
                for(var i = 0;i<pixels.length;i++) {
                    var event = Utils.clone(options.dynamicEvents.automatic_event_time_on_page[pixels[i]]);
                    Utils.copyProperties(Utils.getRequestParams(), event.params);
                    getPixelBySlag(pixels[i]).onTime(event);
                }
            },time*1000);
        }

        // setup Click Event
        if (options.dynamicEvents.hasOwnProperty("automatic_event_download")) {

            $(document).onFirst('click', 'a, button, input[type="button"], input[type="submit"]', function (e) {

                var $elem = $(this);

                // Download
                if(options.dynamicEvents.hasOwnProperty("automatic_event_download")
                ) {
                    var isFired = false;
                    if ($elem.is('a')) {
                        var href = $elem.attr('href');
                        if (typeof href !== "string") {
                            return;
                        }
                        href = href.trim();
                        var extension = Utils.getLinkExtension(href);
                        var track_download = false;

                        if (extension.length > 0) {

                            if(options.dynamicEvents.hasOwnProperty("automatic_event_download") ) {
                                var pixels = Object.keys(options.dynamicEvents.automatic_event_download);
                                for (var i = 0; i < pixels.length; i++) {
                                    var event = Utils.clone(options.dynamicEvents.automatic_event_download[pixels[i]]);
                                    var extensions = event.extensions;
                                    if (extensions.includes(extension)) {

                                        if(pixels[i] == "tiktok") {
                                            getPixelBySlag(pixels[i]).fireEvent(tikEvent.name, event);
                                        } else {
                                            if (options.enable_remove_download_url_param) {
                                                href = href.split('?')[0];
                                            }
                                            event.params.download_url = href;
                                            event.params.download_type = extension;
                                            event.params.download_name = Utils.getLinkFilename(href);
                                            getPixelBySlag(pixels[i]).onDownloadEvent(event);
                                        }

                                        isFired = true;
                                    }
                                }
                            }
                        }
                    }
                    if(isFired) { // prevent duplicate events on the same element
                        return;
                    }
                }
            });
        }


        // setup Dynamic events
        $.each(options.triggerEventTypes, function (triggerType, events) {

            $.each(events, function (eventId, triggers) {

                switch (triggerType) {
                    case 'url_click':
                        //@see: Utils.setupURLClickEvents()
                        break;

                    case 'css_click':
                        Utils.setupCSSClickEvents(eventId, triggers);
                        break;

                    case 'css_mouseover':
                        Utils.setupMouseOverClickEvents(eventId, triggers);
                        break;

                    case 'scroll_pos':
                        Utils.setupScrollPosEvents(eventId, triggers);
                        break;
                    case 'comment':
                        Utils.setupCommentEvents(eventId, triggers);
                        break;
                }

            });

        });
        // setup WooCommerce events
        if (options.woo.enabled) {

            // WooCommerce AddToCart
            if (options.dynamicEvents.hasOwnProperty("woo_add_to_cart_on_button_click")
                && options.woo.hasOwnProperty("addToCartCatchMethod")
                && options.woo.addToCartCatchMethod === "add_cart_js"
            ) {

                // Loop, any kind of "simple" product, except external
                $('.add_to_cart_button:not(.product_type_variable,.product_type_bundle,.single_add_to_cart_button)').on("click",function (e) {

                    var product_id = $(this).data('product_id');
                    if (typeof product_id !== 'undefined') {
                        if (options.dynamicEvents.hasOwnProperty("woo_add_to_cart_on_button_click")) {
                            var tmpEventID = pys_generate_token();
                            $.each(options.dynamicEvents.woo_add_to_cart_on_button_click, function (i, tag) {
                                tag.eventID = tmpEventID;
                            });
                        }
                        if (typeof product_id !== 'undefined') {
                            Facebook.onWooAddToCartOnButtonEvent(product_id);
                            Analytics.onWooAddToCartOnButtonEvent(product_id);
                            GTM.onWooAddToCartOnButtonEvent(product_id);
                            Pinterest.onWooAddToCartOnButtonEvent(product_id);
                            Bing.onWooAddToCartOnButtonEvent(product_id);
                        }
                    }
                });

                // Single Product
                // tap try to https://stackoverflow.com/questions/30990967/on-tap-click-event-firing-twice-how-to-avoid-it
                //  $(document) not work
                $('body').onFirst('click','button.single_add_to_cart_button,.single_add_to_cart_button',function (e) {

                    var $button = $(this);

                    if ($button.hasClass('disabled')) {
                        return;
                    }

                    var $form = $button.closest('form');

                    var product_type = Utils.PRODUCT_SIMPLE;

                    if ($form.length === 0) {
                        return ;
                    } else if ($form.hasClass('variations_form')) {
                        product_type = Utils.PRODUCT_VARIABLE;
                    } else if($form.hasClass('bundle_form')) {
                        product_type = Utils.PRODUCT_BUNDLE;
                    } else if($form.hasClass('grouped_form')) {
                        product_type = Utils.PRODUCT_GROUPED;
                    }




                    var product_id;
                    var qty;

                    if (product_type === Utils.PRODUCT_GROUPED) {
                        qty = 1;
                        product_id = parseInt($form.find('*[name="add-to-cart"]').val());
                    } else if (product_type === Utils.PRODUCT_VARIABLE) {
                        product_id = parseInt($form.find('*[name="add-to-cart"]').val());
                        var qtyTag = $form.find('input[name="quantity"]');
                        if(qtyTag.length <= 0) {
                            qtyTag = $form.find('select[name="quantity"]');
                        }
                        qty = parseInt(qtyTag.val());
                    } else {
                        product_id = parseInt($form.find('*[name="add-to-cart"]').val());
                        var qtyTag = $form.find('input[name="quantity"]');
                        if(qtyTag.length <= 0) {
                            qtyTag = $form.find('select[name="quantity"]');
                        }
                        qty = parseInt(qtyTag.val());
                    }

                    if(options.dynamicEvents.hasOwnProperty("woo_add_to_cart_on_button_click")){
                        var tmpEventID = pys_generate_token();
                        $.each(options.dynamicEvents.woo_add_to_cart_on_button_click, function (i, tag) {
                            tag.eventID = tmpEventID;
                        });
                    }

                    Facebook.onWooAddToCartOnSingleEvent(product_id, qty, product_type, $form);
                    Analytics.onWooAddToCartOnSingleEvent(product_id, qty, product_type, $form);

                    GTM.onWooAddToCartOnSingleEvent(product_id, qty, product_type, $form);

                    Pinterest.onWooAddToCartOnSingleEvent(product_id, qty, product_type, false, $form);
                    Bing.onWooAddToCartOnSingleEvent(product_id, qty, product_type, false, $form);

                });

            }

            // WooCommerce RemoveFromCart
            if (options.dynamicEvents.hasOwnProperty("woo_remove_from_cart")) {

                $('body').on('click', options.woo.removeFromCartSelector, function (e) {

                    var $a = $(e.currentTarget),
                        href = $a.attr('href');

                    // extract cart item hash from remove button URL
                    var regex = new RegExp("[\\?&]remove_item=([^&#]*)"),
                        results = regex.exec(href);

                    if (results !== null) {

                        var item_hash = results[1];

                        if (options.dynamicEvents["woo_remove_from_cart"].hasOwnProperty(item_hash)) {
                            var events = options.dynamicEvents["woo_remove_from_cart"][item_hash];
                            Utils.fireEventForAllPixel("onWooRemoveFromCartEvent",events)
                        }

                    }

                });
            }
        }

        // setup EDD events
        if (options.edd.enabled) {

            // EDD AddToCart
            if (options.dynamicEvents.hasOwnProperty("edd_add_to_cart_on_button_click")) {

                $('form.edd_download_purchase_form .edd-add-to-cart').on("click",function (e) {

                    var $button = $(this);
                    var $form = $button.closest('form');
                    var variable_price = $button.data('variablePrice'); // yes/no
                    var price_mode = $button.data('priceMode'); // single/multi
                    var ids = [];
                    var quantities = [];
                    var qty;
                    var id;

                    if (variable_price === 'yes' && price_mode === 'multi') {

                        id = $form.find('input[name="download_id"]').val();

                        // get selected variants
                        $.each($form.find('input[name="edd_options[price_id][]"]:checked'), function (i, el) {
                            ids.push(id + '_' + $(el).val());
                        });

                        // get qty for selected variants
                        $.each(ids, function (i, variant_id) {

                            var variant_index = variant_id.split('_', 2);
                            qty = $form.find('input[name="edd_download_quantity_' + variant_index[1] + '"]').val();

                            if (typeof qty !== 'undefined') {
                                quantities.push(qty);
                            } else {
                                quantities.push(1);
                            }

                        });

                    } else if (variable_price === 'yes' && price_mode === 'single') {

                        id = $form.find('input[name="download_id"]').val();
                        ids.push(id + '_' + $form.find('input[name="edd_options[price_id][]"]:checked').val());

                        qty = $form.find('input[name="edd_download_quantity"]').val();

                        if (typeof qty !== 'undefined') {
                            quantities.push(qty);
                        } else {
                            quantities.push(1);
                        }

                    } else {

                        ids.push($button.data('downloadId'));

                        qty = $form.find('input[name="edd_download_quantity"]').val();

                        if (typeof qty !== 'undefined') {
                            quantities.push(qty);
                        } else {
                            quantities.push(1);
                        }
                    }

                    // fire event for each download/variant
                    $.each(ids, function (i, download_id) {

                        var q = parseInt(quantities[i]);
                        var variant_index = download_id.toString().split('_', 2);
                        var price_index;

                        if (variant_index.length === 2) {
                            download_id = variant_index[0];
                            price_index = variant_index[1];
                        }

                        Facebook.onEddAddToCartOnButtonEvent(download_id, price_index, q);
                        Analytics.onEddAddToCartOnButtonEvent(download_id, price_index, q);
                        GTM.onEddAddToCartOnButtonEvent(download_id, price_index, q);
                        Pinterest.onEddAddToCartOnButtonEvent(download_id, price_index, q);
                        Bing.onEddAddToCartOnButtonEvent(download_id, price_index, q);

                    });

                });

            }


            // EDD RemoveFromCart
            if (options.dynamicEvents.hasOwnProperty("edd_remove_from_cart") ) {

                $('form#edd_checkout_cart_form .edd_cart_remove_item_btn').on("click",function (e) {

                    var href = $(this).attr('href');
                    if(href) {
                        var key = href.substring(href.indexOf('=') + 1).charAt(0);
                        if (options.dynamicEvents.edd_remove_from_cart.hasOwnProperty(key)) {
                            var events = options.dynamicEvents.edd_remove_from_cart[key];
                            Utils.fireEventForAllPixel("onEddRemoveFromCartEvent",events)
                        }
                    }
                });

            }

        }

        // setup Comment Event
        if (options.dynamicEvents.hasOwnProperty("automatic_event_comment")
        ) {

            $('form.comment-form').on("submit",function () {
                if (options.dynamicEvents.hasOwnProperty("automatic_event_comment")) {
                    var pixels = Object.keys(options.dynamicEvents.automatic_event_comment);
                    for (var i = 0; i < pixels.length; i++) {
                        var event = Utils.clone(options.dynamicEvents.automatic_event_comment[pixels[i]]);
                        Utils.copyProperties(Utils.getRequestParams(), event.params);
                        getPixelBySlag(pixels[i]).onCommentEvent(event);
                    }
                }
            });

        }


        // setup Form Event
        if ( options.dynamicEvents.hasOwnProperty("automatic_event_form")) {

            $(document).onFirst('submit', 'form', function (e) {

                var $form = $(this);

                // exclude WP forms
                if ($form.hasClass('comment-form') || $form.hasClass('search-form') || $form.attr('id') === 'adminbarsearch') {
                    return;
                }

                // exclude Woo forms
                if ($form.hasClass('woocommerce-product-search') || $form.hasClass('cart') || $form.hasClass('woocommerce-cart-form') ||
                    $form.hasClass('woocommerce-shipping-calculator') || $form.hasClass('checkout') || $form.hasClass('checkout_coupon')) {
                    return;
                }

                // exclude EDD forms
                if ($form.hasClass('edd_form') || $form.hasClass('edd_download_purchase_form')) {
                    return;
                }
// exclude CF7 forms
                if ($form.hasClass('wpcf7-form')) {
                    return;
                }
                // exclude Forminator forms
                if ($form.hasClass('forminator-custom-form') || $form.hasClass('forminator_ajax')) {
                    return;
                }
                // exclude WPforms forms
                if ($form.hasClass('wpforms-form') || $form.hasClass('wpforms-ajax-form')) {
                    return;
                }
                // exclude Formidable forms
                /*if ($form.hasClass('frm-show-form')) {
                    return;
                }*/
                // exclude Ninja Forms forms
                if ($form.parent().hasClass('nf-form-layout')) {
                    return;
                }
                // exclude Fluent forms
                if ($form.hasClass('frm-fluent-form')) {
                    return;
                }
                if(!options.enable_success_send_form) {
                    var params = {
                        form_id: $form.attr('id'),
                        form_class: $form.attr('class'),
                        text: $form.find('[type="submit"]').is('input') ?
                            $form.find('[type="submit"]').val() : $form.find('[type="submit"]').text()
                    };

                    if (options.dynamicEvents.hasOwnProperty("automatic_event_form")) {
                        var pixels = Object.keys(options.dynamicEvents.automatic_event_form);
                        for (var i = 0; i < pixels.length; i++) {
                            var event = Utils.clone(options.dynamicEvents.automatic_event_form[pixels[i]]);

                            if (pixels[i] === "tiktok") {
                                getPixelBySlag(pixels[i]).fireEvent(event.name, event);
                            } else {
                                Utils.copyProperties(params, event.params,)
                                Utils.copyProperties(Utils.getRequestParams(), event.params);
                                getPixelBySlag(pixels[i]).onFormEvent(event);
                            }
                        }
                    }
                }
            });

            document.addEventListener( 'wpcf7mailsent', function( event ) {
                var form_id = event.detail.contactFormId;
                sendFormAction($(event.target), form_id);
            }, false );
            //Forminator
            $(document).on( 'forminator:form:submit:success', function( event ){
                var form_id = $(event.target).find('input[name="form_id"]').val();
                sendFormAction($(event.target), form_id);
            });

            //WPForm
            $('form.wpforms-form').on('wpformsAjaxSubmitSuccess', (event) => {
                var form_id = $(event.target).attr('data-formid');
                sendFormAction($(event.target), form_id);
            })
            $(document).on( 'frmFormComplete', function( event, form, response ) {
                const form_id = $(form).find('input[name="form_id"]').val();
                sendFormAction($(event.target), form_id);
            });
            // Ninja Forms
            $(document).onFirst('nfFormSubmitResponse', function (event, data) {
                const form_id = data.response.data.form_id;
                sendFormAction($(event.target), form_id);
            });

            var fluentForms = $('form.frm-fluent-form');
            fluentForms.each(function() {
                var $form = $(this);
                $form.on('fluentform_submission_success', function(event) {
                    var $formItem = $(this);
                    var form_id = $formItem.attr('data-form_id');
                    sendFormAction($(event.target), form_id);
                });
            });

        }


        // load pixel APIs
        Utils.loadPixels();
        // setup Enrich content
        if(Utils.isCheckoutPage()) {
            Utils.addCheckoutFields();
        }
    });

    var sendFormAction = function (form_target, formId){
        var params = {
            form_id: formId,
            text: form_target.find('[type="submit"]').is('input') ? form_target.find('[type="submit"]').val() :
                form_target.find('.forminator-button-submit').text() != '' ? form_target.find('.forminator-button-submit').text() :
                    form_target.find('[type="submit"]').text()
        };

        if (options.dynamicEvents.hasOwnProperty("automatic_event_form")) {
            var pixels = Object.keys(options.dynamicEvents.automatic_event_form);
            for (var i = 0; i < pixels.length; i++) {
                var event = options.dynamicEvents.automatic_event_form[pixels[i]];
                if (pixels[i] === "tiktok") {
                    getPixelBySlag(pixels[i]).fireEvent(event.name, event);
                } else {
                    Utils.copyProperties(params, event.params)
                    Utils.copyProperties(Utils.getRequestParams(), event.params);
                    getPixelBySlag(pixels[i]).onFormEvent(event);
                }
            }
        }
    }

}(jQuery, pysOptions);

function pys_generate_token() {
    return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
        (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
    );
}

function getBundlePriceOnSingleProduct(data) {
    var items_sum = 0;
    jQuery(".bundle_form .bundled_product").each(function(index){
        var id = jQuery(this).find(".cart").data("bundled_item_id");
        var item_price = data.prices[id];
        var item_quantity = jQuery(this).find(".bundled_qty").val();
        if(!jQuery(this).hasClass("bundled_item_optional") ||
            jQuery(this).find(".bundled_product_optional_checkbox input").prop('checked')) {
            items_sum += item_price*item_quantity;
        }
    });
    return items_sum;
}

function getPixelBySlag(slug) {
    switch (slug) {
        case "facebook": return window.pys.Facebook;
        case "ga": return window.pys.Analytics;
        case "gtm": return window.pys.GTM;
        case "bing": return window.pys.Bing;
        case "pinterest": return window.pys.Pinterest;
    }
}
function getUrlParameter(sParam) {
    var sPageURL = window.location.search.substring(1),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;

    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
        }
    }
    return false;
};
function getCookieYes(key) {
    const cookiesObj = document.cookie
        .split(";")
        .reduce((ac, cv) => {
            const [k, v] = cv.split("=");
            if (k && v) ac[k.trim()] = v;
            return ac;
        }, {});
    const consentCookie = cookiesObj["cookieyes-consent"] || cookiesObj["wt_consent"];
    if (!consentCookie) return undefined;
    const { [key]: value } = consentCookie
        .split(",")
        .reduce((obj, pair) => {
            const [k, v] = pair.split(":");
            if (k && v) obj[k] = v;
            return obj;
        }, {});
    return value;
}
function getRootDomain(useSubdomain = false) {
    const hostname = window.location.hostname; // Get the current hostname
    // Check if tldjs is defined before using it
    if (typeof tldjs === "undefined") {
        console.warn("tldjs is not defined");
        return hostname; // Return hostname as a fallback
    }

    const rootDomain = tldjs.getDomain(hostname); // Use tldjs to extract the root domain

    // Return the root domain with or without a leading dot based on useSubdomain
    return rootDomain ? (useSubdomain ? '.' + rootDomain : rootDomain) : hostname;
};