245 skills found · Page 5 of 9
Champ1604 / Botvar config = { name: 'KTN Bot', userid: function () { return toId(this.name); }, group: '@', join: true, rooms: ['lobby'], punishvals: { 1: 'warn', 2: 'mute', 3: 'hourmute', 4: 'roomban', 5: 'ban' }, privaterooms: ['staff'], hosting: {}, laddering: true, ladderPercentage: 70, debug: false }; /** * On server start, this sets up fake user connection for bot and uses a fake ip. * It gets a the fake user from the users list and modifies it properties. In addition, * it sets up rooms that bot will join and adding the bot user to Users list and * removing the fake user created which already filled its purpose * of easily filling in the gaps of all the user's property. */ function joinServer() { if (process.uptime() > 5) return; // to avoid running this function again when reloading var worker = new(require('./fake-process.js').FakeProcess)(); Users.socketConnect(worker.server, undefined, '1', '76.19.156.198'); for (var i in Users.users) { if (Users.users[i].connections[0].ip === '76.19.156.198') { var bot = Users.users[i]; bot.name = config.name; bot.named = true; bot.renamePending = config.name; bot.authenticated = true; bot.userid = config.userid(); bot.group = config.group; if (config.join === true) { for (var all in Rooms.rooms) { if (all != 'global') { bot.roomCount[all] = 1; } } Users.users[bot.userid] = bot; for (var allRoom in Rooms.rooms) { if (allRoom != 'global') { Rooms.rooms[allRoom].users[Users.users[bot.userid]] = Users.users[bot.userid]; } } } else { for (var index in config.rooms) { if (index != 'global') { bot.roomCount[joinRooms[index]] = 1; } } Users.users[bot.userid] = bot; for (var jIndex in config.rooms) { if (jIndex != 'global') { Rooms.rooms[jIndex].users[Users.users[bot.userid]] = Users.users[bot.userid]; } } } delete Users.users[i]; } } } const ACTION_COOLDOWN = 3 * 1000; const FLOOD_MESSAGE_NUM = 5; const FLOOD_PER_MSG_MIN = 500; // this is the minimum time between messages for legitimate spam. It's used to determine what "flooding" is caused by lag const FLOOD_MESSAGE_TIME = 6 * 1000; const MIN_CAPS_LENGTH = 18; const MIN_CAPS_PROPORTION = 0.8; var parse = { chatData: {}, processChatData: function (user, room, connection, message) { if (user.userid === config.userid() || !room.users[config.userid()]) return true; var cmds = this.processBotCommands(user, room, connection, message); if (cmds) return false; message = message.trim().replace(/ +/g, " "); // removes extra spaces so it doesn't trigger stretching this.updateSeen(user.userid, 'c', room.title); var time = Date.now(); if (!this.chatData[user]) this.chatData[user] = { zeroTol: 0, lastSeen: '', seenAt: time }; if (!this.chatData[user][room]) this.chatData[user][room] = { times: [], points: 0, lastAction: 0 }; this.chatData[user][room].times.push(time); var pointVal = 0; var muteMessage = ''; // moderation for flooding (more than x lines in y seconds) var isFlooding = (this.chatData[user][room].times.length >= FLOOD_MESSAGE_NUM && (time - this.chatData[user][room].times[this.chatData[user][room].times.length - FLOOD_MESSAGE_NUM]) < FLOOD_MESSAGE_TIME && (time - this.chatData[user][room].times[this.chatData[user][room].times.length - FLOOD_MESSAGE_NUM]) > (FLOOD_PER_MSG_MIN * FLOOD_MESSAGE_NUM)); if (isFlooding) { if (pointVal < 2) { pointVal = 2; muteMessage = ', flooding'; } } // moderation for caps (over x% of the letters in a line of y characters are capital) var capsMatch = message.replace(/[^A-Za-z]/g, '').match(/[A-Z]/g); if (capsMatch && toId(message).length > MIN_CAPS_LENGTH && (capsMatch.length >= Math.floor(toId(message).length * MIN_CAPS_PROPORTION))) { if (pointVal < 1) { pointVal = 1; muteMessage = ', caps'; } } // moderation for stretching (over x consecutive characters in the message are the same) var stretchMatch = message.toLowerCase().match(/(.)\1{7,}/g) || message.toLowerCase().match(/(..+)\1{4,}/g); // matches the same character (or group of characters) 8 (or 5) or more times in a row if (stretchMatch) { if (pointVal < 1) { pointVal = 1; muteMessage = ', stretching'; } } if (pointVal > 0 && !(time - this.chatData[user][room].lastAction < ACTION_COOLDOWN)) { var cmd = 'mute'; // defaults to the next punishment in config.punishVals instead of repeating the same action (so a second warn-worthy // offence would result in a mute instead of a warn, and the third an hourmute, etc) if (this.chatData[user][room].points >= pointVal && pointVal < 4) { this.chatData[user][room].points++; cmd = config.punishvals[this.chatData[user][room].points] || cmd; } else { // if the action hasn't been done before (is worth more points) it will be the one picked cmd = config.punishvals[pointVal] || cmd; this.chatData[user][room].points = pointVal; // next action will be one level higher than this one (in most cases) } if (config.privaterooms.indexOf(room) >= 0 && cmd === 'warn') cmd = 'mute'; // can't warn in private rooms // if the bot has % and not @, it will default to hourmuting as its highest level of punishment instead of roombanning if (this.chatData[user][room].points >= 4 && config.group === '%') cmd = 'hourmute'; if (this.chatData[user].zeroTol > 4) { // if zero tolerance users break a rule they get an instant roomban or hourmute muteMessage = ', zero tolerance user'; cmd = config.group !== '%' ? 'roomban' : 'hourmute'; } if (this.chatData[user][room].points >= 2) this.chatData[user].zeroTol++; // getting muted or higher increases your zero tolerance level (warns do not) this.chatData[user][room].lastAction = time; room.add('|c|' + user.group + user.name + '|' + message); CommandParser.parse(('/' + cmd + ' ' + user.userid + muteMessage), room, Users.get(config.name), Users.get(config.name).connections[0]); return false; } return true; }, updateSeen: function (user, type, detail) { user = toId(user); type = toId(type); if (type in {j: 1, l: 1, c: 1} && (config.rooms.indexOf(toId(detail)) === -1 || config.privaterooms.indexOf(toId(detail)) > -1)) return; var time = Date.now(); if (!this.chatData[user]) this.chatData[user] = { zeroTol: 0, lastSeen: '', seenAt: time }; if (!detail) return; var msg = ''; if (type in {j: 1, l: 1, c: 1}) { msg += (type === 'j' ? 'joining' : (type === 'l' ? 'leaving' : 'chatting in')) + ' ' + detail.trim() + '.'; } else if (type === 'n') { msg += 'changing nick to ' + ('+%@&#~'.indexOf(detail.trim().charAt(0)) === -1 ? detail.trim() : detail.trim().substr(1)) + '.'; } if (msg) { this.chatData[user].lastSeen = msg; this.chatData[user].seenAt = time; } }, processBotCommands: function (user, room, connection, message) { if (room.type !== 'chat' || message.charAt(0) !== '.') return; var cmd = '', target = '', spaceIndex = message.indexOf(' '), botDelay = (Math.floor(Math.random() * 6) * 1000), now = Date.now(); if (spaceIndex > 0) { cmd = message.substr(1, spaceIndex - 1); target = message.substr(spaceIndex + 1); } else { cmd = message.substr(1); target = ''; } cmd = cmd.toLowerCase(); if ((message.charAt(0) === '.' && Object.keys(Bot.commands).join(' ').toString().indexOf(cmd) >= 0 && message.substr(1) !== '') && !Bot.config.debug) { if ((now - user.lastBotCmd) * 0.001 < 30) { connection.sendTo(room, 'Please wait ' + Math.floor((30 - (now - user.lastBotCmd) * 0.001)) + ' seconds until the next command.'); return true; } user.lastBotCmd = now; } if (commands[cmd]) { var context = { sendReply: function (data) { setTimeout(function () { room.add('|c|' + config.group + config.name + '|' + data); }, botDelay); }, sendPm: function (data) { var message = '|pm|' + config.group + config.name + '|' + user.group + user.name + '|' + data; user.send(message); }, can: function (permission) { if (!user.can(permission)) { setTimeout(function () { connection.sendTo(room, '.' + cmd + ' - Access denied.'); }, botDelay); return false; } return true; }, parse: function (target) { CommandParser.parse(target, room, Users.get(Bot.config.name), Users.get(Bot.config.name).connections[0]); }, }; if (typeof commands[cmd] === 'function') { commands[cmd].call(context, target, room, user, connection, cmd, message); } } }, getTimeAgo: function (time) { time = Date.now() - time; time = Math.round(time / 1000); // rounds to nearest second var seconds = time % 60; var times = []; if (seconds) times.push(String(seconds) + (seconds === 1 ? ' second' : ' seconds')); var minutes, hours, days; if (time >= 60) { time = (time - seconds) / 60; // converts to minutes minutes = time % 60; if (minutes) times = [String(minutes) + (minutes === 1 ? ' minute' : ' minutes')].concat(times); if (time >= 60) { time = (time - minutes) / 60; // converts to hours hours = time % 24; if (hours) times = [String(hours) + (hours === 1 ? ' hour' : ' hours')].concat(times); if (time >= 24) { days = (time - hours) / 24; // you can probably guess this one if (days) times = [String(days) + (days === 1 ? ' day' : ' days')].concat(times); } } } if (!times.length) times.push('0 seconds'); return times.join(', '); } }; var commands = { guide: function (target, room, user) { var commands = Object.keys(Bot.commands); commands = commands.join(', ').toString(); this.sendReply('List of bot commands: ' + commands); }, say: function (target, room, user) { if (!this.can('say')) return; this.sendReply(target); }, tell: function (target, room, user) { if (!this.can('bottell')) return; var parts = target.split(','); if (parts.length < 2) return; this.parse('/tell ' + toId(parts[0]) + ', ' + Tools.escapeHTML(parts[1])); this.sendReply('Message sent to ' + parts[0] + '.'); }, penislength: function (target, room, user) { this.sendReply('8.5 inches from the base. Perv.'); }, seen: function (target, room, user, connection) { if (!target) return; if (!toId(target) || toId(target).length > 18) return connection.sendTo(room, 'Invalid username.'); if (!parse.chatData[toId(target)] || !parse.chatData[toId(target)].lastSeen) { return this.sendPm('The user ' + target.trim() + ' has never been seen chatting in rooms.'); } return this.sendPm(target.trim() + ' was last seen ' + parse.getTimeAgo(parse.chatData[toId(target)].seenAt) + ' ago, ' + parse.chatData[toId(target)].lastSeen); }, salt: function (target, room, user) { if (!global.salt) global.salt = 0; salt++; this.sendReply(salt + '% salty.'); }, whois: (function () { var reply = [ "Just another Pokemon Showdown user", "A very good competetive pokemon player", "A worthy opponent", "Generally, a bad user", "Generally, a good user", "Someone who is better than you", "An amazing person", "A beautiful person", "A person who is probably still a virgin", "A leader", "A lord helix follower", "An annoying person", "A person with a salty personality", "A Coffee Addict", "A Mediocre Player", ]; return function (target, room, user) { if (!target) return; var message = reply[Math.floor(Math.random() * reply.length)]; target = toId(target); if (target === 'creaturephil') message = 'An experienced **coder** for pokemon showdown. He has coded for over 5 servers such as kill the noise, moxie, aerdeith, nova, etc. Please follow him on github: https://github.com/CreaturePhil'; if (target === config.userid()) message = 'That\'s me.'; if (target === 'zarel') message = 'Pokemon Showdown Creator'; if (target === 'stevoduhhero') message = 'STEVO DUH GOD DAMN HERO! Respect him!'; if (target === 'rickycocaine') message = 'RICKY COCAAAAAAAINE'; this.sendReply(message); }; })(), helix: (function () { var reply = [ "Signs point to yes.", "Yes.", "Reply hazy, try again.", "Without a doubt.", "My sources say no.", "As I see it, yes.", "You may rely on it.", "Concentrate and ask again.", "Outlook not so good.", "It is decidedly so.", "Better not tell you now.", "Very doubtful.", "Yes - definitely.", "It is certain.", "Cannot predict now.", "Most likely.", "Ask again later.", "My reply is no.", "Outlook good.", "Don't count on it." ]; return function (target, room, user) { if (!target) return; var message = reply[Math.floor(Math.random() * reply.length)]; this.sendPm(message); }; })(), maketournament: function (target, room, user) { if (!this.can('maketournament')) return; if (Tournaments.tournaments[room.id]) return this.sendReply('A tournament is already running in the room.'); var parts = target.split(','), self = this, counter = 1; if (parts.length < 2 || Tools.getFormat(parts[0]).effectType !== 'Format' || !/[0-9]/.test(parts[1])) return this.sendPm('Correct Syntax: !maketournament [tier], [time/amount of players]'); if (parts[1].indexOf('minute') >= 0) { var time = Number(parts[1].split('minute')[0]); this.parse('/tour create ' + parts[0] + ', elimination'); this.sendReply('**You have ' + time + ' minute' + parts[1].split('minute')[1] + ' to join the tournament.**'); var loop = function () { setTimeout(function () { if (!Tournaments.tournaments[room.id]) return; if (counter === time) { if (Tournaments.tournaments[room.id].generator.users.size < 2) { self.parse('/tour end'); return self.sendReply('**The tournament was canceled because of lack of players.**'); } return self.parse('/tour start'); } if ((time - counter) === 1) { self.sendReply('**You have ' + (time - counter) + ' minute to sign up for the tournament.**'); } else { self.sendReply('**You have ' + (time - counter) + ' minutes to sign up for the tournament.**'); } counter++; if (!Tournaments.tournaments[room.id].isTournamentStarted) loop(); }, 1000 * 60); }; loop(); return; } if (Number(parts[1]) < 2) return; parts[1] = parts[1].replace(/[^0-9 ]+/g, ''); this.parse('/tour create ' + parts[0] + ', elimination'); this.sendReply('**The tournament will begin when ' + parts[1] + ' players join.**'); var playerLoop = function () { setTimeout(function () { if (!Tournaments.tournaments[room.id]) return; if (Tournaments.tournaments[room.id].generator.users.size === Number(parts[1])) { self.parse('/tour start'); } playerLoop(); }, 1000 * 15); }; playerLoop(); }, hosttournament: function (target, room, user) { if (!this.can('hosttournament')) return; if (target.toLowerCase() === 'end') { if (!Bot.config.hosting[room.id]) return this.sendPm('I\'m not hosting tournaments.'); Bot.config.hosting[room.id] = false; return this.sendReply('I will now stop hosting tournaments.'); } if (Bot.config.hosting[room.id]) return this.sendReply('I\'m already hosting tournaments.'); Bot.config.hosting[room.id] = true this.sendReply('**I will now be hosting tournaments.**'); var self = this, _room = room, _user = user; var poll = function () { if (!Bot.config.hosting[_room.id]) return; setTimeout(function () { if (Poll[_room.id].question) self.parse('/endpoll'); self.parse('/poll Tournament tier?, ' + Object.keys(Tools.data.Formats).filter(function (f) { return Tools.data.Formats[f].effectType === 'Format'; }).join(", ")); setTimeout(function () { self.parse('/endpoll'); Bot.commands.maketournament.call(self, (Poll[_room.id].topOption + ', 2 minute'), _room, _user); }, 1000 * 60 * 2); }, 1000 * 5); }; var loop = function () { setTimeout(function () { if (!Tournaments.tournaments[_room.id] && !Poll[_room.id].question) poll(); if (Bot.config.hosting[_room.id]) loop(); }, 1000 * 60); }; poll(); loop(); }, join: function (target, room, user, connection) { if (!user.can('kick')) return; if (!target || !Rooms.get(target.toLowerCase())) return; if (Rooms.get(target.toLowerCase()).users[Bot.config.name]) return this.sendPm('I\'m already in this room.'); Users.get(Bot.config.name).joinRoom(Rooms.get(target.toLowerCase())); var botDelay = (Math.floor(Math.random() * 6) * 1000) setTimeout(function() { connection.sendTo(room, Bot.config.name + ' has join ' + target + ' room.'); }, botDelay); }, leave: function (target, room, user, connection) { if (!user.can('kick')) return; if (!target || !Rooms.get(target.toLowerCase())) return; Users.get(Bot.config.name).leaveRoom(Rooms.get(target.toLowerCase())); var botDelay = (Math.floor(Math.random() * 6) * 1000) setTimeout(function() { connection.sendTo(room, Bot.config.name + ' has left ' + target + ' room.'); }, botDelay); }, rps: function (target, room, user) { if (!target) return; var options = ['rock', 'paper', 'scissors'], rng = options[Math.floor(Math.random() * options.length)], target = toId(target); if (rng === target) return this.sendReply('I chose ' + rng + '. The result is a tie!'); if (rng === options[0]) { if (target === options[1]) return this.sendReply('I chose ' + rng + '. ' + user.name + ' wins!'); if (target === options[2]) return this.sendReply('I chose ' + rng + '. I win and ' + user.name + ' loses!'); } if (rng === options[1]) { if (target === options[2]) return this.sendReply('I chose ' + rng + '. ' + user.name + ' wins!'); if (target === options[0]) return this.sendReply('I chose ' + rng + '. I win and ' + user.name + ' loses!'); } if (rng === options[2]) { if (target === options[0]) return this.sendReply('I chose ' + rng + '. ' + user.name + ' wins!'); if (target === options[1]) return this.sendReply('I chose ' + rng + '. I win and ' + user.name + ' loses!'); } }, }; exports.joinServer = joinServer; exports.config = config; exports.parse = parse; exports.commands = commands; // Battling AI exports.teams=new Object;var fs=require("fs");fs.readFile("./config/bot-teams.json",function(e,t){if(e)return;t=""+t;exports.teams=JSON.parse(t)});exports.addTeam=function(e,t){if(t&&t.length&&typeof t=="string"){if(!Bot.teams[e])Bot.teams[e]=new Array;Bot.teams[e].push(t);fs.writeFile("./config/bot-teams.json",JSON.stringify(Bot.teams))}};exports.randomTeam=function(e){if(e.split("random").length-1>0)return"";var t;if(Bot.teams[e])t=Bot.teams[e][Math.floor(Math.random()*Bot.teams[e].length)];if(!t)t="";return t};exports.booty={addBattle:function(e,t){Bot.booty.battles["battle-"+e.toLowerCase().replace(/[^a-z0-9]+/g,"")+"-"+(Rooms.global.lastBattle+1)]={booty:{user:Users.get(Bot.config.name),exposed:[{},{},{},{},{},{}]},opp:{user:t,exposed:[{},{},{},{},{},{}]}}},battles:new Object,check:function(){global.bootytimeout=setTimeout(function(){if(!Bot.booty.battles){Bot.booty.check();return}for(var e in Bot.booty.battles){if(Bot.booty.battles[e]){var t=Rooms.rooms[e];if(t){var n=t.battle;if(n){n=n.field;if(n[toId(Bot.config.name)])if(n[toId(Bot.config.name)].side)if(n[toId(Bot.config.name)].side.pokemon)if(n[toId(Bot.config.name)].side.pokemon[0].condition.charAt(0)=="0")Bot.booty.forceSwitch(e);if(n[toId(Bot.config.name)])if(n[toId(Bot.config.name)].forceSwitch)Bot.booty.forceSwitch(e)}}}}Bot.booty.check()},2e3)},forceSwitch:function(e){var t;if(Rooms.rooms[e])t=Rooms.rooms[e];if(!t)return;var n=Bot.booty.battles[t.id];var r=t.battle.field,i=r[toId(Bot.config.name)].side.pokemon;var s=i.length;if(!o){var o=new Array;for(var u=0;u<s;u++)o.push(u)}var a=Math.floor(Math.random()*s);while(a==1&&o.indexOf(a)==-1&&i[a].condition.charAt(0)=="0")a=Math.floor(Math.random()*s);t.decision(Users.get(toId(Bot.config.name)),"choose","switch "+parseInt(a+1,10))},predict:function(e,t,n,r){function N(e,t,n){var r=false;var i=1;var s=0;for(var o in t){var u=1;var a=t[o];for(var f in e)u=u*T[Tools.data.TypeChart[e[f]].damageTaken[a]];if(u>=2)r=true;i=i*u;if(s<u)s=u}if(n){if(n.total)return i;else if(n.best)return s}return r}function C(e,t){var n=e.baseStats;var r=0;for(var i in n)r+=n[i];var s=e.abilities;var o=e.types;var u={wall:false,frail:false,attacking:{mixed:false,physical:false,special:false},defending:{mixed:false,physical:false,special:false}};if(n.hp<100)u.frail=true;if((n.hp+n.def+n.spd)/r>.474)u.wall=true;var a=n.atk+n.spa;var f=n.atk/a;var l=n.spa/a;if(12.75>Math.abs(f-l)*100){u.attacking.mixed=true;u.attacking.physical=true;u.attacking.special=true}else{if(f>l)u.attacking.physical=true;if(l>f)u.attacking.special=true}var c=n.def+n.spd;var h=n.def/c;var p=n.spd/c;if(12.75>Math.abs(h-p)*100){if(n.def>=75)u.defending.physical=true;if(n.spd>=75)u.defending.special=true;if(n.def>=75&&n.spd>=75)u.defending.mixed=true}else{if(h>p)if(n.def>=75)u.defending.physical=true;if(p>h)if(n.spd>=75)u.defending.special=true}if(u.wall||u.tank)u.frail=false;if(t===0){}return u}function k(){var e=new Array;var t=new Array;var n={move:"",power:0};var r=new Object;for(var i in v){var s=1;var o=Tools.data.Movedex[toId(v[i])];var u=o.type;for(var i in E.types)s=s*T[Tools.data.TypeChart[E.types[i]].damageTaken[u]];var c=a[0].baseAbility;var h=a[0].item;if(c=="thickfat"&&(u=="Fire"||u=="Ice"))s=s*.5;if((h=="airballoon"||c=="levitate")&&u=="Ground")s=0;var p=1;if(w.types.indexOf(u)!=-1)p=1.5;var d=s*o.basePower*p;e.push(s);t.push(d);if(d>n.power)n={move:o.name,power:d,info:v[i]};if(o.category=="Status"){r[o.id]=v[i]}}var m,g;var y="";if(f[0].item.split("ite").length-1>0&&f[0].details.split("-mega").length-1==0)y=" mega";if(m&&!g){}else{}return"move "+n.move+y+"|"+l}function L(){return A()}function A(){function n(e,t){var n=0;if(e.bestmovepower>t)n++;if(e.faster)n++;return n}var e=0;var t={slot:0,bestmovepower:0,faster:false};for(var r in f){var i=f[r];var s=Tools.data.Pokedex[toId(i.details.split(",")[0])];if(i.condition.charAt(0)!="0"){e++;var o=new Array;for(var u in i.moves)o[u]=i.moves[u].replace(new RegExp("[0-9]","g"),"");var a=new Array;for(var u in o)a.push(Tools.data.Movedex[toId(o[u])].type);var l=false;if(s.baseStats.spe>E.baseStats.spe)l=true;var c=0;for(var h in o){var p=1;var d=Tools.data.Movedex[toId(o[h])];var v=d.type;for(var m in E.types)p=p*T[Tools.data.TypeChart[E.types[m]].damageTaken[v]];var g=1;if(s.types.indexOf(v)!=-1)g=1.5;var y=p*d.basePower*g;if(y>c)c=y}var b={slot:r,bestmovepower:c,faster:l};if(n(t,b.bestmovepower)<n(b,t.bestmovepower))t=b}}t.slot++;if(e==1||t.slot==1)k();return"switch "+t.slot}function O(){var e=false;var t=false;var n=E.baseStats.spe;var r=w.baseStats.spe;if(n>r)t=true;var i=N(w.types,E.types);var s=N(E.types,w.types);var o=new Array;for(var u in v)o.push(Tools.data.Movedex[toId(v[u].move)].type);var a=N(E.types,o);if(!(!t&&i&&a&&x.frail)){if(t&&S.frail)e=true;if(t&&i)e=true;if(i)e=true}if(x.wall&&S.wall)e=1;if(e===true){var f=L();if(f.replace(/^\D+/g,"")!=1)return f}else if(e==1)A();return k()}var i;var s={change:false};var o=Users.get(Bot.config.name);if(!t.battle.field||!o)return false;if(!t.battle.field[o.userid])return false;var u=t.battle.field,a=u[n.userid].side.pokemon,f=u[o.userid].side.pokemon;if(a[0].condition.charAt(0)=="0"&&f[0].condition.charAt(0)!="0")return false;if(f[0].condition.charAt(0)=="0")s.change=true;var l=u[n.userid].rqid;var c=Bot.booty.battles[t.id];c.turn=l;if(r=="team"){var h=f.length;var p=Math.floor(Math.random()*h);t.decision(o,"choose","team "+p+"|"+l);return false}if(!u[o.userid]){return false}if(!u[o.userid].active){return false}var d=u[o.userid].active[0].moves;var v=new Array;for(var m in d){var g=d[m];if(!g.disabled&&g.pp)v.push(g)}var y=a[0].details.split(",")[0];var b=f[0].details.split(",")[0];var w=Tools.data.Pokedex[toId(b)];var E=Tools.data.Pokedex[toId(y)];var S=C(w,0);var x=C(E);var T=[1,2,.5,0];switch(r){case"switch":case"move":case"choose":if(!s.change){var M=u[toId(Bot.config.name)].active;if(!M)M=false;else M=M[0].trapped;if(M){i=k()}else{i=O()}}else{i=A()}t.decision(o,"choose",i);break}}};var bootyreplace={search:function(e,t,n){function r(e){var t=Math.floor(Math.random()*100)+1;if(t>e)return false;return true}if(!Bot.config.laddering)return;if(r(Bot.config.ladderPercentage))return;if(!toId(e))return false;var i=toId(e);var s=true;var o=Tools.fastUnpackTeam(n.team);var u=TeamValidator.validateTeamSync(i,o);if(u&&u.length)s=false;if((e=="ou"||e.split("random").length-1>0)&&r(100)&&s){Bot.booty.addBattle(e,n);Rooms.global.startBattle(Users.get(Bot.config.name),n,e,true,Bot.randomTeam(e),n.team);Rooms.global.cancelSearch(n);return false}if(e){if(Config.pmmodchat){var a=n.group;if(Config.groupsranking.indexOf(a)<Config.groupsranking.indexOf(Config.pmmodchat)){var f=Config.groups[Config.pmmodchat].name||Config.pmmodchat;this.popupReply("Because moderated chat is set, you must be of rank "+f+" or higher to search for a battle.");return false}}Rooms.global.searchBattle(n,e);if(e=="ou"||e.split("random").length-1>0){Users.get(Bot.config.name).team=Bot.randomTeam(e);Bot.booty.addBattle(e,n);Users.get(Bot.config.name).prepBattle(e,"search",null,Rooms.global.finishSearchBattle.bind(Rooms.global,Users.get(Bot.config.name),e))}}else{Rooms.global.cancelSearch(n)}},challenge:function(e,t,n,r){e=this.splitTarget(e);var i=this.targetUser;if(!i||!i.connected){return this.popupReply("The user '"+this.targetUsername+"' was not found.")}if(i.blockChallenges&&!n.can("bypassblocks",i)){return this.popupReply("The user '"+this.targetUsername+"' is not accepting challenges right now.")}if(Config.pmmodchat){var s=n.group;if(Config.groupsranking.indexOf(s)<Config.groupsranking.indexOf(Config.pmmodchat)){var o=Config.groups[Config.pmmodchat].name||Config.pmmodchat;this.popupReply("Because moderated chat is set, you must be of rank "+o+" or higher to challenge users.");return false}}n.prepBattle(e,"challenge",r,function(t){if(t)n.makeChallenge(i,e)});if(this.targetUsername==Bot.config.name){if(!global.bootytimeout)Bot.booty.check();var u=Users.get(Bot.config.name);u.prepBattle(e,"challenge",u.connections[0],function(e){if(e)u.acceptChallengeFrom(n.userid)});Bot.booty.addBattle(e,n);if(e.split("random").length-1>0){}else{if(n.team!=undefined&&n.team!="")Bot.addTeam(e,n.team);var a=Bot.randomTeam(e);if(a==""||!a){a=n.team;if(a==undefined||a=="")a=""}u.team=a}}},move:function(e,t,n){if(!t.decision)return this.sendReply("You can only do this in battle rooms.");t.decision(n,"choose","move "+e);if(Bot.booty.battles[t.id])Bot.booty.predict(e,t,n,"move")},sw:"switch","switch":function(e,t,n){if(!t.decision)return this.sendReply("You can only do this in battle rooms.");t.decision(n,"choose","switch "+parseInt(e,10));if(Bot.booty.battles[t.id])Bot.booty.predict(e,t,n,"switch")},choose:function(e,t,n){if(!t.decision)return this.sendReply("You can only do this in battle rooms.");t.decision(n,"choose",e);if(Bot.booty.battles[t.id])Bot.booty.predict(e,t,n,"choose")},team:function(e,t,n){if(!t.decision)return this.sendReply("You can only do this in battle rooms.");t.decision(n,"choose","team "+e);if(Bot.booty.battles[t.id])Bot.booty.predict(e,t,n,"team")},part:function(e,t,n,r){if(t.id==="global")return false;var i=Rooms.get(e);if(e&&!i){return this.sendReply("The room '"+e+"' does not exist.")}n.leaveRoom(i||t,r)}};for(var i in bootyreplace)CommandParser.commands[i]=bootyreplace[i]; joinServer();
drissi1990 / Googletagservices(function(){var l;function aa(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}function ba(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:aa(a)}}function ca(a){if(!(a instanceof Array)){a=ba(a);for(var b,c=[];!(b=a.next()).done;)c.push(b.value);a=c}return a}var da="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},ea;if("function"==typeof Object.setPrototypeOf)ea=Object.setPrototypeOf;else{var fa;a:{var ha={Ea:!0},ia={};try{ia.__proto__=ha;fa=ia.Ea;break a}catch(a){}fa=!1}ea=fa?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var ja=ea;function ka(a,b){a.prototype=da(b.prototype);a.prototype.constructor=a;if(ja)ja(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c]}var la="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ma="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this;function na(a,b){if(b){var c=ma;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&la(c,a,{configurable:!0,writable:!0,value:b})}}na("String.prototype.endsWith",function(a){return a?a:function(b,c){if(null==this)throw new TypeError("The 'this' value for String.prototype.endsWith must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype.endsWith must not be a regular expression");void 0===c&&(c=this.length);c=Math.max(0,Math.min(c|0,this.length));for(var d=b.length;0<d&&0<c;)if(this[--c]!=b[--d])return!1;return 0>=d}});na("Array.prototype.find",function(a){return a?a:function(b,c){a:{var d=this;d instanceof String&&(d=String(d));for(var e=d.length,f=0;f<e;f++){var g=d[f];if(b.call(c,g,f,d)){b=g;break a}}b=void 0}return b}});var oa="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(a[e]=d[e])}return a};na("Object.assign",function(a){return a||oa});var p=this||self;function q(a){return"string"==typeof a}function pa(a){return"number"==typeof a}function qa(){if(null===ra)a:{var a=p.document;if((a=a.querySelector&&a.querySelector("script[nonce]"))&&(a=a.nonce||a.getAttribute("nonce"))&&sa.test(a)){ra=a;break a}ra=""}return ra}var sa=/^[\w+/_-]+[=]{0,2}$/,ra=null;function ta(a){a=a.split(".");for(var b=p,c=0;c<a.length;c++)if(b=b[a[c]],null==b)return null;return b}function ua(){}function va(a){a.ga=void 0;a.j=function(){return a.ga?a.ga:a.ga=new a}}function wa(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function xa(a){return null===a}function ya(a){return"array"==wa(a)}function za(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}function Aa(a){return a[Ba]||(a[Ba]=++Ca)}var Ba="closure_uid_"+(1E9*Math.random()>>>0),Ca=0;function Da(a,b,c){return a.call.apply(a.bind,arguments)}function Ea(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(e,d);return a.apply(b,e)}}return function(){return a.apply(b,arguments)}}function Fa(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?Fa=Da:Fa=Ea;return Fa.apply(null,arguments)}function Ga(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();d.push.apply(d,arguments);return a.apply(this,d)}}function r(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a};var Ha=(new Date).getTime();function Ia(a,b){for(var c=a.length,d=q(a)?a.split(""):a,e=0;e<c;e++)e in d&&b.call(void 0,d[e],e,a)}function Ja(a,b){for(var c=a.length,d=[],e=0,f=q(a)?a.split(""):a,g=0;g<c;g++)if(g in f){var h=f[g];b.call(void 0,h,g,a)&&(d[e++]=h)}return d}function Ka(a,b){for(var c=a.length,d=Array(c),e=q(a)?a.split(""):a,f=0;f<c;f++)f in e&&(d[f]=b.call(void 0,e[f],f,a));return d}function La(a,b){for(var c=a.length,d=q(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a))return!0;return!1}function Ma(a,b){a:{for(var c=a.length,d=q(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){b=e;break a}b=-1}return 0>b?null:q(a)?a.charAt(b):a[b]}function Na(a,b){a:{for(var c=q(a)?a.split(""):a,d=a.length-1;0<=d;d--)if(d in c&&b.call(void 0,c[d],d,a)){b=d;break a}b=-1}return 0>b?null:q(a)?a.charAt(b):a[b]}function Oa(a,b){a:if(q(a))a=q(b)&&1==b.length?a.indexOf(b,0):-1;else{for(var c=0;c<a.length;c++)if(c in a&&a[c]===b){a=c;break a}a=-1}return 0<=a};function Pa(){return function(){return!xa.apply(this,arguments)}}function Qa(a){var b=!1,c;return function(){b||(c=a(),b=!0);return c}}function Ra(a){var b=a;return function(){if(b){var c=b;b=null;c()}}};function Sa(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return!0;return!1}function Ta(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}function Ua(a,b){return null!==a&&b in a};function Va(){this.a="";this.h=Wa}Va.prototype.f=!0;Va.prototype.b=function(){return this.a.toString()};function Xa(a){if(a instanceof Va&&a.constructor===Va&&a.h===Wa)return a.a;wa(a);return"type_error:TrustedResourceUrl"}var Wa={};function Ya(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]}var Za=/&/g,$a=/</g,ab=/>/g,bb=/"/g,cb=/'/g,db=/\x00/g;function eb(a,b){return-1!=a.indexOf(b)}function fb(a,b){var c=0;a=Ya(String(a)).split(".");b=Ya(String(b)).split(".");for(var d=Math.max(a.length,b.length),e=0;0==c&&e<d;e++){var f=a[e]||"",g=b[e]||"";do{f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];if(0==f[0].length&&0==g[0].length)break;c=gb(0==f[1].length?0:parseInt(f[1],10),0==g[1].length?0:parseInt(g[1],10))||gb(0==f[2].length,0==g[2].length)||gb(f[2],g[2]);f=f[3];g=g[3]}while(0==c)}return c}function gb(a,b){return a<b?-1:a>b?1:0};function hb(){this.a="";this.h=ib}hb.prototype.f=!0;hb.prototype.b=function(){return this.a.toString()};function jb(a){if(a instanceof hb&&a.constructor===hb&&a.h===ib)return a.a;wa(a);return"type_error:SafeUrl"}var kb=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i,ib={};function lb(a){var b=new hb;b.a=a;return b}lb("about:blank");var mb;a:{var nb=p.navigator;if(nb){var ob=nb.userAgent;if(ob){mb=ob;break a}}mb=""}function t(a){return eb(mb,a)}function pb(a){for(var b=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,c=[],d;d=b.exec(a);)c.push([d[1],d[2],d[3]||void 0]);return c};function qb(){return(t("Chrome")||t("CriOS"))&&!t("Edge")}function rb(){function a(e){e=Ma(e,d);return c[e]||""}var b=mb;if(t("Trident")||t("MSIE"))return tb(b);b=pb(b);var c={};Ia(b,function(e){c[e[0]]=e[1]});var d=Ga(Ua,c);return t("Opera")?a(["Version","Opera"]):t("Edge")?a(["Edge"]):t("Edg/")?a(["Edg"]):qb()?a(["Chrome","CriOS"]):(b=b[2])&&b[1]||""}function ub(a){return 0<=fb(rb(),a)}function tb(a){var b=/rv: *([\d\.]*)/.exec(a);if(b&&b[1])return b[1];b="";var c=/MSIE +([\d\.]+)/.exec(a);if(c&&c[1])if(a=/Trident\/(\d.\d)/.exec(a),"7.0"==c[1])if(a&&a[1])switch(a[1]){case "4.0":b="8.0";break;case "5.0":b="9.0";break;case "6.0":b="10.0";break;case "7.0":b="11.0"}else b="7.0";else b=c[1];return b};function vb(a,b){a.src=Xa(b);(b=qa())&&a.setAttribute("nonce",b)};var wb={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},xb={"'":"\\'"};function yb(a){return String(a).replace(/\-([a-z])/g,function(b,c){return c.toUpperCase()})};function zb(a){zb[" "](a);return a}zb[" "]=ua;function v(){}var Ab="function"==typeof Uint8Array;function x(a,b,c,d){a.a=null;b||(b=[]);a.w=void 0;a.h=-1;a.b=b;a:{if(b=a.b.length){--b;var e=a.b[b];if(!(null===e||"object"!=typeof e||ya(e)||Ab&&e instanceof Uint8Array)){a.i=b-a.h;a.f=e;break a}}a.i=Number.MAX_VALUE}a.s={};if(c)for(b=0;b<c.length;b++)e=c[b],e<a.i?(e+=a.h,a.b[e]=a.b[e]||Bb):(Cb(a),a.f[e]=a.f[e]||Bb);if(d&&d.length)for(b=0;b<d.length;b++)Db(a,d[b])}var Bb=[];function Cb(a){var b=a.i+a.h;a.b[b]||(a.f=a.b[b]={})}function y(a,b){if(b<a.i){b+=a.h;var c=a.b[b];return c===Bb?a.b[b]=[]:c}if(a.f)return c=a.f[b],c===Bb?a.f[b]=[]:c}function Eb(a,b){a=y(a,b);return null==a?a:+a}function Fb(a,b){a=y(a,b);return null==a?a:!!a}function A(a,b,c){a=y(a,b);return null==a?c:a}function Gb(a,b){a=Fb(a,b);return null==a?!1:a}function Hb(a,b){a=Eb(a,b);return null==a?0:a}function Ib(a,b,c){b<a.i?a.b[b+a.h]=c:(Cb(a),a.f[b]=c);return a}function Db(a,b){for(var c,d,e=0;e<b.length;e++){var f=b[e],g=y(a,f);null!=g&&(c=f,d=g,Ib(a,f,void 0))}return c?(Ib(a,c,d),c):0}function B(a,b,c){a.a||(a.a={});if(!a.a[c]){var d=y(a,c);d&&(a.a[c]=new b(d))}return a.a[c]}function C(a,b,c){a.a||(a.a={});if(!a.a[c]){for(var d=y(a,c),e=[],f=0;f<d.length;f++)e[f]=new b(d[f]);a.a[c]=e}b=a.a[c];b==Bb&&(b=a.a[c]=[]);return b}function Jb(a){if(a.a)for(var b in a.a){var c=a.a[b];if(ya(c))for(var d=0;d<c.length;d++)c[d]&&Jb(c[d]);else c&&Jb(c)}return a.b};function Kb(a){x(this,a,Lb,null)}r(Kb,v);function Mb(a){x(this,a,null,null)}r(Mb,v);var Lb=[2,3];function Nb(a){x(this,a,null,null)}r(Nb,v);var Ob=document,D=window;var Pb={"120x90":!0,"160x90":!0,"180x90":!0,"200x90":!0,"468x15":!0,"728x15":!0};function Qb(a,b){if(15==b){if(728<=a)return 728;if(468<=a)return 468}else if(90==b){if(200<=a)return 200;if(180<=a)return 180;if(160<=a)return 160;if(120<=a)return 120}return null};function Rb(a,b){return a.createElement(String(b))}function Sb(a){this.a=a||p.document||document}Sb.prototype.contains=function(a,b){if(!a||!b)return!1;if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a==b||!!(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a};function Tb(a){Ub();var b=new Va;b.a=a;return b}var Ub=ua;function Vb(){return!(t("iPad")||t("Android")&&!t("Mobile")||t("Silk"))&&(t("iPod")||t("iPhone")||t("Android")||t("IEMobile"))};function Wb(a){try{var b;if(b=!!a&&null!=a.location.href)a:{try{zb(a.foo);b=!0;break a}catch(c){}b=!1}return b}catch(c){return!1}}function Xb(a){for(var b=p,c=0;b&&40>c++&&(!Wb(b)||!a(b));)a:{try{var d=b.parent;if(d&&d!=b){b=d;break a}}catch(e){}b=null}}function Yb(){var a=p;Xb(function(b){a=b;return!1});return a}function Zb(a,b){var c=a.createElement("script");vb(c,Tb(b));return(a=a.getElementsByTagName("script")[0])&&a.parentNode?(a.parentNode.insertBefore(c,a),c):null}function $b(a,b){return b.getComputedStyle?b.getComputedStyle(a,null):a.currentStyle}function ac(a,b,c){var d=!1;void 0===c||c||(d=bc());return!d&&!cc()&&(c=Math.random(),c<b)?(c=dc(p),a[Math.floor(c*a.length)]):null}function dc(a){if(!a.crypto)return Math.random();try{var b=new Uint32Array(1);a.crypto.getRandomValues(b);return b[0]/65536/65536}catch(c){return Math.random()}}function ec(a,b){if(a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.call(void 0,a[c],c,a)}function fc(a){var b=a.length;if(0==b)return 0;for(var c=305419896,d=0;d<b;d++)c^=(c<<5)+(c>>2)+a.charCodeAt(d)&4294967295;return 0<c?c:4294967296+c}var cc=Qa(function(){return eb(mb,"Google Web Preview")||1E-4>Math.random()}),bc=Qa(function(){return eb(mb,"MSIE")}),gc=/^([0-9.]+)px$/,hc=/^(-?[0-9.]{1,30})$/;function ic(a){return hc.test(a)&&(a=Number(a),!isNaN(a))?a:null}function jc(a,b){return b?!/^false$/.test(a):/^true$/.test(a)}function F(a){return(a=gc.exec(a))?+a[1]:null}function kc(a){var b={display:"none"};a.style.setProperty?ec(b,function(c,d){a.style.setProperty(d,c,"important")}):a.style.cssText=lc(mc(nc(a.style.cssText),oc(b,function(c){return c+" !important"})))}var mc=Object.assign||function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(a[e]=d[e])}return a};function oc(a,b){var c={},d;for(d in a)Object.prototype.hasOwnProperty.call(a,d)&&(c[d]=b.call(void 0,a[d],d,a));return c}function lc(a){var b=[];ec(a,function(c,d){null!=c&&""!==c&&b.push(d+":"+c)});return b.length?b.join(";")+";":""}function nc(a){var b={};if(a){var c=/\s*:\s*/;Ia((a||"").split(/\s*;\s*/),function(d){if(d){var e=d.split(c);d=e[0];e=e[1];d&&e&&(b[d.toLowerCase()]=e)}})}return b}var pc=Qa(function(){var a=/Edge\/([^. ]+)/.exec(navigator.userAgent);return a?18<=parseInt(a[1],10):(a=/Chrome\/([^. ]+)/.exec(navigator.userAgent))?71<=parseInt(a[1],10):(a=/AppleWebKit\/([^. ]+)/.exec(navigator.userAgent))?13<=parseInt(a[1],10):(a=/Firefox\/([^. ]+)/.exec(navigator.userAgent))?64<=parseInt(a[1],10):!1}),qc=Qa(function(){return qb()&&ub(72)||t("Edge")&&ub(18)||(t("Firefox")||t("FxiOS"))&&ub(65)||t("Safari")&&!(qb()||t("Coast")||t("Opera")||t("Edge")||t("Edg/")||t("OPR")||t("Firefox")||t("FxiOS")||t("Silk")||t("Android"))&&ub(12)});function rc(a,b,c){a.addEventListener&&a.addEventListener(b,c,!1)};function sc(a,b){p.google_image_requests||(p.google_image_requests=[]);var c=p.document.createElement("img");if(b){var d=function(e){b&&b(e);c.removeEventListener&&c.removeEventListener("load",d,!1);c.removeEventListener&&c.removeEventListener("error",d,!1)};rc(c,"load",d);rc(c,"error",d)}c.src=a;p.google_image_requests.push(c)};function tc(a,b){a=parseInt(a,10);return isNaN(a)?b:a}var uc=/^([\w-]+\.)*([\w-]{2,})(:[0-9]+)?$/;function vc(a,b){return a?(a=a.match(uc))?a[0]:b:b};function wc(){return"r20190814"}var xc=jc("false",!1),yc=jc("false",!1),zc=jc("true",!1)||!yc;function Ac(){return vc("","pagead2.googlesyndication.com")};function Bc(a){a=void 0===a?p:a;var b=a.context||a.AMP_CONTEXT_DATA;if(!b)try{b=a.parent.context||a.parent.AMP_CONTEXT_DATA}catch(c){}try{if(b&&b.pageViewId&&b.canonicalUrl)return b}catch(c){}return null}function Cc(a){return(a=a||Bc())?Wb(a.master)?a.master:null:null};function Dc(a,b){for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.call(void 0,a[c],c,a)}function Ec(a){return!(!a||!a.call)&&"function"===typeof a}function Fc(a){a=Cc(Bc(a))||a;a.google_unique_id?++a.google_unique_id:a.google_unique_id=1}function Gc(a){a=Cc(Bc(a))||a;a=a.google_unique_id;return"number"===typeof a?a:0}var Hc=!!window.google_async_iframe_id,Ic=Hc&&window.parent||window;function Jc(){if(Hc&&!Wb(Ic)){var a="."+Ob.domain;try{for(;2<a.split(".").length&&!Wb(Ic);)Ob.domain=a=a.substr(a.indexOf(".")+1),Ic=window.parent}catch(b){}Wb(Ic)||(Ic=window)}return Ic}var Kc=/(^| )adsbygoogle($| )/;function Lc(a){return xc&&a.google_top_window||a.top}function Mc(a){a=Lc(a);return Wb(a)?a:null};function I(a){a.google_ad_modifications||(a.google_ad_modifications={});return a.google_ad_modifications}function J(a,b){a:if(a=I(a).eids||[],a.indexOf)b=a.indexOf(b),b=0<b||0===b;else{for(var c=0;c<a.length;c++)if(a[c]===b){b=!0;break a}b=!1}return b}function Nc(a,b){a=I(a);a.tag_partners=a.tag_partners||[];a.tag_partners.push(b)}function Oc(a){I(D).allow_second_reactive_tag=a}function Pc(a,b,c){for(var d=0;d<a.length;++d)if((a[d].ad_slot||b)==b&&(a[d].ad_tag_origin||c)==c)return a[d];return null};var Qc={},Rc=(Qc.google_ad_client=!0,Qc.google_ad_host=!0,Qc.google_ad_host_channel=!0,Qc.google_adtest=!0,Qc.google_tag_for_child_directed_treatment=!0,Qc.google_tag_for_under_age_of_consent=!0,Qc.google_tag_partner=!0,Qc);function Sc(a){x(this,a,Tc,null)}r(Sc,v);var Tc=[4];Sc.prototype.X=function(){return y(this,3)};function Uc(a){x(this,a,null,null)}r(Uc,v);function Vc(a){x(this,a,null,Wc)}r(Vc,v);function Xc(a){x(this,a,null,null)}r(Xc,v);function Yc(a){x(this,a,null,null)}r(Yc,v);function Zc(a){x(this,a,null,null)}r(Zc,v);var Wc=[[1,2,3]];function $c(a){x(this,a,null,null)}r($c,v);function ad(a){x(this,a,null,null)}r(ad,v);function bd(a){x(this,a,cd,null)}r(bd,v);var cd=[6,7,9,10,11];function dd(a){x(this,a,ed,null)}r(dd,v);function fd(a){x(this,a,null,null)}r(fd,v);function gd(a){x(this,a,hd,null)}r(gd,v);function id(a){x(this,a,null,null)}r(id,v);function jd(a){x(this,a,null,null)}r(jd,v);function kd(a){x(this,a,null,null)}r(kd,v);function ld(a){x(this,a,null,null)}r(ld,v);var ed=[1,2,5,7],hd=[2,5,6];var md={overlays:1,interstitials:2,vignettes:2,inserts:3,immersives:4,list_view:5,full_page:6};function nd(a,b){a=a.replace(/(^\/)|(\/$)/g,"");var c=fc(a),d=od(a);return b.find(function(e){var f=null!=y(e,7)?y(B(e,id,7),1):y(e,1);e=null!=y(e,7)?y(B(e,id,7),2):2;if(!pa(f))return!1;switch(e){case 1:return f==c;case 2:return d[f]||!1}return!1})||null}function od(a){for(var b={};;){b[fc(a)]=!0;if(!a)return b;a=a.substring(0,a.lastIndexOf("/"))}};function pd(a,b){var c=void 0===c?{}:c;this.error=a;this.context=b.context;this.msg=b.message||"";this.id=b.id||"jserror";this.meta=c};var qd=/^https?:\/\/(\w|-)+\.cdn\.ampproject\.(net|org)(\?|\/|$)/;function rd(a,b){this.a=a;this.b=b}function sd(a,b,c){this.url=a;this.a=b;this.qa=!!c;this.depth=pa(void 0)?void 0:null};function td(){this.f="&";this.h=!1;this.b={};this.i=0;this.a=[]}function ud(a,b){var c={};c[a]=b;return[c]}function vd(a,b,c,d,e){var f=[];ec(a,function(g,h){(g=wd(g,b,c,d,e))&&f.push(h+"="+g)});return f.join(b)}function wd(a,b,c,d,e){if(null==a)return"";b=b||"&";c=c||",$";"string"==typeof c&&(c=c.split(""));if(a instanceof Array){if(d=d||0,d<c.length){for(var f=[],g=0;g<a.length;g++)f.push(wd(a[g],b,c,d+1,e));return f.join(c[d])}}else if("object"==typeof a)return e=e||0,2>e?encodeURIComponent(vd(a,b,c,d,e+1)):"...";return encodeURIComponent(String(a))}function xd(a,b,c,d){a.a.push(b);a.b[b]=ud(c,d)}function yd(a,b,c){b=b+"//pagead2.googlesyndication.com"+c;var d=zd(a)-c.length;if(0>d)return"";a.a.sort(function(n,u){return n-u});c=null;for(var e="",f=0;f<a.a.length;f++)for(var g=a.a[f],h=a.b[g],k=0;k<h.length;k++){if(!d){c=null==c?g:c;break}var m=vd(h[k],a.f,",$");if(m){m=e+m;if(d>=m.length){d-=m.length;b+=m;e=a.f;break}else a.h&&(e=d,m[e-1]==a.f&&--e,b+=m.substr(0,e),e=a.f,d=0);c=null==c?g:c}}a="";null!=c&&(a=e+"trn="+c);return b+a}function zd(a){var b=1,c;for(c in a.b)b=c.length>b?c.length:b;return 3997-b-a.f.length-1};function Ad(){var a=void 0===a?D:a;this.a="http:"===a.location.protocol?"http:":"https:";this.b=Math.random()}function Bd(a,b,c,d,e,f){if((d?a.b:Math.random())<(e||.01))try{if(c instanceof td)var g=c;else g=new td,ec(c,function(k,m){var n=g,u=n.i++;k=ud(m,k);n.a.push(u);n.b[u]=k});var h=yd(g,a.a,"/pagead/gen_204?id="+b+"&");h&&("undefined"===typeof f?sc(h,null):sc(h,void 0===f?null:f))}catch(k){}};function Cd(a,b){this.start=a<b?a:b;this.a=a<b?b:a};function K(a,b,c){this.b=b>=a?new Cd(a,b):null;this.a=c}function Dd(a,b){var c=-1;b="google_experiment_mod"+(void 0===b?"":b);try{a.localStorage&&(c=parseInt(a.localStorage.getItem(b),10))}catch(d){return null}if(0<=c&&1E3>c)return c;if(cc())return null;c=Math.floor(1E3*dc(a));try{if(a.localStorage)return a.localStorage.setItem(b,""+c),c}catch(d){}return null};var Ed=null;function Fd(){if(null===Ed){Ed="";try{var a="";try{a=p.top.location.hash}catch(c){a=p.location.hash}if(a){var b=a.match(/\bdeid=([\d,]+)/);Ed=b?b[1]:""}}catch(c){}}return Ed};function Gd(){var a=p.performance;return a&&a.now&&a.timing?Math.floor(a.now()+a.timing.navigationStart):+new Date}function Hd(){var a=void 0===a?p:a;return(a=a.performance)&&a.now?a.now():null};function Id(a,b,c){this.label=a;this.type=b;this.value=c;this.duration=0;this.uniqueId=Math.random();this.slotId=void 0};var Jd=p.performance,Kd=!!(Jd&&Jd.mark&&Jd.measure&&Jd.clearMarks),Ld=Qa(function(){var a;if(a=Kd)a=Fd(),a=!!a.indexOf&&0<=a.indexOf("1337");return a});function Md(){var a=Nd;this.b=[];this.f=a||p;var b=null;a&&(a.google_js_reporting_queue=a.google_js_reporting_queue||[],this.b=a.google_js_reporting_queue,b=a.google_measure_js_timing);this.a=Ld()||(null!=b?b:1>Math.random())}function Od(a){a&&Jd&&Ld()&&(Jd.clearMarks("goog_"+a.label+"_"+a.uniqueId+"_start"),Jd.clearMarks("goog_"+a.label+"_"+a.uniqueId+"_end"))}Md.prototype.start=function(a,b){if(!this.a)return null;var c=Hd()||Gd();a=new Id(a,b,c);b="goog_"+a.label+"_"+a.uniqueId+"_start";Jd&&Ld()&&Jd.mark(b);return a};function Pd(){var a=Qd;this.w=Rd;this.h=!0;this.a=null;this.s=this.b;this.f=void 0===a?null:a;this.i=!1}function Sd(a,b,c,d){try{if(a.f&&a.f.a){var e=a.f.start(b.toString(),3);var f=c();var g=a.f;c=e;if(g.a&&pa(c.value)){var h=Hd()||Gd();c.duration=h-c.value;var k="goog_"+c.label+"_"+c.uniqueId+"_end";Jd&&Ld()&&Jd.mark(k);!g.a||2048<g.b.length||g.b.push(c)}}else f=c()}catch(m){g=a.h;try{Od(e),g=a.s(b,new pd(m,{message:Td(m)}),void 0,d)}catch(n){a.b(217,n)}if(!g)throw m;}return f}function Ud(a,b,c,d,e){return function(f){for(var g=[],h=0;h<arguments.length;++h)g[h]=arguments[h];return Sd(a,b,function(){return c.apply(d,g)},e)}}Pd.prototype.b=function(a,b,c,d,e){e=e||"jserror";try{var f=new td;f.h=!0;xd(f,1,"context",a);b.error&&b.meta&&b.id||(b=new pd(b,{message:Td(b)}));b.msg&&xd(f,2,"msg",b.msg.substring(0,512));var g=b.meta||{};if(this.a)try{this.a(g)}catch(G){}if(d)try{d(g)}catch(G){}b=[g];f.a.push(3);f.b[3]=b;d=p;b=[];g=null;do{var h=d;if(Wb(h)){var k=h.location.href;g=h.document&&h.document.referrer||null}else k=g,g=null;b.push(new sd(k||"",h));try{d=h.parent}catch(G){d=null}}while(d&&h!=d);k=0;for(var m=b.length-1;k<=m;++k)b[k].depth=m-k;h=p;if(h.location&&h.location.ancestorOrigins&&h.location.ancestorOrigins.length==b.length-1)for(m=1;m<b.length;++m){var n=b[m];n.url||(n.url=h.location.ancestorOrigins[m-1]||"",n.qa=!0)}var u=new sd(p.location.href,p,!1);h=null;var w=b.length-1;for(n=w;0<=n;--n){var z=b[n];!h&&qd.test(z.url)&&(h=z);if(z.url&&!z.qa){u=z;break}}z=null;var H=b.length&&b[w].url;0!=u.depth&&H&&(z=b[w]);var E=new rd(u,z);E.b&&xd(f,4,"top",E.b.url||"");xd(f,5,"url",E.a.url||"");Bd(this.w,e,f,this.i,c)}catch(G){try{Bd(this.w,e,{context:"ecmserr",rctx:a,msg:Td(G),url:E&&E.a.url},this.i,c)}catch(sb){}}return this.h};function Td(a){var b=a.toString();a.name&&-1==b.indexOf(a.name)&&(b+=": "+a.name);a.message&&-1==b.indexOf(a.message)&&(b+=": "+a.message);if(a.stack){a=a.stack;try{-1==a.indexOf(b)&&(a=b+"\n"+a);for(var c;a!=c;)c=a,a=a.replace(/((https?:\/..*\/)[^\/:]*:\d+(?:.|\n)*)\2/,"$1");b=a.replace(/\n */g,"\n")}catch(d){}}return b};function L(a){a=void 0===a?"":a;var b=Error.call(this);this.message=b.message;"stack"in b&&(this.stack=b.stack);this.name="TagError";this.message=a?"adsbygoogle.push() error: "+a:"";Error.captureStackTrace?Error.captureStackTrace(this,L):this.stack=Error().stack||""}ka(L,Error);var Rd,Vd,Wd,Nd=Jc(),Qd=new Md;function Xd(a){null!=a&&(Nd.google_measure_js_timing=a);Nd.google_measure_js_timing||(a=Qd,a.a=!1,a.b!=a.f.google_js_reporting_queue&&(Ld()&&Ia(a.b,Od),a.b.length=0))}function Yd(a){var b=D.jerExpIds;if(ya(b)&&0!==b.length){var c=a.eid;if(c){b=ca(c.split(",")).concat(ca(b));c={};for(var d=0,e=0;e<b.length;){var f=b[e++];var g=f;g=za(g)?"o"+Aa(g):(typeof g).charAt(0)+g;Object.prototype.hasOwnProperty.call(c,g)||(c[g]=!0,b[d++]=f)}b.length=d;a.eid=b.join(",")}else a.eid=b.join(",")}}(function(){Rd=new Ad;Vd=new Pd;Vd.a=function(b){Yd(b);Wd&&(b.jc=Wd)};"complete"==Nd.document.readyState?Xd():Qd.a&&rc(Nd,"load",function(){Xd()});var a=Ob.currentScript;Wd=a?a.dataset.jc:""})();function Zd(){var a=[$d,ae];Vd.a=function(b){Ia(a,function(c){c(b)});Yd(b);Wd&&(b.jc=Wd)}}function be(a,b,c){return Sd(Vd,a,b,c)}function ce(a,b){return Ud(Vd,a,b,void 0,void 0)}function de(a,b,c){Bd(Rd,a,b,"jserror"!=a,c,void 0)}function ee(a,b,c,d){return 0==(b.error&&b.meta&&b.id?b.msg||Td(b.error):Td(b)).indexOf("TagError")?(Vd.i=!0,c=b instanceof pd?b.error:b,c.pbr||(c.pbr=!0,Vd.b(a,b,.1,d,"puberror")),!1):Vd.b(a,b,c,d)}function fe(a){de("rmvasft",{code:"ldr",branch:a?"exp":"cntr"})};function ge(a,b){this.oa=a;this.ua=b}function he(a){var b=[].slice.call(arguments).filter(Pa());if(!b.length)return null;var c=[],d={};b.forEach(function(e){c=c.concat(e.oa||[]);d=Object.assign(d,e.ua)});return new ge(c,d)}function ie(a){switch(a){case 1:return new ge(null,{google_ad_semantic_area:"mc"});case 2:return new ge(null,{google_ad_semantic_area:"h"});case 3:return new ge(null,{google_ad_semantic_area:"f"});case 4:return new ge(null,{google_ad_semantic_area:"s"});default:return null}};var je=new ge(["google-auto-placed"],{google_tag_origin:"qs"});var ke={},le=(ke.google_ad_channel=!0,ke.google_ad_host=!0,ke);function me(a,b){a.location.href&&a.location.href.substring&&(b.url=a.location.href.substring(0,200));de("ama",b,.01)}function ne(a){var b={};ec(le,function(c,d){d in a&&(b[d]=a[d])});return b};var oe=tc("2012",2012);function pe(a){x(this,a,qe,re)}r(pe,v);var qe=[2,8],re=[[3,4,5],[6,7]];function se(a){return null!=a?!a:a}function te(a,b){for(var c=!1,d=0;d<a.length;d++){var e=a[d].call();if(e==b)return e;null==e&&(c=!0)}if(!c)return!b}function ue(a,b){var c=C(a,pe,2);if(!c.length)return ve(a,b);a=A(a,1,0);if(1==a)return se(ue(c[0],b));c=Ka(c,function(d){return function(){return ue(d,b)}});switch(a){case 2:return te(c,!1);case 3:return te(c,!0)}}function ve(a,b){var c=Db(a,re[0]);a:{switch(c){case 3:var d=A(a,3,0);break a;case 4:d=A(a,4,0);break a;case 5:d=A(a,5,0);break a}d=void 0}if(d&&(b=(b=b[c])&&b[d])){try{var e=b.apply(null,y(a,8))}catch(f){return}b=A(a,1,0);if(4==b)return!!e;d=null!=e;if(5==b)return d;if(12==b)a=A(a,7,"");else a:{switch(c){case 4:a=Hb(a,6);break a;case 5:a=A(a,7,"");break a}a=void 0}if(null!=a){if(6==b)return e===a;if(9==b)return 0==fb(e,a);if(d)switch(b){case 7:return e<a;case 8:return e>a;case 12:return(new RegExp(a)).test(e);case 10:return-1==fb(e,a);case 11:return 1==fb(e,a)}}}}function we(a,b){return!a||!(!b||!ue(a,b))};function xe(a){x(this,a,ye,null)}r(xe,v);var ye=[4];function ze(a){x(this,a,Ae,Be)}r(ze,v);function Ce(a){x(this,a,null,null)}r(Ce,v);var Ae=[5],Be=[[1,2,3,6]];function De(){var a={};this.a=(a[3]={},a[4]={},a[5]={},a)}va(De);function Ee(a,b){switch(b){case 1:return A(a,1,0);case 2:return A(a,2,0);case 3:return A(a,3,0);case 6:return A(a,6,0);default:return null}}function Fe(a,b){if(!a)return null;switch(b){case 1:return Gb(a,1);case 2:return Hb(a,2);case 3:return A(a,3,"");case 6:return y(a,4);default:return null}}function Ge(a,b,c){b=He.j().a[a][b];if(!b)return c;b=new ze(b);b=Ie(b);a=Fe(b,a);return null!=a?a:c}function Ie(a){var b=De.j().a;if(b){var c=Na(C(a,Ce,5),function(d){return we(B(d,pe,1),b)});if(c)return B(c,xe,2)}return B(a,xe,4)}function He(){var a={};this.a=(a[1]={},a[2]={},a[3]={},a[6]={},a)}va(He);function Je(a,b){return!!Ge(1,a,void 0===b?!1:b)}function Ke(a,b){b=void 0===b?0:b;a=Number(Ge(2,a,b));return isNaN(a)?b:a}function Le(a,b){return Ge(3,a,void 0===b?"":b)}function Me(a,b){b=void 0===b?[]:b;return Ge(6,a,b)}function Ne(a){var b=He.j().a;Ia(a,function(c){var d=Db(c,Be[0]),e=Ee(c,d);e&&(b[d][e]=Jb(c))})}function Oe(a){var b=He.j().a;Ia(a,function(c){var d=new ze(c),e=Db(d,Be[0]);(d=Ee(d,e))&&(b[e][d]||(b[e][d]=c))})};function M(a){this.a=a}var Pe=new M(1),Qe=new M(2),Re=new M(3),Se=new M(4),Te=new M(5),Ue=new M(6),Ve=new M(7),We=new M(8),Xe=new M(9),Ye=new M(10),Ze=new M(11),$e=new M(12),af=new M(13),bf=new M(14);function N(a,b,c){c.hasOwnProperty(a.a)||Object.defineProperty(c,String(a.a),{value:b})}function cf(a,b,c){return b[a.a]||c||function(){}}function df(a){N(Te,Je,a);N(Ue,Ke,a);N(Ve,Le,a);N(We,Me,a);N(af,Oe,a)}function ef(a){N(Se,function(b){De.j().a=b},a);N(Xe,function(b,c){var d=De.j();d.a[3][b]||(d.a[3][b]=c)},a);N(Ye,function(b,c){var d=De.j();d.a[4][b]||(d.a[4][b]=c)},a);N(Ze,function(b,c){var d=De.j();d.a[5][b]||(d.a[5][b]=c)},a);N(bf,function(b){for(var c=De.j(),d=ba([3,4,5]),e=d.next();!e.done;e=d.next()){var f=e.value;e=void 0;var g=c.a[f];f=b[f];for(e in f)g[e]=f[e]}},a)}function ff(a){a.hasOwnProperty("init-done")||Object.defineProperty(a,"init-done",{value:!0})};function gf(){this.a=function(){return!1}}va(gf);function hf(a,b,c){c||(c=zc?"https":"http");p.location&&"https:"==p.location.protocol&&"http"==c&&(c="https");return[c,"://",a,b].join("")}function jf(a,b,c){a=hf(a,b,c);var d=void 0===d?!1:d;if(gf.j().a(182,d)){var e;2012<oe?e=a.replace(new RegExp(".js".replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08"),"g"),("_fy"+oe+".js").replace(/\$/g,"$$$$")):e=a;d=e}else d=a;return d};var kf=null;function lf(){if(!xc)return!1;if(null!=kf)return kf;kf=!1;try{var a=Mc(p);a&&-1!=a.location.hash.indexOf("google_logging")&&(kf=!0);p.localStorage.getItem("google_logging")&&(kf=!0)}catch(b){}return kf}function mf(a,b){b=void 0===b?[]:b;var c=!1;p.google_logging_queue||(c=!0,p.google_logging_queue=[]);p.google_logging_queue.push([a,b]);c&&lf()&&(a=jf(Ac(),"/pagead/js/logging_library.js"),Zb(p.document,a))};function nf(a,b,c){this.a=a;this.b=b;this.f=c};function of(a){x(this,a,null,null)}r(of,v);function pf(a){x(this,a,null,null)}r(pf,v);function qf(a){x(this,a,rf,null)}r(qf,v);var rf=[5];function sf(a){try{var b=a.localStorage.getItem("google_ama_settings");return b?new qf(b?JSON.parse(b):null):null}catch(c){return null}};function tf(){};var uf={rectangle:1,horizontal:2,vertical:4};var vf={9:"400",10:"100",13:"0.001",22:"0.01",24:"0.05",28:"0.001",29:"0.01",34:"0.001",60:"0.03",66:"0.1",78:"0.1",79:"1200",82:"3",96:"700",97:"20",98:"0.01",99:"600",100:"100",103:"0.01",111:"0.1",118:"false",120:"0",121:"1000",126:"0.001",128:"false",129:"0.02",135:"0.01",136:"0.02",137:"0.01",142:"1",149:"0",150:"1000",152:"700",153:"20",155:"1",157:"1",158:"100",160:"250",161:"150",162:"0.1",165:"0.02",173:"800",174:"2",176:"0",177:"0.02",179:"100",180:"20",182:"0.1",185:"0.4",189:"400",190:"100",191:"0.04",192:"0",193:"500",194:"90",195:"0",196:"100",197:"false",199:"0",200:"2",201:"true"};var wf=null;function xf(){this.a=vf}function O(a,b){a=parseFloat(a.a[b]);return isNaN(a)?0:a}function yf(a){var b=zf();return jc(b.a[a],!1)}function zf(){wf||(wf=new xf);return wf};var Af=null;function Bf(){if(!Af){for(var a=p,b=a,c=0;a&&a!=a.parent;)if(a=a.parent,c++,Wb(a))b=a;else break;Af=b}return Af};function Cf(){this.a=function(){return[]};this.b=function(){return[]}}function Df(a,b){a.a=cf(Qe,b,function(){});a.b=cf(Re,b,function(){return[]})}va(Cf);var Ef={c:"368226950",g:"368226951"},Ff={c:"368226960",g:"368226961"},Gf={c:"368226470",U:"368226471"},Hf={c:"368226480",U:"368226481"},If={c:"332260030",R:"332260031",P:"332260032"},Jf={c:"332260040",R:"332260041",P:"332260042"},Kf={c:"368226100",g:"368226101"},Lf={c:"368226110",g:"368226111"},Mf={c:"368226500",g:"368226501"},Nf={c:"36998750",g:"36998751"},Of={c:"633794000",B:"633794004"},Pf={c:"633794002",B:"633794005"},Qf={c:"231196899",g:"231196900"},Rf={c:"231196901",g:"231196902"},Sf={c:"21063914",g:"21063915"},Tf={c:"4089040",Da:"4089042"},Uf={o:"20040067",c:"20040068",la:"1337"},Vf={c:"21060548",o:"21060549"},Wf={c:"21060623",o:"21060624"},Xf={c:"22324606",g:"22324607"},Yf={c:"21062271",o:"21062272"},Zf={c:"368226370",g:"368226371"},$f={c:"368226380",g:"368226381"},ag={c:"182982000",g:"182982100"},cg={c:"182982200",g:"182982300"},dg={c:"182983000",g:"182983100"},eg={c:"182983200",g:"182983300"},fg={c:"182984000",g:"182984100"},gg={c:"182984200",g:"182984300"},hg={c:"229739148",g:"229739149"},ig={c:"229739146",g:"229739147"},jg={c:"20040012",g:"20040013"},kg={c:"151527201",T:"151527221",L:"151527222",K:"151527223",I:"151527224",J:"151527225"},P={c:"151527001",T:"151527021",L:"151527022",K:"151527023",I:"151527024",J:"151527025"},lg={c:"151527002",aa:"151527006",ba:"151527007"};function mg(){this.wasPlaTagProcessed=!1;this.wasReactiveAdConfigReceived={};this.adCount={};this.wasReactiveAdVisible={};this.stateForType={};this.reactiveTypeEnabledInAsfe={};this.isReactiveTagFirstOnPage=this.wasReactiveAdConfigHandlerRegistered=this.wasReactiveTagRequestSent=!1;this.reactiveTypeDisabledByPublisher={};this.tagSpecificState={};this.adRegion=null;this.improveCollisionDetection=0;this.messageValidationEnabled=!1}function ng(a){a.google_reactive_ads_global_state||(a.google_reactive_ads_global_state=new mg);return a.google_reactive_ads_global_state};function og(a){a=a.document;var b={};a&&(b="CSS1Compat"==a.compatMode?a.documentElement:a.body);return b||{}}function Q(a){return og(a).clientWidth};function pg(a,b){for(var c=["width","height"],d=0;d<c.length;d++){var e="google_ad_"+c[d];if(!b.hasOwnProperty(e)){var f=F(a[c[d]]);f=null===f?null:Math.round(f);null!=f&&(b[e]=f)}}}function qg(a,b){return!((hc.test(b.google_ad_width)||gc.test(a.style.width))&&(hc.test(b.google_ad_height)||gc.test(a.style.height)))}function rg(a,b){return(a=sg(a,b))?a.y:0}function sg(a,b){try{var c=b.document.documentElement.getBoundingClientRect(),d=a.getBoundingClientRect();return{x:d.left-c.left,y:d.top-c.top}}catch(e){return null}}function tg(a,b){do{var c=$b(a,b);if(c&&"fixed"==c.position)return!1}while(a=a.parentElement);return!0}function ug(a){var b=0,c;for(c in uf)-1!=a.indexOf(c)&&(b|=uf[c]);return b}function vg(a,b,c,d,e){if(Lc(a)!=a)return Mc(a)?3:16;if(!(488>Q(a)))return 4;if(!(a.innerHeight>=a.innerWidth))return 5;var f=Q(a);if(!f||(f-c)/f>d)a=6;else{if(c="true"!=e.google_full_width_responsive)a:{c=Q(a);for(b=b.parentElement;b;b=b.parentElement)if((d=$b(b,a))&&(e=F(d.width))&&!(e>=c)&&"visible"!=d.overflow){c=!0;break a}c=!1}a=c?7:!0}return a}function wg(a,b,c,d){var e=vg(b,c,a,.3,d);if(!0!==e)return e;e=Q(b);a=e-a;a=e&&0<=a?!0:e?-10>a?11:0>a?14:12:10;return"true"==d.google_full_width_responsive||tg(c,b)?a:9}function xg(a,b,c){"rtl"==b?a.style.marginRight=c:a.style.marginLeft=c}function yg(a,b){if(3==b.nodeType)return/\S/.test(b.data);if(1==b.nodeType){if(/^(script|style)$/i.test(b.nodeName))return!1;try{var c=$b(b,a)}catch(d){}return!c||"none"!=c.display&&!("absolute"==c.position&&("hidden"==c.visibility||"collapse"==c.visibility))}return!1}function zg(a,b,c){a=sg(b,a);return"rtl"==c?-a.x:a.x}function Ag(a,b,c,d,e,f){var g=J(a,Kf.g);var h=J(a,Kf.c);if(g||h)f.ovlp=!0;if(g){if(e=b.parentElement)if(e=$b(e,a))b.style.width=Q(a)+"px",e=e.direction,xg(b,e,"0px"),c=zg(a,b,e),xg(b,e,-1*c+"px"),a=zg(a,b,e),0!==a&&a!==c&&xg(b,e,c/(a-c)*c+"px"),b.style.zIndex=30}else if(a=$b(c,a)){g=F(a.paddingLeft)||0;a=a.direction;d=e-d;if(f.google_ad_resize)c=-1*(d+g)+"px";else{for(h=f=0;100>h&&c;h++)f+=c.offsetLeft+c.clientLeft-c.scrollLeft,c=c.offsetParent;c=f+g;c="rtl"==a?-1*(d-c)+"px":-1*c+"px"}xg(b,a,c);b.style.width=e+"px";b.style.zIndex=30}};function R(a,b){this.b=a;this.a=b}l=R.prototype;l.minWidth=function(){return this.b};l.height=function(){return this.a};l.M=function(a){return 300<a&&300<this.a?this.b:Math.min(1200,Math.round(a))};l.ea=function(a){return this.M(a)+"x"+this.height()};l.Z=function(){};function Bg(a,b,c,d){d=void 0===d?function(f){return f}:d;var e;return a.style&&a.style[c]&&d(a.style[c])||(e=$b(a,b))&&e[c]&&d(e[c])||null}function Cg(a){return function(b){return b.minWidth()<=a}}function Dg(a,b,c,d){var e=a&&Eg(c,b),f=Fg(b,d);return function(g){return!(e&&g.height()>=f)}}function Gg(a){return function(b){return b.height()<=a}}function Eg(a,b){return rg(a,b)<og(b).clientHeight-100}function Hg(a,b){a=rg(a,b);b=og(b).clientHeight;return 0==b?null:a/b}function Ig(a,b){var c=Infinity;do{var d=Bg(b,a,"height",F);d&&(c=Math.min(c,d));(d=Bg(b,a,"maxHeight",F))&&(c=Math.min(c,d))}while((b=b.parentElement)&&"HTML"!=b.tagName);return c}function Jg(a,b){var c=Bg(b,a,"height",F);if(c)return c;var d=b.style.height;b.style.height="inherit";c=Bg(b,a,"height",F);b.style.height=d;if(c)return c;c=Infinity;do(d=b.style&&F(b.style.height))&&(c=Math.min(c,d)),(d=Bg(b,a,"maxHeight",F))&&(c=Math.min(c,d));while((b=b.parentElement)&&"HTML"!=b.tagName);return c}function Fg(a,b){var c=a.google_unique_id;return b&&0==("number"===typeof c?c:0)?Math.max(250,2*og(a).clientHeight/3):250};function Kg(a,b){for(var c=[],d=a.length,e=0;e<d;e++)c.push(a[e]);c.forEach(b,void 0)};function Lg(a){if(1!=a.nodeType)var b=!1;else if(b="INS"==a.tagName)a:{b=["adsbygoogle-placeholder"];a=a.className?a.className.split(/\s+/):[];for(var c={},d=0;d<a.length;++d)c[a[d]]=!0;for(d=0;d<b.length;++d)if(!c[b[d]]){b=!1;break a}b=!0}return b};function Mg(a,b){for(var c=0;c<b.length;c++){var d=b[c],e=yb(d.$a);a[e]=d.value}};function Ng(a,b,c,d){this.h=a;this.b=b;this.f=c;this.a=d}function Og(a,b){var c=[];try{c=b.querySelectorAll(a.h)}catch(g){}if(!c.length)return[];b=c;c=b.length;if(0<c){for(var d=Array(c),e=0;e<c;e++)d[e]=b[e];b=d}else b=[];b=Pg(a,b);pa(a.b)&&(c=a.b,0>c&&(c+=b.length),b=0<=c&&c<b.length?[b[c]]:[]);if(pa(a.f)){c=[];for(d=0;d<b.length;d++){e=Qg(b[d]);var f=a.f;0>f&&(f+=e.length);0<=f&&f<e.length&&c.push(e[f])}b=c}return b}Ng.prototype.toString=function(){return JSON.stringify({nativeQuery:this.h,occurrenceIndex:this.b,paragraphIndex:this.f,ignoreMode:this.a})};function Pg(a,b){if(null==a.a)return b;switch(a.a){case 1:return b.slice(1);case 2:return b.slice(0,b.length-1);case 3:return b.slice(1,b.length-1);case 0:return b;default:throw Error("Unknown ignore mode: "+a.a);}}function Qg(a){var b=[];Kg(a.getElementsByTagName("p"),function(c){100<=Rg(c)&&b.push(c)});return b}function Rg(a){if(3==a.nodeType)return a.length;if(1!=a.nodeType||"SCRIPT"==a.tagName)return 0;var b=0;Kg(a.childNodes,function(c){b+=Rg(c)});return b}function Sg(a){return 0==a.length||isNaN(a[0])?a:"\\"+(30+parseInt(a[0],10))+" "+a.substring(1)};function Tg(a){if(!a)return null;var b=y(a,7);if(y(a,1)||a.X()||0<y(a,4).length){var c=a.X(),d=y(a,1),e=y(a,4);b=y(a,2);var f=y(a,5);a=Ug(y(a,6));var g="";d&&(g+=d);c&&(g+="#"+Sg(c));if(e)for(c=0;c<e.length;c++)g+="."+Sg(e[c]);b=(e=g)?new Ng(e,b,f,a):null}else b=b?new Ng(b,y(a,2),y(a,5),Ug(y(a,6))):null;return b}var Vg={1:1,2:2,3:3,0:0};function Ug(a){return null!=a?Vg[a]:a}var Wg={1:0,2:1,3:2,4:3};function Xg(){this.a={};this.b={}}Xg.prototype.add=function(a){this.a[a]=!0;this.b[a]=a};Xg.prototype.contains=function(a){return!!this.a[a]};function Yg(){this.a={};this.b={}}Yg.prototype.set=function(a,b){this.a[a]=b;this.b[a]=a};Yg.prototype.get=function(a,b){return void 0!==this.a[a]?this.a[a]:b};function Zg(){this.a=new Yg}Zg.prototype.set=function(a,b){var c=this.a.get(a);c||(c=new Xg,this.a.set(a,c));c.add(b)};function $g(a,b){function c(){d.push({anchor:e.anchor,position:e.position});return e.anchor==b.anchor&&e.position==b.position}for(var d=[],e=a;e;){switch(e.position){case 1:if(c())return d;e.position=2;case 2:if(c())return d;if(e.anchor.firstChild){e={anchor:e.anchor.firstChild,position:1};continue}else e.position=3;case 3:if(c())return d;e.position=4;case 4:if(c())return d}for(;e&&!e.anchor.nextSibling&&e.anchor.parentNode!=e.anchor.ownerDocument.body;){e={anchor:e.anchor.parentNode,position:3};if(c())return d;e.position=4;if(c())return d}e&&e.anchor.nextSibling?e={anchor:e.anchor.nextSibling,position:1}:e=null}return d};function ah(a,b){this.b=a;this.a=b}function bh(a,b){var c=new Zg,d=new Xg;b.forEach(function(e){if(B(e,Xc,1)){e=B(e,Xc,1);if(B(e,Uc,1)&&B(B(e,Uc,1),Sc,1)&&B(e,Uc,2)&&B(B(e,Uc,2),Sc,1)){var f=ch(a,B(B(e,Uc,1),Sc,1)),g=ch(a,B(B(e,Uc,2),Sc,1));if(f&&g)for(f=ba($g({anchor:f,position:y(B(e,Uc,1),2)},{anchor:g,position:y(B(e,Uc,2),2)})),g=f.next();!g.done;g=f.next())g=g.value,c.set(Aa(g.anchor),g.position)}B(e,Uc,3)&&B(B(e,Uc,3),Sc,1)&&(f=ch(a,B(B(e,Uc,3),Sc,1)))&&c.set(Aa(f),y(B(e,Uc,3),2))}else B(e,Yc,2)?dh(a,B(e,Yc,2),c):B(e,Zc,3)&&eh(a,B(e,Zc,3),d)});return new ah(c,d)}function dh(a,b,c){B(b,Sc,1)&&(a=fh(a,B(b,Sc,1)))&&a.forEach(function(d){d=Aa(d);c.set(d,1);c.set(d,4);c.set(d,2);c.set(d,3)})}function eh(a,b,c){B(b,Sc,1)&&(a=fh(a,B(b,Sc,1)))&&a.forEach(function(d){c.add(Aa(d))})}function ch(a,b){return(a=fh(a,b))&&0<a.length?a[0]:null}function fh(a,b){return(b=Tg(b))?Og(b,a):null};function gh(a,b){var c=b.b-301,d=b.a+b.f+301,e=b.b+301,f=b.a-301;return!La(a,function(g){return g.left<d&&f<g.right&&g.top<e&&c<g.bottom})};function hh(a,b){if(!a)return!1;a=$b(a,b);if(!a)return!1;a=a.cssFloat||a.styleFloat;return"left"==a||"right"==a}function ih(a){for(a=a.previousSibling;a&&1!=a.nodeType;)a=a.previousSibling;return a?a:null}function jh(a){return!!a.nextSibling||!!a.parentNode&&jh(a.parentNode)};function kh(a,b){return a&&null!=y(a,4)&&b[y(B(a,ad,4),2)]?!1:!0}function lh(a){var b={};a&&y(a,6).forEach(function(c){b[c]=!0});return b}function mh(a,b,c,d){this.a=p;this.$=a;this.f=b;this.i=d||null;this.s=(this.w=c)?bh(p.document,C(c,Vc,5)):bh(p.document,[]);this.b=0;this.h=!1}function nh(a,b){if(a.h)return!0;a.h=!0;var c=C(a.f,bd,1);a.b=0;var d=lh(a.w);if(B(a.f,ld,15)&&Gb(B(a.f,ld,15),12)){var e=sf(a.a);e=null===e?null:C(e,pf,5);if(null!=e){var f=sf(a.a);f=null!==f&&null!=y(f,3)&&null!==Eb(f,3)?Eb(f,3):.3;var g=sf(a.a);g=null!==g&&null!=y(g,4)?Eb(g,4):1;f-=g;g=[];for(var h=0;h<e.length&&.05<=f&&4>(oh(a).numAutoAdsPlaced||0);h++){var k=y(e[h],1);if(null==k)break;var m=c[k],n=B(e[h],of,2);null!=n&&null!=Eb(n,1)&&null!=Eb(n,2)&&null!=Eb(n,3)&&(n=new nf(Eb(n,1),Eb(n,2),Eb(n,3)),gh(g,n)&&(k=ph(a,m,k,b,d),null!=k&&null!=k.V&&(k=k.V.getBoundingClientRect(),g.push(k),m=a.a,f-=k.width*k.height/(og(m).clientHeight*Q(m)))))}}return!0}e=sf(a.a);if(null!==e&&Gb(e,2))return oh(a).eatf=!0,mf(7,[!0,0,!1]),!0;for(e=0;e<c.length;e++)if(ph(a,c[e],e,b,d))return!0;mf(7,[!1,a.b,!1]);return!1}function ph(a,b,c,d,e){if(1!==y(b,8)||!kh(b,e))return null;var f=B(b,ad,4);if(f&&2==y(f,1)){a.b++;if(b=qh(a,b,d,e))d=oh(a),d.placement=c,d.numAutoAdsPlaced||(d.numAutoAdsPlaced=0),d.numAutoAdsPlaced++,mf(7,[!1,a.b,!0]);return b}return null}function qh(a,b,c,d){if(!kh(b,d)||1!=y(b,8))return null;d=B(b,Sc,1);if(!d)return null;d=Tg(d);if(!d)return null;d=Og(d,a.a.document);if(0==d.length)return null;d=d[0];var e=y(b,2);e=Wg[e];e=void 0!==e?e:null;var f;if(!(f=null==e)){a:{f=a.a;switch(e){case 0:f=hh(ih(d),f);break a;case 3:f=hh(d,f);break a;case 2:var g=d.lastChild;f=hh(g?1==g.nodeType?g:ih(g):null,f);break a}f=!1}if(c=!f&&!(!c&&2==e&&!jh(d)))c=1==e||2==e?d:d.parentNode,c=!(c&&!Lg(c)&&0>=c.offsetWidth);f=!c}if(!(c=f)){c=a.s;f=y(b,2);g=Aa(d);g=c.b.a.get(g);if(!(g=g?g.contains(f):!1))a:{if(c.a.contains(Aa(d)))switch(f){case 2:case 3:g=!0;break a;default:g=!1;break a}for(f=d.parentElement;f;){if(c.a.contains(Aa(f))){g=!0;break a}f=f.parentElement}g=!1}c=g}if(c)return null;f=B(b,$c,3);c={};f&&(c.za=y(f,1),c.na=y(f,2),c.Ha=!!Fb(f,3));f=B(b,ad,4)&&y(B(b,ad,4),2)?y(B(b,ad,4),2):null;f=ie(f);b=null==y(b,12)?null:y(b,12);b=he(a.i,f,null==b?null:new ge(null,{google_ml_rank:b}));f=a.a;a=a.$;var h=f.document;g=Rb((new Sb(h)).a,"DIV");var k=g.style;k.textAlign="center";k.width="100%";k.height="auto";k.clear=c.Ha?"both":"none";c.Pa&&Mg(k,c.Pa);h=Rb((new Sb(h)).a,"INS");k=h.style;k.display="block";k.margin="auto";k.backgroundColor="transparent";c.za&&(k.marginTop=c.za);c.na&&(k.marginBottom=c.na);c.Fa&&Mg(k,c.Fa);g.appendChild(h);c={da:g,V:h};c.V.setAttribute("data-ad-format","auto");g=[];if(h=b&&b.oa)c.da.className=h.join(" ");h=c.V;h.className="adsbygoogle";h.setAttribute("data-ad-client",a);g.length&&h.setAttribute("data-ad-channel",g.join("+"));a:{try{var m=c.da;switch(e){case 0:d.parentNode&&d.parentNode.insertBefore(m,d);break;case 3:var n=d.parentNode;if(n){var u=d.nextSibling;if(u&&u.parentNode!=n)for(;u&&8==u.nodeType;)u=u.nextSibling;n.insertBefore(m,u)}break;case 1:d.insertBefore(m,d.firstChild);break;case 2:d.appendChild(m)}Lg(d)&&(d.setAttribute("data-init-display",d.style.display),d.style.display="block");b:{var w=c.V;w.setAttribute("data-adsbygoogle-status","reserved");w.className+=" adsbygoogle-noablate";m={element:w};var z=b&&b.ua;if(w.hasAttribute("data-pub-vars")){try{z=JSON.parse(w.getAttribute("data-pub-vars"))}catch(H){break b}w.removeAttribute("data-pub-vars")}z&&(m.params=z);(f.adsbygoogle=f.adsbygoogle||[]).push(m)}}catch(H){(w=c.da)&&w.parentNode&&(z=w.parentNode,z.removeChild(w),Lg(z)&&(z.style.display=z.getAttribute("data-init-display")||"none"));w=!1;break a}w=!0}return w?c:null}function oh(a){return a.a.google_ama_state=a.a.google_ama_state||{}};function rh(){this.b=new sh(this);this.a=0}function th(a){if(0!=a.a)throw Error("Already resolved/rejected.");}function sh(a){this.a=a}function uh(a){switch(a.a.a){case 0:break;case 1:a.b&&a.b(a.a.h);break;case 2:a.f&&a.f(a.a.f);break;default:throw Error("Unhandled deferred state.");}};function vh(a,b){this.exception=b}function wh(a,b){this.f=p;this.a=a;this.b=b}wh.prototype.start=function(){this.h()};wh.prototype.h=function(){try{switch(this.f.document.readyState){case "complete":case "interactive":nh(this.a,!0);xh(this);break;default:nh(this.a,!1)?xh(this):this.f.setTimeout(Fa(this.h,this),100)}}catch(a){xh(this,a)}};function xh(a,b){try{var c=a.b,d=new vh(new tf(oh(a.a).numAutoAdsPlaced||0),b);th(c);c.a=1;c.h=d;uh(c.b)}catch(e){a=a.b,b=e,th(a),a.a=2,a.f=b,uh(a.b)}};function yh(a){me(a,{atf:1})}function zh(a,b){(a.google_ama_state=a.google_ama_state||{}).exception=b;me(a,{atf:0})};function Ah(){this.debugCard=null;this.debugCardRequested=!1};function Bh(a,b){if(!a)return!1;a=a.hash;if(!a||!a.indexOf)return!1;if(-1!=a.indexOf(b))return!0;b=Ch(b);return"go"!=b&&-1!=a.indexOf(b)?!0:!1}function Ch(a){var b="";Dc(a.split("_"),function(c){b+=c.substr(0,2)});return b};function Dh(a,b,c){var d="script";d=void 0===d?"":d;var e=a.createElement("link");try{e.rel="preload";if(eb("preload","stylesheet"))var f=Xa(b).toString();else{if(b instanceof Va)var g=Xa(b).toString();else{if(b instanceof hb)var h=jb(b);else{if(b instanceof hb)var k=b;else b="object"==typeof b&&b.f?b.b():String(b),kb.test(b)||(b="about:invalid#zClosurez"),k=lb(b);h=jb(k)}g=h}f=g}e.href=f}catch(m){return}d&&(e.as=d);c&&e.setAttribute("nonce",c);if(a=a.getElementsByTagName("head")[0])try{a.appendChild(e)}catch(m){}};function Eh(a){var b={},c={};return c.enable_page_level_ads=(b.pltais=!0,b),c.google_ad_client=a,c};function Fh(a){if(!a)return"";(a=a.toLowerCase())&&"ca-"!=a.substring(0,3)&&(a="ca-"+a);return a};function Gh(a,b){function c(d){try{var e=new Kb(d);return Ma(C(e,Mb,2),function(f){return 1==y(f,1)})}catch(f){return null}}b=void 0===b?"":b;a=Mc(a)||a;a=Hh(a);return b?(b=Fh(String(b)),a[b]?c(a[b]):null):Ma(Ka(Ta(a),c),function(d){return null!=d})}function Ih(a,b,c){function d(e){if(!e)return!1;e=new Kb(e);return y(e,3)&&Oa(y(e,3),b)}c=void 0===c?"":c;a=Mc(a)||a;if(Jh(a,b))return!0;a=Hh(a);return c?(c=Fh(String(c)),d(a[c])):Sa(a,d)}function Jh(a,b){a=(a=(a=a.location&&a.location.hash)&&a.match(/forced_clientside_labs=([\d,]+)/))&&a[1];return!!a&&Oa(a.split(","),b.toString())}function Hh(a){try{return mc({},JSON.parse(a.localStorage.getItem("google_adsense_settings")))}catch(b){return{}}};function Kh(a){var b=Ih(p,12,a.google_ad_client);a="google_ad_host"in a;var c=J(p,Ef.g),d=Bh(p.location,"google_ads_preview");return b&&!a&&c||d}function Lh(a){if(p.google_apltlad||Lc(p)!=p||!a.google_ad_client)return null;var b=Kh(a),c=!J(p,Gf.U);if(!b&&!c)return null;p.google_apltlad=!0;var d=Eh(a.google_ad_client),e=d.enable_page_level_ads;ec(a,function(f,g){Rc[g]&&"google_ad_client"!=g&&(e[g]=f)});b?e.google_ad_channel="AutoInsertAutoAdCode":c&&(e.google_pgb_reactive=7,"google_ad_section"in a||"google_ad_region"in a)&&(e.google_ad_section=a.google_ad_section||a.google_ad_region);return d}function Mh(a){return za(a.enable_page_level_ads)&&7==a.enable_page_level_ads.google_pgb_reactive};function ae(a){try{var b=I(p).eids||[];null!=b&&0<b.length&&(a.eid=b.join(","))}catch(c){}}function $d(a){a.shv=wc()}Vd.h=!xc;function Nh(a,b){return rg(b,a)+Bg(b,a,"height",F)};var Oh=new K(200,399,""),Ph=new K(400,499,""),Qh=new K(600,699,""),Rh=new K(700,799,""),Sh=new K(800,899,""),Th=new K(1,399,"3"),Uh=new K(0,999,"5"),Vh=new K(400,499,"6"),Wh=new K(500,599,""),Xh=new K(0,999,"7"),Yh=new K(0,999,"8");function Zh(a){a=void 0===a?p:a;return a.ggeac||(a.ggeac={})};function $h(){var a={};this[3]=(a[8]=function(b){return!!ta(b)},a[9]=function(b){b=ta(b);var c;if(c="function"==wa(b))b=b&&b.toString&&b.toString(),c=q(b)&&eb(b,"[native code]");return c},a[10]=function(){return window==window.top},a[16]=function(){return qc()},a[22]=function(){return pc()},a);a={};this[4]=(a[5]=function(b){b=Dd(window,void 0===b?"":b);return null!=b?b:void 0},a[6]=function(b){b=ta(b);return pa(b)?b:void 0},a);a={};this[5]=(a[2]=function(){return window.location.href},a[3]=function(){try{return window.top.location.hash}catch(b){return""}},a[4]=function(b){b=ta(b);return q(b)?b:void 0},a)}va($h);function ai(a){x(this,a,bi,null)}r(ai,v);var bi=[2];ai.prototype.X=function(){return A(this,1,0)};ai.prototype.W=function(){return A(this,7,0)};function ci(a){x(this,a,di,null)}r(ci,v);var di=[2];ci.prototype.W=function(){return A(this,5,0)};function ei(a){x(this,a,fi,null)}r(ei,v);function gi(a){x(this,a,hi,null)}r(gi,v);var fi=[1,2],hi=[2];gi.prototype.W=function(){return A(this,1,0)};var ii=[12,13];function ji(a,b){var c=this,d=void 0===b?{}:b;b=void 0===d.Ja?!1:d.Ja;var e=void 0===d.Oa?{}:d.Oa;d=void 0===d.Xa?[]:d.Xa;this.a=a;this.i=b;this.f=e;this.h=d;this.b={};(a=Fd())&&Ia(a.split(",")||[],function(f){(f=parseInt(f,10))&&(c.b[f]=!0)})}function ki(a,b){var c=[],d=li(a.a,b);d.length&&(9!==b&&(a.a=mi(a.a,b)),Ia(d,function(e){if(e=ni(a,e)){var f=e.X();c.push(f);a.h.push(f);(e=C(e,ze,2))&&Ne(e)}}));return c}function oi(a,b){a.a.push.apply(a.a,ca(Ja(Ka(b,function(c){return new gi(c)}),function(c){return!Oa(ii,c.W())})))}function ni(a,b){var c=De.j().a;if(!we(B(b,pe,3),c))return null;var d=C(b,ai,2),e=c?Ja(d,function(g){return we(B(g,pe,3),c)}):d,f=e.length;if(!f)return null;d=A(b,4,0);b=f*A(b,1,0);if(!d)return pi(a,e,b/1E3);f=null!=a.f[d]?a.f[d]:1E3;if(0>=f)return null;e=pi(a,e,b/f);a.f[d]=e?0:f-b;return e}function pi(a,b,c){var d=a.b,e=Ma(b,function(f){return!!d[f.X()]});return e?e:a.i?null:ac(b,c,!1)}function qi(a,b){N(Pe,function(c){a.b[c]=!0},b);N(Qe,function(c){return ki(a,c)},b);N(Re,function(){return a.h},b);N($e,function(c){return oi(a,c)},b)}function li(a,b){return(a=Ma(a,function(c){return c.W()==b}))&&C(a,ci,2)||[]}function mi(a,b){return Ja(a,function(c){return c.W()!=b})};function ri(){this.a=function(){}}va(ri);function si(){var a=$h.j();ri.j().a(a)};function ti(a,b){var c=void 0===c?Zh():c;c.hasOwnProperty("init-done")?(cf($e,c)(Ka(C(a,gi,2),function(d){return Jb(d)})),cf(af,c)(Ka(C(a,ze,1),function(d){return Jb(d)})),ui(c)):(qi(new ji(C(a,gi,2),b),c),df(c),ef(c),ff(c),ui(c),Ne(C(a,ze,1)),si())}function ui(a){var b=a=void 0===a?Zh():a;Df(Cf.j(),b);b=a;gf.j().a=cf(Te,b);ri.j().a=cf(bf,a)};function S(a,b){b&&a.push(b)}function vi(a,b){for(var c=[],d=1;d<arguments.length;++d)c[d-1]=arguments[d];d=Mc(a)||a;d=(d=(d=d.location&&d.location.hash)&&(d.match(/google_plle=([\d,]+)/)||d.match(/deid=([\d,]+)/)))&&d[1];return!!d&&La(c,Ga(eb,d))}function wi(a,b,c){for(var d=0;d<c.length;d++)if(vi(a,c[d]))return c[d];return ac(c,b)}function T(a,b,c,d,e,f){f=void 0===f?1:f;for(var g=0;g<e.length;g++)if(vi(a,e[g]))return e[g];f=void 0===f?1:f;0>=d?c=null:(g=new Cd(c,c+d-1),(d=d%f||d/f%e.length)||(d=b.b,d=!(d.start<=g.start&&d.a>=g.a)),d?c=null:(a=Dd(a,b.a),c=null!==a&&g.start<=a&&g.a>=a?e[Math.floor((a-c)/f)%e.length]:null));return c};function xi(a,b,c){if(Wb(a.document.getElementById(b).contentWindow))a=a.document.getElementById(b).contentWindow,b=a.document,b.body&&b.body.firstChild||(/Firefox/.test(navigator.userAgent)?b.open("text/html","replace"):b.open(),a.google_async_iframe_close=!0,b.write(c));else{a=a.document.getElementById(b).contentWindow;c=String(c);b=['"'];for(var d=0;d<c.length;d++){var e=c.charAt(d),f=e.charCodeAt(0),g=d+1,h;if(!(h=wb[e])){if(!(31<f&&127>f))if(f=e,f in xb)e=xb[f];else if(f in wb)e=xb[f]=wb[f];else{h=f.charCodeAt(0);if(31<h&&127>h)e=f;else{if(256>h){if(e="\\x",16>h||256<h)e+="0"}else e="\\u",4096>h&&(e+="0");e+=h.toString(16).toUpperCase()}e=xb[f]=e}h=e}b[g]=h}b.push('"');a.location.replace("javascript:"+b.join(""))}};var yi=null;function U(a,b,c,d){d=void 0===d?!1:d;R.call(this,a,b);this.Y=c;this.Ma=d}ka(U,R);U.prototype.ha=function(){return this.Y};U.prototype.Z=function(a,b,c,d){if(!c.google_ad_resize){d.style.height=this.height()+"px";b=J(a,Of.c)||"ca-pub-9118350542306317"===c.google_ad_client;d=yf(197)?!J(a,Of.c):J(a,Of.B);var e=J(a,P.c),f=J(a,P.T)||J(a,P.L)||J(a,P.K)||J(a,P.I)||J(a,P.J);if(J(a,Of.c)||J(a,Of.B)||e||f)c.ovlp=!0;b?c.rpe=!1:d&&(c.rpe=!0)}};function zi(a){return function(b){return!!(b.Y&a)}};var Ai=zb("script");function Bi(a,b,c,d,e,f,g,h,k,m,n,u,w,z){this.sa=a;this.a=b;this.Y=void 0===c?null:c;this.f=void 0===d?null:d;this.ja=void 0===e?null:e;this.b=void 0===f?null:f;this.h=void 0===g?null:g;this.w=void 0===h?!1:h;this.$=void 0===k?!1:k;this.Aa=void 0===m?null:m;this.Ba=void 0===n?null:n;this.i=void 0===u?null:u;this.s=void 0===w?null:w;this.Ca=void 0===z?null:z;this.ka=this.xa=this.ta=null}function Ci(a,b,c){null!=a.Y&&(c.google_responsive_formats=a.Y);null!=a.ja&&(c.google_safe_for_responsive_override=a.ja);null!=a.b&&(!0===a.b?c.google_full_width_responsive_allowed=!0:(c.google_full_width_responsive_allowed=!1,c.gfwrnwer=a.b));null!=a.h&&!0!==a.h&&(c.gfwrnher=a.h);a.w&&(c.google_bfa=a.w);a.$&&(c.ebfa=a.$);var d=a.s||c.google_ad_width;null!=d&&(c.google_resizing_width=d);d=a.i||c.google_ad_height;null!=d&&(c.google_resizing_height=d);d=a.a.M(b);var e=a.a.height();c.google_ad_resize||(c.google_ad_width=d,c.google_ad_height=e,c.google_ad_format=a.a.ea(b),c.google_responsive_auto_format=a.sa,null!=a.f&&(c.armr=a.f),c.google_ad_resizable=!0,c.google_override_format=1,c.google_loader_features_used=128,!0===a.b&&(c.gfwrnh=a.a.height()+"px"));null!=a.Aa&&(c.gfwroml=a.Aa);null!=a.Ba&&(c.gfwromr=a.Ba);null!=a.i&&(c.gfwroh=a.i);null!=a.s&&(c.gfwrow=a.s);null!=a.Ca&&(c.gfwroz=a.Ca);null!=a.ta&&(c.gml=a.ta);null!=a.xa&&(c.gmr=a.xa);null!=a.ka&&(c.gzi=a.ka);b=Jc();b=Mc(b)||b;Bh(b.location,"google_responsive_slot_debug")&&(c.ds="outline:thick dashed "+(d&&e?!0!==a.b||!0!==a.h?"#ffa500":"#0f0":"#f00")+" !important;");!Bh(b.location,"google_responsive_dummy_ad")||!Oa([1,2,3,4,5,6,7,8],a.sa)&&1!==a.f||c.google_ad_resize||2===a.f||(a=JSON.stringify({googMsgType:"adpnt",key_value:[{key:"qid",value:"DUMMY_AD"}]}),c.dash="<"+Ai+">window.top.postMessage('"+a+"', '*');\n </"+Ai+'>\n <div id="dummyAd" style="width:'+d+"px;height:"+e+'px;\n background:#ddd;border:3px solid #f00;box-sizing:border-box;\n color:#000;">\n <p>Requested size:'+d+"x"+e+"</p>\n <p>Rendered size:"+d+"x"+e+"</p>\n </div>")};/* Copyright 2019 The AMP HTML Authors. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ var Di={},Ei=(Di.image_stacked=1/1.91,Di.image_sidebyside=1/3.82,Di.mobile_banner_image_sidebyside=1/3.82,Di.pub_control_image_stacked=1/1.91,Di.pub_control_image_sidebyside=1/3.82,Di.pub_control_image_card_stacked=1/1.91,Di.pub_control_image_card_sidebyside=1/3.74,Di.pub_control_text=0,Di.pub_control_text_card=0,Di),Fi={},Gi=(Fi.image_stacked=80,Fi.image_sidebyside=0,Fi.mobile_banner_image_sidebyside=0,Fi.pub_control_image_stacked=80,Fi.pub_control_image_sidebyside=0,Fi.pub_control_image_card_stacked=85,Fi.pub_control_image_card_sidebyside=0,Fi.pub_control_text=80,Fi.pub_control_text_card=80,Fi),Hi={},Ii=(Hi.pub_control_image_stacked=100,Hi.pub_control_image_sidebyside=200,Hi.pub_control_image_card_stacked=150,Hi.pub_control_image_card_sidebyside=250,Hi.pub_control_text=100,Hi.pub_control_text_card=150,Hi);function Ji(a){var b=0;a.C&&b++;a.u&&b++;a.v&&b++;if(3>b)return{A:"Tags data-matched-content-ui-type, data-matched-content-columns-num and data-matched-content-rows-num should be set together."};b=a.C.split(",");var c=a.v.split(",");a=a.u.split(",");if(b.length!==c.length||b.length!==a.length)return{A:'Lengths of parameters data-matched-content-ui-type, data-matched-content-columns-num and data-matched-content-rows-num must match. Example: \n data-matched-content-rows-num="4,2"\ndata-matched-content-columns-num="1,6"\ndata-matched-content-ui-type="image_stacked,image_card_sidebyside"'};if(2<b.length)return{A:"The parameter length of attribute data-matched-content-ui-type, data-matched-content-columns-num and data-matched-content-rows-num is too long. At most 2 parameters for each attribute are needed: one for mobile and one for desktop, while you are providing "+(b.length+' parameters. Example: \n data-matched-content-rows-num="4,2"\ndata-matched-content-columns-num="1,6"\ndata-matched-content-ui-type="image_stacked,image_card_sidebyside".')};for(var d=[],e=[],f=0;f<b.length;f++){var g=Number(c[f]);if(isNaN(g)||0===g)return{A:"Wrong value '"+c[f]+"' for data-matched-content-rows-num."};d.push(g);g=Number(a[f]);if(isNaN(g)||0===g)return{A:"Wrong value '"+a[f]+"' for data-matched-content-columns-num."};e.push(g)}return{v:d,u:e,ra:b}}function Ki(a){return 1200<=a?{width:1200,height:600}:850<=a?{width:a,height:Math.floor(.5*a)}:550<=a?{width:a,height:Math.floor(.6*a)}:468<=a?{width:a,height:Math.floor(.7*a)}:{width:a,height:Math.floor(3.44*a)}};var Li=["google_content_recommendation_ui_type","google_content_recommendation_columns_num","google_content_recommendation_rows_num"];function Mi(a,b){R.call(this,a,b)}ka(Mi,R);Mi.prototype.M=function(a){return Math.min(1200,Math.max(this.minWidth(),Math.round(a)))};function Ni(a,b){Oi(a,b);if("pedestal"==b.google_content_recommendation_ui_type)return new Bi(9,new Mi(a,Math.floor(a*b.google_phwr)));var c=Vb();468>a?c?(c=a-8-8,c=Math.floor(c/1.91+70)+Math.floor(11*(c*Ei.mobile_banner_image_sidebyside+Gi.mobile_banner_image_sidebyside)+96),a={O:a,N:c,u:1,v:12,C:"mobile_banner_image_sidebyside"}):(a=Ki(a),a={O:a.width,N:a.height,u:1,v:13,C:"image_sidebyside"}):(a=Ki(a),a={O:a.width,N:a.height,u:4,v:2,C:"image_stacked"});Pi(b,a);return new Bi(9,new Mi(a.O,a.N))}function Qi(a,b){Oi(a,b);var c=Ji({v:b.google_content_recommendation_rows_num,u:b.google_content_recommendation_columns_num,C:b.google_content_recommendation_ui_type});if(c.A)a={O:0,N:0,u:0,v:0,C:"image_stacked",A:c.A};else{var d=2===c.ra.length&&468<=a?1:0;var e=c.ra[d];e=0===e.indexOf("pub_control_")?e:"pub_control_"+e;var f=Ii[e];for(var g=c.u[d];a/g<f&&1<g;)g--;f=g;c=c.v[d];d=Math.floor(((a-8*f-8)/f*Ei[e]+Gi[e])*c+8*c+8);a=1500<a?{width:0,height:0,ia:"Calculated slot width is too large: "+a}:1500<d?{width:0,height:0,ia:"Calculated slot height is too large: "+d}:{width:a,height:d};a=a.ia?{O:0,N:0,u:0,v:0,C:e,A:a.ia}:{O:a.width,N:a.height,u:f,v:c,C:e}}if(a.A)throw new L(a.A);Pi(b,a);return new Bi(9,new Mi(a.O,a.N))}function Oi(a,b){if(0>=a)throw new L("Invalid responsive width from Matched Content slot "+b.google_ad_slot+": "+a+". Please ensure to put this Matched Content slot into a non-zero width div container.");}function Pi(a,b){a.google_content_recommendation_ui_type=b.C;a.google_content_recommendation_columns_num=b.u;a.google_content_recommendation_rows_num=b.v};function Ri(a,b){R.call(this,a,b)}ka(Ri,R);Ri.prototype.M=function(){return this.minWidth()};Ri.prototype.Z=function(a,b,c,d){var e=this.M(b);Ag(a,d,d.parentElement,b,e,c);if(!c.google_ad_resize){d.style.height=this.height()+"px";b=J(a,Of.c)||"ca-pub-9118350542306317"===c.google_ad_client;d=yf(197)?!J(a,Of.c):J(a,Of.B);e=J(a,P.c);var f=J(a,P.T)||J(a,P.L)||J(a,P.K)||J(a,P.I)||J(a,P.J);if(J(a,Of.c)||J(a,Of.B)||e||f)c.ovlp=!0;b?c.rpe=!1:d&&(c.rpe=!0);if(J(a,Jf.c)||J(a,Jf.R)||J(a,Jf.P))c.ovlp=!0}};function Si(a){return function(b){for(var c=a.length-1;0<=c;--c)if(!a[c](b))return!1;return!0}}function Ti(a,b,c){for(var d=a.length,e=null,f=0;f<d;++f){var g=a[f];if(b(g)){if(!c||c(g))return g;null===e&&(e=g)}}return e};var V=[new U(970,90,2),new U(728,90,2),new U(468,60,2),new U(336,280,1),new U(320,100,2),new U(320,50,2),new U(300,600,4),new U(300,250,1),new U(250,250,1),new U(234,60,2),new U(200,200,1),new U(180,150,1),new U(160,600,4),new U(125,125,1),new U(120,600,4),new U(120,240,4),new U(120,120,1,!0)],Ui=[V[6],V[12],V[3],V[0],V[7],V[14],V[1],V[8],V[10],V[4],V[15],V[2],V[11],V[5],V[13],V[9],V[16]];function Vi(a,b,c,d,e){"false"!=e.google_full_width_responsive||c.location&&"#gfwrffwaifhp"==c.location.hash?"autorelaxed"==b&&(e.google_full_width_responsive||J(c,hg.g))||Wi(b)||e.google_ad_resize?(b=wg(a,c,d,e),c=!0!==b?{l:a,m:b}:{l:Q(c)||a,m:!0}):c={l:a,m:2}:c={l:a,m:1};b=c.m;return!0!==b?{l:a,m:b}:d.parentElement?{l:c.l,m:b}:{l:a,m:b}}function Xi(a,b,c,d,e){var f=be(247,function(){return Vi(a,b,c,d,e)}),g=f.l;f=f.m;var h=!0===f,k=F(d.style.width),m=F(d.style.height),n=Yi(g,b,c,d,e,h);g=n.H;h=n.G;var u=n.D,w=n.F,z=n.ha;n=n.Na;var H=Zi(b,z),E,G=(E=Bg(d,c,"marginLeft",F))?E+"px":"",sb=(E=Bg(d,c,"marginRight",F))?E+"px":"";E=Bg(d,c,"zIndex")||"";return new Bi(H,g,z,null,n,f,h,u,w,G,sb,m,k,E)}function Wi(a){return"auto"==a||/^((^|,) *(horizontal|vertical|rectangle) *)+$/.test(a)}function Yi(a,b,c,d,e,f){b="auto"==b?.25>=a/Math.min(1200,Q(c))?4:3:ug(b);var g=!1,h=!1,k=$i(c),m=488>Q(c);if(k&&m||!k&&Vb()){var n=tg(d,c);h=Eg(d,c);g=!h&&n;h=h&&n}m=(g||k?Ui:V).slice(0);var u=488>Q(c),w=[Cg(a),Dg(u,c,d,h),zi(b)];null!=e.google_max_responsive_height&&w.push(Gg(e.google_max_responsive_height));k||w.push(aj(u));u=[function(H){return!H.Ma}];if(g||h)g=g&&!k?Ig(c,d):Jg(c,d),u.push(Gg(g));var z=Ti(m,Si(w),Si(u));if(!z)throw new L("No slot size for availableWidth="+a);g=be(248,function(){var H;a:if(f){if(e.gfwrnh&&(H=F(e.gfwrnh))){H={H:new Ri(a,H),G:!0,D:!1,F:!1};break a}if($i(c)||"true"==e.google_full_width_responsive||!Eg(d,c)||e.google_resizing_allowed){H=!1;var E=og(c).clientHeight,G=rg(d,c),sb=c.google_lpabyc,bg=Hg(d,c);if(bg&&2<bg&&!c.google_bfabyc&&(!sb||G-sb>E)&&(E=.9*og(c).clientHeight,G=Math.min(E,bj(c,d,e)),E&&G==E)){G=c.google_pbfabyc;H=!G;if(J(c,Jf.R)||J(c,Jf.P)){c.google_bfabyc=rg(d,c)+E;H={H:new Ri(a,Math.floor(E)),G:!0,D:!0,F:!0};break a}G||(c.google_pbfabyc=rg(d,c)+E)}E=a/1.2;G=Math.min(E,bj(c,d,e));if(G<.5*E||100>G)G=E;if(J(c,P.L)||J(c,P.K)||J(c,P.I)||J(c,P.J))G*=1.3;H={H:new Ri(a,Math.floor(G)),G:G<E?102:!0,D:!1,F:H}}else H={H:new Ri(a,z.height()),G:101,D:!1,F:!1}}else H={H:z,G:100,D:!1,F:!1};return H});return{H:g.H,G:g.G,D:g.D,F:g.F,ha:b,Na:n}}function bj(a,b,c){return c.google_resizing_allowed||"true"==c.google_full_width_responsive?Infinity:Ig(a,b)}function Zi(a,b){if("auto"==a)return 1;switch(b){case 2:return 2;case 1:return 3;case 4:return 4;case 3:return 5;case 6:return 6;case 5:return 7;case 7:return 8}throw Error("bad mask");}function aj(a){return function(b){return!(320==b.minWidth()&&(a&&50==b.height()||!a&&100==b.height()))}}function $i(a){return yf(197)?!J(a,Of.c):J(a,Of.B)};var cj={"image-top":function(a){return 600>=a?284+.414*(a-250):429},"image-middle":function(a){return 500>=a?196-.13*(a-250):164+.2*(a-500)},"image-side":function(a){return 500>=a?205-.28*(a-250):134+.21*(a-500)},"text-only":function(a){return 500>=a?187-.228*(a-250):130},"in-article":function(a){return 420>=a?a/1.2:460>=a?a/1.91+130:800>=a?a/4:200}};function dj(a,b){R.call(this,a,b)}ka(dj,R);dj.prototype.M=function(){return Math.min(1200,this.minWidth())};function ej(a,b,c,d,e){var f=e.google_ad_layout||"image-top";if("in-article"==f&&"false"!=e.google_full_width_responsive){var g=vg(b,c,a,.2,e);if(!0!==g)e.gfwrnwer=g;else if(g=Q(b)){e.google_full_width_responsive_allowed=!0;var h=c.parentElement;if(h){b:for(var k=c,m=0;100>m&&k.parentElement;++m){for(var n=k.parentElement.childNodes,u=0;u<n.length;++u){var w=n[u];if(w!=k&&yg(b,w))break b}k=k.parentElement;k.style.width="100%";k.style.height="auto"}Ag(b,c,h,a,g,e);a=g}}}if(250>a)throw new L("Fluid responsive ads must be at least 250px wide: availableWidth="+a);a=Math.min(1200,Math.floor(a));if(d&&"in-article"!=f){f=Math.ceil(d);if(50>f)throw new L("Fluid responsive ads must be at least 50px tall: height="+f);return new Bi(11,new R(a,f))}if("in-article"!=f&&(d=e.google_ad_layout_key)){f=""+d;b=Math.pow(10,3);if(e=(c=f.match(/([+-][0-9a-z]+)/g))&&c.length){d=[];for(g=0;g<e;g++)d.push(parseInt(c[g],36)/b);b=d}else b=null;if(!b)throw new L("Invalid data-ad-layout-key value: "+f);f=(a+-725)/1E3;c=0;e=1;d=b.length;for(g=0;g<d;g++)c+=b[g]*e,e*=f;f=Math.ceil(1E3*c- -725+10);if(isNaN(f))throw new L("Invalid height: height="+f);if(50>f)throw new L("Fluid responsive ads must be at least 50px tall: height="+f);if(1200<f)throw new L("Fluid responsive ads must be at most 1200px tall: height="+f);return new Bi(11,new R(a,f))}if(J(b,lg.c)||J(b,lg.aa)||J(b,lg.ba))e.ovlp=!0;e=cj[f];if(!e)throw new L("Invalid data-ad-layout value: "+f);d=J(b,lg.ba)||J(b,lg.aa);c=Eg(c,b);b=Q(b);b="in-article"===f&&!c&&a===b&&d?Math.ceil(1.25*e(a)):Math.ceil(e(a));return new Bi(11,"in-article"==f?new dj(a,b):new R(a,b))};function fj(a,b){R.call(this,a,b)}ka(fj,R);fj.prototype.M=function(){return this.minWidth()};fj.prototype.ea=function(a){return R.prototype.ea.call(this,a)+"_0ads_al"};var gj=[new fj(728,15),new fj(468,15),new fj(200,90),new fj(180,90),new fj(160,90),new fj(120,90)];function hj(a,b,c){var d=250,e=90;d=void 0===d?130:d;e=void 0===e?30:e;var f=Ti(gj,Cg(a));if(!f)throw new L("No link unit size for width="+a+"px");a=Math.min(a,1200);f=f.height();b=Math.max(f,b);d=(new Bi(10,new fj(a,Math.min(b,15==f?e:d)))).a;b=d.minWidth();d=d.height();15<=c&&(d=c);return new Bi(10,new fj(b,d))}function ij(a,b,c,d){if("false"==d.google_full_width_responsive)return d.google_full_width_responsive_allowed=!1,d.gfwrnwer=1,a;var e=wg(a,b,c,d);if(!0!==e)return d.google_full_width_responsive_allowed=!1,d.gfwrnwer=e,a;e=Q(b);if(!e)return a;d.google_full_width_responsive_allowed=!0;Ag(b,c,c.parentElement,a,e,d);return e};function jj(a,b,c,d,e){var f;(f=Q(b))?488>Q(b)?b.innerHeight>=b.innerWidth?(e.google_full_width_responsive_allowed=!0,Ag(b,c,c.parentElement,a,f,e),f={l:f,m:!0}):f={l:a,m:5}:f={l:a,m:4}:f={l:a,m:10};var g=f;f=g.l;g=g.m;if(!0!==g||a==f)return new Bi(12,new R(a,d),null,null,!0,g,100);a=Yi(f,"auto",b,c,e,!0);return new Bi(1,a.H,a.ha,2,!0,g,a.G,a.D,a.F)};function kj(a){var b=a.google_ad_format;if("autorelaxed"==b){a:{if("pedestal"!=a.google_content_recommendation_ui_type){b=ba(Li);for(var c=b.next();!c.done;c=b.next())if(null!=a[c.value]){a=!0;break a}}a=!1}return a?9:5}if(Wi(b))return 1;if("link"==b)return 4;if("fluid"==b)return 8}function lj(a,b,c,d,e){e=b.offsetWidth||(c.google_ad_resize||(void 0===e?!1:e))&&Bg(b,d,"width",F)||c.google_ad_width||0;!J(d,Qf.g)||5!==a&&9!==a||(c.google_ad_format="auto",c.google_ad_slot="",a=1);var f=(f=mj(a,e,b,c,d))?f:Xi(e,c.google_ad_format,d,b,c);f.a.Z(d,e,c,b);Ci(f,e,c);1!=a&&(a=f.a.height(),b.style.height=a+"px")}function mj(a,b,c,d,e){var f=d.google_ad_height||Bg(c,e,"height",F);switch(a){case 5:return a=be(247,function(){return Vi(b,d.google_ad_format,e,c,d)}),f=a.l,a=a.m,!0===a&&b!=f&&Ag(e,c,c.parentElement,b,f,d),!0===a?d.google_full_width_responsive_allowed=!0:(d.google_full_width_responsive_allowed=!1,d.gfwrnwer=a),nj(e)&&(d.ovlp=!0),Ni(f,d);case 9:return Qi(b,d);case 4:return a=ij(b,e,c,d),hj(a,Jg(e,c),f);case 8:return ej(b,e,c,f,d);case 10:return jj(b,e,c,f,d)}}function nj(a){return J(a,hg.c)||J(a,hg.g)};function W(a){this.h=[];this.b=a||window;this.a=0;this.f=null;this.i=0}var oj;l=W.prototype;l.Ia=function(a,b){0!=this.a||0!=this.h.length||b&&b!=window?this.pa(a,b):(this.a=2,this.wa(new pj(a,window)))};l.pa=function(a,b){this.h.push(new pj(a,b||this.b));qj(this)};l.Ra=function(a){this.a=1;if(a){var b=ce(188,Fa(this.va,this,!0));this.f=this.b.setTimeout(b,a)}};l.va=function(a){a&&++this.i;1==this.a&&(null!=this.f&&(this.b.clearTimeout(this.f),this.f=null),this.a=0);qj(this)};l.Ya=function(){return!(!window||!Array)};l.La=function(){return this.i};function qj(a){var b=ce(189,Fa(a.Za,a));a.b.setTimeout(b,0)}l.Za=function(){if(0==this.a&&this.h.length){var a=this.h.shift();this.a=2;var b=ce(190,Fa(this.wa,this,a));a.a.setTimeout(b,0);qj(this)}};l.wa=function(a){this.a=0;a.b()};function rj(a){try{return a.sz()}catch(b){return!1}}function sj(a){return!!a&&("object"===typeof a||"function"===typeof a)&&rj(a)&&Ec(a.nq)&&Ec(a.nqa)&&Ec(a.al)&&Ec(a.rl)}function tj(){if(oj&&rj(oj))return oj;var a=Bf(),b=a.google_jobrunner;return sj(b)?oj=b:a.google_jobrunner=oj=new W(a)}function uj(a,b){tj().nq(a,b)}function vj(a,b){tj().nqa(a,b)}W.prototype.nq=W.prototype.Ia;W.prototype.nqa=W.prototype.pa;W.prototype.al=W.prototype.Ra;W.prototype.rl=W.prototype.va;W.prototype.sz=W.prototype.Ya;W.prototype.tc=W.prototype.La;function pj(a,b){this.b=a;this.a=b};function wj(a,b){var c=Mc(b);if(c){c=Q(c);var d=$b(a,b)||{},e=d.direction;if("0px"===d.width&&"none"!=d.cssFloat)return-1;if("ltr"===e&&c)return Math.floor(Math.min(1200,c-a.getBoundingClientRect().left));if("rtl"===e&&c)return a=b.document.body.getBoundingClientRect().right-a.getBoundingClientRect().right,Math.floor(Math.min(1200,c-a-Math.floor((c-b.document.body.clientWidth)/2)))}return-1};function xj(a){var b=this;this.a=a;a.google_iframe_oncopy||(a.google_iframe_oncopy={handlers:{},upd:function(c,d){var e=yj("rx",c),f=Number;a:{if(c&&(c=c.match("dt=([^&]+)"))&&2==c.length){c=c[1];break a}c=""}f=f(c);f=(new Date).getTime()-f;e=e.replace(/&dtd=(\d+|-?M)/,"&dtd="+(1E5<=f?"M":0<=f?f:"-M"));b.set(d,e);return e}});this.b=a.google_iframe_oncopy}xj.prototype.set=function(a,b){var c=this;this.b.handlers[a]=b;this.a.addEventListener&&this.a.addEventListener("load",function(){var d=c.a.document.getElementById(a);try{var e=d.contentWindow.document;if(d.onload&&e&&(!e.body||!e.body.firstChild))d.onload()}catch(f){}},!1)};function yj(a,b){var c=new RegExp("\\b"+a+"=(\\d+)"),d=c.exec(b);d&&(b=b.replace(c,a+"="+(+d[1]+1||1)));return b}var zj,Aj="var i=this.id,s=window.google_iframe_oncopy,H=s&&s.handlers,h=H&&H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}";var X=Aj;/[\x00&<>"']/.test(X)&&(-1!=X.indexOf("&")&&(X=X.replace(Za,"&")),-1!=X.indexOf("<")&&(X=X.replace($a,"<")),-1!=X.indexOf(">")&&(X=X.replace(ab,">")),-1!=X.indexOf('"')&&(X=X.replace(bb,""")),-1!=X.indexOf("'")&&(X=X.replace(cb,"'")),-1!=X.indexOf("\x00")&&(X=X.replace(db,"�")));Aj=X;zj=Aj;var Bj={},Cj=(Bj.google_ad_modifications=!0,Bj.google_analytics_domain_name=!0,Bj.google_analytics_uacct=!0,Bj.google_pause_ad_requests=!0,Bj);var Dj=/^\.google\.(com?\.)?[a-z]{2,3}$/,Ej=/\.(cn|com\.bi|do|sl|ba|by|ma|am)$/;function Fj(a){return Dj.test(a)&&!Ej.test(a)}var Gj=p;function Hj(a){a="https://adservice"+(a+"/adsid/integrator.js");var b=["domain="+encodeURIComponent(p.location.hostname)];Y[3]>=+new Date&&b.push("adsid="+encodeURIComponent(Y[1]));return a+"?"+b.join("&")}var Y,Z;function Ij(){Gj=p;Y=Gj.googleToken=Gj.googleToken||{};var a=+new Date;Y[1]&&Y[3]>a&&0<Y[2]||(Y[1]="",Y[2]=-1,Y[3]=-1,Y[4]="",Y[6]="");Z=Gj.googleIMState=Gj.googleIMState||{};Fj(Z[1])||(Z[1]=".google.com");ya(Z[5])||(Z[5]=[]);"boolean"==typeof Z[6]||(Z[6]=!1);ya(Z[7])||(Z[7]=[]);pa(Z[8])||(Z[8]=0)}var Jj={fa:function(){return 0<Z[8]},Ua:function(){Z[8]++},Va:function(){0<Z[8]&&Z[8]--},Wa:function(){Z[8]=0},ab:function(){return!1},Ka:function(){return Z[5]},Ga:function(a){try{a()}catch(b){p.setTimeout(function(){throw b;},0)}},Ta:function(){if(!Jj.fa()){var a=p.document,b=function(e){e=Hj(e);a:{try{var f=qa();break a}catch(g){}f=void 0}Dh(a,e,f);f=a.createElement("script");f.type="text/javascript";f.onerror=function(){return p.processGoogleToken({},2)};e=Tb(e);vb(f,e);try{(a.head||a.body||a.documentElement).appendChild(f),Jj.Ua()}catch(g){}},c=Z[1];b(c);".google.com"!=c&&b(".google.com");b={};var d=(b.newToken="FBT",b);p.setTimeout(function(){return p.processGoogleToken(d,1)},1E3)}}};function Kj(){p.processGoogleToken=p.processGoogleToken||function(a,b){var c=a;c=void 0===c?{}:c;b=void 0===b?0:b;a=c.newToken||"";var d="NT"==a,e=parseInt(c.freshLifetimeSecs||"",10),f=parseInt(c.validLifetimeSecs||"",10),g=c["1p_jar"]||"";c=c.pucrd||"";Ij();1==b?Jj.Wa():Jj.Va();var h=Gj.googleToken=Gj.googleToken||{},k=0==b&&a&&q(a)&&!d&&pa(e)&&0<e&&pa(f)&&0<f&&q(g);d=d&&!Jj.fa()&&(!(Y[3]>=+new Date)||"NT"==Y[1]);var m=!(Y[3]>=+new Date)&&0!=b;if(k||d||m)d=+new Date,e=d+1E3*e,f=d+1E3*f,1E-5>Math.random()&&sc("https://pagead2.googlesyndication.com/pagead/gen_204?id=imerr&err="+b,null),h[5]=b,h[1]=a,h[2]=e,h[3]=f,h[4]=g,h[6]=c,Ij();if(k||!Jj.fa()){b=Jj.Ka();for(a=0;a<b.length;a++)Jj.Ga(b[a]);b.length=0}};Ij();Y[3]>=+new Date&&Y[2]>=+new Date||Jj.Ta()};var Lj=zb("script");function Mj(){D.google_sa_impl&&!D.document.getElementById("google_shimpl")&&(D.google_sa_queue=null,D.google_sl_win=null,D.google_sa_impl=null);if(!D.google_sa_queue){D.google_sa_queue=[];D.google_sl_win=D;D.google_process_slots=function(){return Nj(D)};var a=Oj();Dh(D.document,a);J(D,"20199335")||!qb()||t("iPhone")&&!t("iPod")&&!t("iPad")||t("iPad")||t("iPod")?Zb(D.document,a).id="google_shimpl":(a=Rb(document,"IFRAME"),a.id="google_shimpl",a.style.display="none",D.document.documentElement.appendChild(a),xi(D,"google_shimpl","<!doctype html><html><body><"+(Lj+">google_sl_win=window.parent;google_async_iframe_id='google_shimpl';</")+(Lj+">")+Pj()+"</body></html>"),a.contentWindow.document.close())}}var Nj=ce(215,function(a){var b=a.google_sa_queue,c=b.shift();a.google_sa_impl||de("shimpl",{t:"no_fn"});"function"==wa(c)&&be(216,c);b.length&&a.setTimeout(function(){return Nj(a)},0)});function Qj(a,b,c){a.google_sa_queue=a.google_sa_queue||[];a.google_sa_impl?c(b):a.google_sa_queue.push(b)}function Pj(){var a=Oj();return"<"+Lj+' src="'+a+'"></'+Lj+">"}function Oj(){var a="/show_ads_impl.js";a=void 0===a?"/show_ads_impl.js":a;a:{if(xc)try{var b=D.google_cafe_host||D.top.google_cafe_host;if(b){var c=b;break a}}catch(d){}c=Ac()}return jf(c,["/pagead/js/",wc(),"/r20190131",a,""].join(""),"https")}function Rj(a,b,c,d){return function(){var e=!1;d&&tj().al(3E4);try{xi(a,b,c),e=!0}catch(g){var f=Bf().google_jobrunner;sj(f)&&f.rl()}e&&(e=yj("google_async_rrc",c),(new xj(a)).set(b,Rj(a,b,e,!1)))}}function Sj(a){if(!yi)a:{for(var b=[p.top],c=[],d=0,e;e=b[d++];){c.push(e);try{if(e.frames)for(var f=e.frames.length,g=0;g<f&&1024>b.length;++g)b.push(e.frames[g])}catch(k){}}for(b=0;b<c.length;b++)try{var h=c[b].frames.google_esf;if(h){yi=h;break a}}catch(k){}yi=null}if(!yi){if(/[^a-z0-9-]/.test(a))return null;c=Rb(document,"IFRAME");c.id="google_esf";c.name="google_esf";h=hf(vc("","googleads.g.doubleclick.net"),["/pagead/html/",wc(),"/r20190131/zrt_lookup.html#",encodeURIComponent("")].join(""));c.src=h;c.style.display="none";c.setAttribute("data-ad-client",Fh(a));return c}return null}function Tj(a,b,c){Uj(a,b,c,function(d,e,f){d=d.document;for(var g=e.id,h=0;!g||d.getElementById(g+"_anchor");)g="aswift_"+h++;e.id=g;e.name=g;g=Number(f.google_ad_width||0);h=Number(f.google_ad_height||0);var k=f.ds||"";k&&(k+=k.endsWith(";")?"":";");var m="";if(!f.google_enable_single_iframe){m=["<iframe"];for(n in e)e.hasOwnProperty(n)&&m.push(n+"="+e[n]);m.push('style="left:0;position:absolute;top:0;border:0px;width:'+(g+"px;height:"+(h+'px;"')));m.push("></iframe>");m=m.join(" ")}var n=e.id;var u="";u=void 0===u?"":u;g="border:none;height:"+h+"px;margin:0;padding:0;position:relative;visibility:visible;width:"+(g+"px;background-color:transparent;");n=['<ins id="'+(n+'_expand"'),' style="display:inline-table;'+g+(void 0===k?"":k)+'"',u?' data-ad-slot="'+u+'">':">",'<ins id="'+(n+'_anchor" style="display:block;')+g+'">',m,"</ins></ins>"].join("");16==f.google_reactive_ad_format?(f=d.createElement("div"),f.innerHTML=n,c.appendChild(f.firstChild)):c.innerHTML=n;return e.id})}function Uj(a,b,c,d){var e=b.google_ad_width,f=b.google_ad_height;J(a,jg.g)?(fe(!0),b.google_enable_single_iframe=!0):J(a,jg.c)&&fe(!1);var g={};null!=e&&(g.width=e&&'"'+e+'"');null!=f&&(g.height=f&&'"'+f+'"');g.frameborder='"0"';g.marginwidth='"0"';g.marginheight='"0"';g.vspace='"0"';g.hspace='"0"';g.allowtransparency='"true"';g.scrolling='"no"';g.allowfullscreen='"true"';g.onload='"'+zj+'"';d=d(a,g,b);Vj(a,c,b);(c=Sj(b.google_ad_client))&&a.document.documentElement.appendChild(c);c=Ha;e=(new Date).getTime();b.google_lrv=wc();b.google_async_iframe_id=d;b.google_unique_id=Gc(a);b.google_start_time=c;b.google_bpp=e>c?e-c:1;b.google_async_rrc=0;a.google_sv_map=a.google_sv_map||{};a.google_sv_map[d]=b;a.google_t12n_vars=vf;if(b.google_enable_single_iframe){var h={pubWin:a,iframeWin:null,vars:b};Qj(a,function(){a.google_sa_impl(h)},a.document.getElementById(d+"_anchor")?uj:vj)}else Qj(a,Rj(a,d,["<!doctype html><html><body>","<"+Lj+">","google_sl_win=window.parent;google_iframe_start_time=new Date().getTime();",'google_async_iframe_id="'+d+'";',"</"+Lj+">","<"+Lj+">window.parent.google_sa_impl({iframeWin: window, pubWin: window.parent, vars: window.parent['google_sv_map']['"+(d+"']});</")+Lj+">","</body></html>"].join(""),!0),a.document.getElementById(d)?uj:vj)}function Vj(a,b,c){var d=c.google_ad_output,e=c.google_ad_format,f=c.google_ad_width||0,g=c.google_ad_height||0;e||"html"!=d&&null!=d||(e=f+"x"+g);d=!c.google_ad_slot||c.google_override_format||!Pb[c.google_ad_width+"x"+c.google_ad_height]&&"aa"==c.google_loader_used;e&&d?e=e.toLowerCase():e="";c.google_ad_format=e;if(!pa(c.google_reactive_sra_index)||!c.google_ad_unit_key){e=[c.google_ad_slot,c.google_orig_ad_format||c.google_ad_format,c.google_ad_type,c.google_orig_ad_width||c.google_ad_width,c.google_orig_ad_height||c.google_ad_height];d=[];f=0;for(g=b;g&&25>f;g=g.parentNode,++f)9===g.nodeType?d.push(""):d.push(g.id);(d=d.join())&&e.push(d);c.google_ad_unit_key=fc(e.join(":")).toString();var h=void 0===h?!1:h;e=[];for(d=0;b&&25>d;++d){f="";void 0!==h&&h||(f=(f=9!==b.nodeType&&b.id)?"/"+f:"");a:{if(b&&b.nodeName&&b.parentElement){g=b.nodeName.toString().toLowerCase();for(var k=b.parentElement.childNodes,m=0,n=0;n<k.length;++n){var u=k[n];if(u.nodeName&&u.nodeName.toString().toLowerCase()===g){if(b===u){g="."+m;break a}++m}}}g=""}e.push((b.nodeName&&b.nodeName.toString().toLowerCase())+f+g);b=b.parentElement}h=e.join()+":";b=[];if(a)try{var w=a.parent;for(e=0;w&&w!==a&&25>e;++e){var z=w.frames;for(d=0;d<z.length;++d)if(a===z[d]){b.push(d);break}a=w;w=a.parent}}catch(H){}c.google_ad_dom_fingerprint=fc(h+b.join()).toString()}};function Wj(a,b){a=a.attributes;for(var c=a.length,d=0;d<c;d++){var e=a[d];if(/data-/.test(e.name)){var f=Ya(e.name.replace("data-matched-content","google_content_recommendation").replace("data","google").replace(/-/g,"_"));if(!b.hasOwnProperty(f)){e=e.value;var g={};g=(g.google_reactive_ad_format=tc,g.google_allow_expandable_ads=jc,g);e=g.hasOwnProperty(f)?g[f](e,null):e;null===e||(b[f]=e)}}}}function Xj(a){if(a=Bc(a))switch(a.data&&a.data.autoFormat){case "rspv":return 13;case "mcrspv":return 15;default:return 14}else return 12}function Yj(a,b,c){Wj(a,b);if(c.document&&c.document.body&&!kj(b)&&!b.google_reactive_ad_format){var d=parseInt(a.style.width,10),e=wj(a,c);if(0<e&&d>e){var f=parseInt(a.style.height,10);d=!!Pb[d+"x"+f];var g=e;if(d){var h=Qb(e,f);if(h)g=h,b.google_ad_format=h+"x"+f+"_0ads_al";else throw new L("No slot size for availableWidth="+e);}b.google_ad_resize=!0;b.google_ad_width=g;d||(b.google_ad_format=null,b.google_override_format=!0);e=g;a.style.width=e+"px";f=Xi(e,"auto",c,a,b);g=e;f.a.Z(c,g,b,a);Ci(f,g,b);f=f.a;b.google_responsive_formats=null;f.minWidth()>e&&!d&&(b.google_ad_width=f.minWidth(),a.style.width=f.minWidth()+"px")}}d=a.offsetWidth||Bg(a,c,"width",F)||b.google_ad_width||0;a:{e=Ga(Xi,d,"auto",c,a,b,!1,!0);h=J(c,ag.c);var k=J(c,ag.g);f=J(c,dg.c);g=J(c,dg.g);var m=Ih(c,11,b.google_ad_client),n=J(c,fg.g);var u=b.google_ad_client;u=null!=Gh(c,void 0===u?"":u);if(!(h||k||m||u)||!Vb()||b.google_reactive_ad_format||kj(b)||qg(a,b)||b.google_ad_resize||Lc(c)!=c)d=!1;else{for(k=a;k;k=k.parentElement)if(m=$b(k,c),!m||!Oa(["static","relative"],m.position)){d=!1;break a}if(!0!==vg(c,a,d,.3,b))d=!1;else{b.google_resizing_allowed=!0;k=Bh(c.location,"google_responsive_slot_debug");m=O(zf(),142);if(k||Math.random()<m)b.ovlp=!0;h||g||n?(h={},Ci(e(),d,h),b.google_resizing_width=h.google_ad_width,b.google_resizing_height=h.google_ad_height,h.ds&&(b.ds=h.ds),b.iaaso=!1):(b.google_ad_format="auto",b.iaaso=!0,b.armr=1);(d=f?"AutoOptimizeAdSizeVariant":g?"AutoOptimizeAdSizeOriginal":null)&&(b.google_ad_channel=b.google_ad_channel?[b.google_ad_channel,d].join("+"):d);d=!0}}}if(e=kj(b))lj(e,a,b,c,d);else{if(qg(a,b)){if(d=$b(a,c))a.style.width=d.width,a.style.height=d.height,pg(d,b);b.google_ad_width||(b.google_ad_width=a.offsetWidth);b.google_ad_height||(b.google_ad_height=a.offsetHeight);b.google_loader_features_used=256;b.google_responsive_auto_format=Xj(c)}else pg(a.style,b),300==b.google_ad_width&&250==b.google_ad_height&&(d=a.style.width,a.style.width="100%",e=a.offsetWidth,a.style.width=d,b.google_available_width=e);c.location&&"#gfwmrp"==c.location.hash||12==b.google_responsive_auto_format&&"true"==b.google_full_width_responsive&&!J(c,Mf.g)?lj(10,a,b,c,!1):J(c,Nf.g)&&12==b.google_responsive_auto_format&&(a=wg(a.offsetWidth||parseInt(a.style.width,10)||b.google_ad_width,c,a,b),!0!==a?(b.efwr=!1,b.gfwrnwer=a):b.efwr=!0)}};function Zj(a){var b;this.b=b=void 0===b?document:b;this.h=void 0===a?0:a;this.f=ak(this,"__gads=");this.i=!1;this.a=null;this.s=!1;bk(this)}Zj.prototype.w=function(a){this.h=a;bk(this)};function ck(a,b){var c=Vd;var d=void 0===d?dk:d;1!=a.h&&(a.f||a.i)&&(D._setgfp_=Ud(c,629,function(e){delete D._setgfp_;if(!e)throw Error("Invalid JSONP response");if(e=e._cookies_){var f=e[0];if(!f)throw Error("Invalid JSONP response");var g=f._value_,h=f._expires_;e=f._path_;f=f._domain_;if(!(q(g)&&pa(h)&&q(e)&&q(f)))throw Error("Invalid JSONP response");var k=new Nb;g=Ib(k,1,g);h=Ib(g,2,h);e=Ib(h,3,e);e=[Ib(e,4,f)];e.length&&(a.a=e[0],e=a.a&&y(a.a,1))&&(a.f=e,null!=a.a&&a.f&&(e=new Date,e.setTime(1E3*y(a.a,2)),f="."+y(a.a,4),e="__gads="+a.f+("; expires="+e.toGMTString())+("; path="+y(a.a,3)+"; domain="+f),a.b.cookie=e))}}),Zb(a.b,d({domain:a.b.domain,clientId:b,value:a.f,cookieEnabled:a.i})))}function dk(a){var b=a.value,c=a.cookieEnabled;a="https://partner.googleadservices.com/gampad/cookie.js?domain="+a.domain+"&callback=_setgfp_&client="+a.clientId;b&&(a+="&cookie="+encodeURIComponent(b));c&&(a+="&cookie_enabled=1");return a}function bk(a){if(!a.f&&!a.s&&1!=a.h){a.b.cookie="GoogleAdServingTest=Good";var b="Good"===ak(a,"GoogleAdServingTest=");if(b){var c=a.b,d=new Date;d.setTime((new Date).valueOf()+-1);c.cookie="GoogleAdServingTest=; expires="+d.toGMTString()}a.i=b;a.s=!0}}function ak(a,b){a=a.b.cookie;var c=a.indexOf(b);if(-1===c)return"";b=c+b.length;c=a.indexOf(";",b);-1==c&&(c=a.length);return a.substring(b,c)};function ek(a){return Kc.test(a.className)&&"done"!=a.getAttribute("data-adsbygoogle-status")}function fk(a,b){var c=window;a.setAttribute("data-adsbygoogle-status","done");gk(a,b,c)}function gk(a,b,c){var d=Jc();d.google_spfd||(d.google_spfd=Yj);(d=b.google_reactive_ads_config)||Yj(a,b,c);if(!hk(a,b,c)){d||(c.google_lpabyc=Nh(c,a));if(d){d=d.page_level_pubvars||{};if(I(D).page_contains_reactive_tag&&!I(D).allow_second_reactive_tag){if(d.pltais){Oc(!1);return}throw new L("Only one 'enable_page_level_ads' allowed per page.");}I(D).page_contains_reactive_tag=!0;Oc(7===d.google_pgb_reactive)}else Fc(c);if(!I(D).per_pub_js_loaded){I(D).per_pub_js_loaded=!0;try{c.localStorage.removeItem("google_pub_config")}catch(e){}}Dc(Cj,function(e,f){b[f]=b[f]||c[f]});b.google_loader_used="aa";b.google_reactive_tag_first=1===(I(D).first_tag_on_page||0);be(164,function(){Tj(c,b,a)})}}function hk(a,b,c){var d=b.google_reactive_ads_config;if(d){var e=d.page_level_pubvars;var f=(za(e)?e:{}).google_tag_origin}e=q(a.className)&&/(\W|^)adsbygoogle-noablate(\W|$)/.test(a.className);var g=b.google_ad_slot;var h=f||b.google_tag_origin;f=I(c);Pc(f.ad_whitelist||[],g,h)?g=null:(h=f.space_collapsing||"none",g=(g=Pc(f.ad_blacklist||[],g))?{ma:!0,ya:g.space_collapsing||h}:f.remove_ads_by_default?{ma:!0,ya:h,ca:f.ablation_viewport_offset}:null);if(g&&g.ma&&"on"!=b.google_adtest&&!e&&(e=Hg(a,c),!g.ca||g.ca&&(e||0)>=g.ca))return a.className+=" adsbygoogle-ablated-ad-slot",c=c.google_sv_map=c.google_sv_map||{},d=Aa(a),c[b.google_element_uid]=b,a.setAttribute("google_element_uid",d),"slot"==g.ya&&(null!==ic(a.getAttribute("width"))&&a.setAttribute("width",0),null!==ic(a.getAttribute("height"))&&a.setAttribute("height",0),a.style.width="0px",a.style.height="0px"),!0;if((e=$b(a,c))&&"none"==e.display&&!("on"==b.google_adtest||0<b.google_reactive_ad_format||d))return c.document.createComment&&a.appendChild(c.document.createComment("No ad requested because of display:none on the adsbygoogle tag")),!0;a=null==b.google_pgb_reactive||3===b.google_pgb_reactive;return 1!==b.google_reactive_ad_format&&8!==b.google_reactive_ad_format||!a?!1:(p.console&&p.console.warn("Adsbygoogle tag with data-reactive-ad-format="+b.google_reactive_ad_format+" is deprecated. Check out page-level ads at https://www.google.com/adsense"),!0)}function ik(a){var b=document.getElementsByTagName("INS");for(var c=0,d=b[c];c<b.length;d=b[++c]){var e=d;if(ek(e)&&"reserved"!=e.getAttribute("data-adsbygoogle-status")&&(!a||d.id==a))return d}return null}function jk(){var a=Rb(document,"INS");a.className="adsbygoogle";a.className+=" adsbygoogle-noablate";kc(a);return a}function kk(a){var b={};Dc(md,function(e,f){!1===a.enable_page_level_ads?b[f]=!1:a.hasOwnProperty(f)&&(b[f]=a[f])});za(a.enable_page_level_ads)&&(b.page_level_pubvars=a.enable_page_level_ads);var c=jk();Ob.body.appendChild(c);var d={};d=(d.google_reactive_ads_config=b,d.google_ad_client=a.google_ad_client,d);d.google_pause_ad_requests=I(D).pause_ad_requests||!1;fk(c,d)}function lk(a){return"complete"==a.readyState||"interactive"==a.readyState}function mk(a){function b(){return kk(a)}var c=void 0===c?Ob:c;var d=Mc(window);if(!d)throw new L("Page-level tag does not work inside iframes.");ng(d).wasPlaTagProcessed=!0;if(c.body||lk(c))b();else{var e=Ra(ce(191,b));rc(c,"DOMContentLoaded",e);(new p.MutationObserver(function(f,g){c.body&&(e(),g.disconnect())})).observe(c,{childList:!0,subtree:!0})}}function nk(a){var b={};be(165,function(){ok(a,b)},function(c){c.client=c.client||b.google_ad_client||a.google_ad_client;c.slotname=c.slotname||b.google_ad_slot;c.tag_origin=c.tag_origin||b.google_tag_origin})}function pk(a){delete a.google_checked_head;ec(a,function(b,c){Rc[c]||(delete a[c],b=c.replace("google","data").replace(/_/g,"-"),p.console.warn("AdSense head tag doesn't support "+b+" attribute."))})}function qk(a){var b=D._gfp_;if(void 0===b||1===b)J(D,Sf.g)?ck(D._gfp_=new Zj(b?1:0),a):D._gfp_=2}function rk(){var a=yf(201),b=J(D,Zf.g),c=J(D,Zf.c);return b||a&&!c}function ok(a,b){if(null==a)throw new L("push() called with no parameters.");Ha=(new Date).getTime();Mj();a:{if(void 0!=a.enable_page_level_ads){if(q(a.google_ad_client)){var c=!0;break a}throw new L("'google_ad_client' is missing from the tag config.");}c=!1}if(c)sk(a,b);else if((c=a.params)&&Dc(c,function(e,f){b[f]=e}),"js"===b.google_ad_output)console.warn("Ads with google_ad_output='js' have been deprecated and no longer work. Contact your AdSense account manager or switch to standard AdSense ads.");else{a=tk(a.element);Wj(a,b);c=I(p).head_tag_slot_vars||{};ec(c,function(e,f){b.hasOwnProperty(f)||(b[f]=e)});if(a.hasAttribute("data-require-head")&&!I(p).head_tag_slot_vars)throw new L("AdSense head tag is missing. AdSense body tags don't work without the head tag. You can copy the head tag from your account on https://adsense.com.");if(rk()&&!b.google_ad_client)throw new L("Ad client is missing from the slot.");var d=(c=0===(I(D).first_tag_on_page||0)&&Lh(b))&&Mh(c);c&&!d&&(sk(c),I(D).skip_next_reactive_tag=!0);0===(I(D).first_tag_on_page||0)&&(I(D).first_tag_on_page=2);qk(b.google_ad_client);b.google_pause_ad_requests=I(D).pause_ad_requests||!1;fk(a,b);c&&d&&uk(c)}}function uk(a){function b(){ng(p).wasPlaTagProcessed||p.adsbygoogle&&p.adsbygoogle.push(a)}lk(Ob)?b():rc(Ob,"DOMContentLoaded",Ra(b))}function sk(a,b){if(I(D).skip_next_reactive_tag)I(D).skip_next_reactive_tag=!1;else{0===(I(D).first_tag_on_page||0)&&(I(D).first_tag_on_page=1);b&&a.tag_partner&&(Nc(p,a.tag_partner),Nc(b,a.tag_partner));a:if(!I(D).ama_ran_on_page){try{var c=p.localStorage.getItem("google_ama_config")}catch(z){c=null}try{var d=c?new dd(c?JSON.parse(c):null):null}catch(z){d=null}if(b=d)if(c=B(b,fd,3),!c||y(c,1)<=+new Date)try{p.localStorage.removeItem("google_ama_config")}catch(z){me(p,{lserr:1})}else{if(Mh(a)&&(c=nd(p.location.pathname,C(b,gd,7)),!c||!Fb(c,8)))break a;I(D).ama_ran_on_page=!0;B(b,jd,13)&&1===y(B(b,jd,13),1)&&(c=0,B(B(b,jd,13),kd,6)&&y(B(B(b,jd,13),kd,6),3)&&(c=y(B(B(b,jd,13),kd,6),3)||0),d=I(p),d.remove_ads_by_default=!0,d.space_collapsing="slot",d.ablation_viewport_offset=c);mf(3,[Jb(b)]);c=a.google_ad_client;d=he(je,new ge(null,ne(za(a.enable_page_level_ads)?a.enable_page_level_ads:{})));try{var e=nd(p.location.pathname,C(b,gd,7)),f;if(f=e)b:{var g=y(e,2);if(g)for(var h=0;h<g.length;h++)if(1==g[h]){f=!0;break b}f=!1}if(f){if(y(e,4)){f={};var k=new ge(null,(f.google_package=y(e,4),f));d=he(d,k)}var m=new mh(c,b,e,d),n=new rh;(new wh(m,n)).start();var u=n.b;var w=Ga(zh,p);if(u.b)throw Error("Then functions already set.");u.b=Ga(yh,p);u.f=w;uh(u)}}catch(z){me(p,{atf:-1})}}}mk(a)}}function tk(a){if(a){if(!ek(a)&&(a.id?a=ik(a.id):a=null,!a))throw new L("'element' has already been filled.");if(!("innerHTML"in a))throw new L("'element' is not a good DOM element.");}else if(a=ik(),!a)throw new L("All ins elements in the DOM with class=adsbygoogle already have ads in them.");return a}function vk(){Zd();Vd.s=ee;be(166,wk)}function wk(){var a=Cc(Bc(D))||D,b=I(a);if(!b.plle){b.plle=!0;var c=[null,null];try{var d=JSON.parse("[[[175,null,null,[1]]],[[12,[[1,[[21064123],[21064124]]]]],[10,[[10,[[20040008],[20040009,[[182,null,null,[1]]]]]],[1,[[21062810],[21062811]]],[1,[[21063996],[21063997,[[160,null,null,[1]]]]]],[50,[[21064339],[21064340,[[186,null,null,[1]]]]]],[50,[[21064380],[21064381,[[196,null,null,[1]]]]]],[1000,[[368226200,null,[2,[[12,null,null,5,null,null,\x22[02468]$\x22,[\x229\x22]],[7,null,null,5,null,2,null,[\x229\x22]]]]],[368226201,null,[2,[[12,null,null,5,null,null,\x22[13579]$\x22,[\x229\x22]],[7,null,null,5,null,2,null,[\x229\x22]]]]]]],[1000,[[368845002,null,[2,[[12,null,null,5,null,null,\x22[13579]$\x22,[\x224\x22]],[7,null,null,5,null,2,null,[\x224\x22]]]]],[368885001,null,[2,[[12,null,null,5,null,null,\x22[02468]$\x22,[\x224\x22]],[7,null,null,5,null,2,null,[\x224\x22]]]]]]]]],[11,[[10,[[248427477],[248427478,[[154,null,null,[1]]]]]]]]]]")}catch(m){d=c}mf(13,[d]);ti(new ei(d),Zh(a));Cf.j().a(12);Cf.j().a(10);b.eids=Ka(Cf.j().b(),String).concat(b.eids||[]);b=b.eids;d=zf();zc=!0;c=zf();var e=Mc(a)||a;e=Bh(e.location,"google_responsive_slot_debug")||Bh(e.location,"google_responsive_slot_preview");var f=Ih(a,11);var g=null!=Gh(a,"");e?(e=ag,f=cg,c=e.g):g?(e=fg,f=gg,c=T(a,new K(0,999,""),O(c,152),O(c,153),[e.c,e.g],2)):f?(e=dg,f=eg,c=T(a,new K(0,999,""),O(c,120),O(c,121),[e.c,e.g],2)):(e=ag,f=cg,c=T(a,Rh,O(c,96),O(c,97),[e.c,e.g]));c?(g={},e=(g[e.c]=f.c,g[e.g]=f.g,g)[c],c={Qa:c,Sa:e}):c=null;e=c||{};c=e.Qa;g=e.Sa;c&&g&&(S(b,c),S(b,g));e=Mf;c=wi(a,O(d,136),[e.c,e.g]);S(b,c);Ih(a,12)&&(e=Ff,f=Ef,c=T(a,new K(0,999,""),O(d,149),O(d,150),[e.c,e.g],4),S(b,c),c==e.c?g=f.c:c==e.g?g=f.g:g="",S(b,g));e=Jf;c=T(a,Oh,O(d,160),O(d,161),[e.c,e.R,e.P]);S(b,c);f=If;c==e.c?g=f.c:c==e.R?g=f.R:c==e.P?g=f.P:g="";S(b,g);e=Tf;S(b,T(a,Ph,O(d,9),O(d,10),[e.c,e.Da]));e=Hf;c=T(a,Uh,O(d,179),O(d,180),[e.c,e.U]);S(b,c);f=Gf;c==e.c?g=f.c:c==e.U?g=f.U:g="";S(b,g);e=$f;c=T(a,Xh,O(d,195),O(d,196),[e.c,e.g]);S(b,c);f=Zf;c==e.c?g=f.c:c==e.g?g=f.g:g="";S(b,g);e=Lf;c=T(a,Yh,O(d,199),O(d,200),[e.c,e.g]);S(b,c);f=Kf;c==e.c?g=f.c:c==e.g?g=f.g:g="";S(b,g);Ya("")&&S(b,"");e=Uf;c=wi(a,O(d,13),[e.o,e.c]);S(b,c);c=wi(a,0,[e.la]);S(b,c);e=Vf;c=wi(a,O(d,60),[e.o,e.c]);S(b,c);c==Vf.o&&(e=Wf,c=wi(a,O(d,66),[e.o,e.c]),S(b,c),e=Yf,c=wi(a,O(d,137),[e.o,e.c]),S(b,c),c==Wf.o&&(e=Xf,c=wi(a,O(d,135),[e.o,e.c]),S(b,c)));e=Nf;c=wi(a,O(d,98),[e.c,e.g]);S(b,c);e=Sf;c=wi(a,O(d,192),[e.c,e.g]);S(b,c);e=Of;c=T(a,Th,O(d,157),O(d,158),[e.c,e.B]);S(b,c);f=Pf;c==e.c?g=f.c:c==e.B?g=f.B:g="";S(b,g);e=Qf;c=T(a,Sh,O(d,173),O(d,174),[e.c,e.g]);S(b,c);f=Rf;c==e.c?g=f.c:c==e.g?g=f.g:g="";S(b,g);e=hg;c=T(a,Qh,O(d,99),O(d,100),[e.c,e.g]);S(b,c);f=ig;c==e.c?g=f.c:c==e.g?g=f.g:g="";S(b,g);e=jg;c=wi(a,O(d,165),[e.c,e.g]);S(b,c);e=P;c=T(a,Vh,O(d,189),O(d,190),[e.c,e.T,e.L,e.K,e.I,e.J]);S(b,c);f=kg;c==e.c?g=f.c:c==e.T?g=f.T:c==e.L?g=f.L:c==e.K?g=f.K:c==e.I?g=f.I:c==e.J?g=f.J:g="";S(b,g);e=lg;c=T(a,Wh,O(d,193),O(d,194),[e.c,e.aa,e.ba]);S(b,c);c=wi(a,O(d,185),["20199336","20199335"]);S(b,c);a=Mc(a)||a;Bh(a.location,"google_mc_lab")&&S(b,"242104166")}if(!t("Trident")&&!t("MSIE")||ub(11)){a=J(D,Wf.o)||J(D,Uf.o)||J(D,Uf.la);Xd(a);Ij();Fj(".google.dz")&&(Z[1]=".google.dz");Kj();if(a=Mc(p))a=ng(a),a.tagSpecificState[1]||(a.tagSpecificState[1]=new Ah);if(d=D.document.querySelector('script[src*="/pagead/js/adsbygoogle.js"][data-ad-client]:not([data-checked-head])')){d.setAttribute("data-checked-head","true");b=I(window);if(b.head_tag_slot_vars)throw new L("Only one AdSense head tag supported per page. The second tag is ignored.");a={};Wj(d,a);pk(a);d={};for(var h in a)d[h]=a[h];b.head_tag_slot_vars=d;h={};h=(h.google_ad_client=a.google_ad_client,h.enable_page_level_ads=a,h);D.adsbygoogle||(D.adsbygoogle=[]);a=D.adsbygoogle;a.loaded?a.push(h):a.splice(0,0,h)}h=window.adsbygoogle;if(!h||!h.loaded){a={push:nk,loaded:!0};try{Object.defineProperty(a,"requestNonPersonalizedAds",{set:xk}),Object.defineProperty(a,"pauseAdRequests",{set:yk}),Object.defineProperty(a,"setCookieOptions",{set:zk}),Object.defineProperty(a,"onload",{set:Ak})}catch(m){}if(h)for(b=ba(["requestNonPersonalizedAds","pauseAdRequests","setCookieOptions"]),d=b.next();!d.done;d=b.next())d=d.value,void 0!==h[d]&&(a[d]=h[d]);if(h&&h.shift)try{var k;for(b=20;0<h.length&&(k=h.shift())&&0<b;)nk(k),--b}catch(m){throw window.setTimeout(vk,0),m;}window.adsbygoogle=a;h&&(a.onload=h.onload)}}}function xk(a){if(+a){if((a=Yb())&&a.frames&&!a.frames.GoogleSetNPA)try{var b=a.document,c=new Sb(b),d=b.body||b.head&&b.head.parentElement;if(d){var e=Rb(c.a,"IFRAME");e.name="GoogleSetNPA";e.id="GoogleSetNPA";e.setAttribute("style","display:none;position:fixed;left:-999px;top:-999px;width:0px;height:0px;");d.appendChild(e)}}catch(f){}}else(b=Yb().document.getElementById("GoogleSetNPA"))&&b.parentNode&&b.parentNode.removeChild(b)}function yk(a){+a?I(D).pause_ad_requests=!0:(I(D).pause_ad_requests=!1,a=function(){if(!I(D).pause_ad_requests){var b=Jc(),c=Jc();try{if(Ob.createEvent){var d=Ob.createEvent("CustomEvent");d.initCustomEvent("adsbygoogle-pub-unpause-ad-requests-event",!1,!1,"");b.dispatchEvent(d)}else if(Ec(c.CustomEvent)){var e=new c.CustomEvent("adsbygoogle-pub-unpause-ad-requests-event",{bubbles:!1,cancelable:!1,detail:""});b.dispatchEvent(e)}else if(Ec(c.Event)){var f=new Event("adsbygoogle-pub-unpause-ad-requests-event",{bubbles:!1,cancelable:!1});b.dispatchEvent(f)}}catch(g){}}},p.setTimeout(a,0),p.setTimeout(a,1E3))}function zk(a){var b=D._gfp_;void 0===b||1===b?D._gfp_=a?1:void 0:b instanceof Zj&&b.w(a?1:0)}function Ak(a){Ec(a)&&window.setTimeout(a,0)};vk();}).call(this);
edipurmail / Scriptadsbygoogle.js<script> //<![CDATA[ (function(){var aa="function"==typeof Object.create?Object.create:function(a){var b=function(){};b.prototype=a;return new b},ba;if("function"==typeof Object.setPrototypeOf)ba=Object.setPrototypeOf;else{var ca;a:{var ea={a:!0},fa={};try{fa.__proto__=ea;ca=fa.a;break a}catch(a){}ca=!1}ba=ca?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var ha=ba,ia=function(a,b){a.prototype=aa(b.prototype);a.prototype.constructor=a;if(ha)ha(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.Ea=b.prototype},ja="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ka="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this,la=function(a,b){if(b){var c=ka;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&ja(c,a,{configurable:!0,writable:!0,value:b})}},ma="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(a[e]=d[e])}return a};la("Object.assign",function(a){return a||ma});la("Number.isNaN",function(a){return a?a:function(a){return"number"===typeof a&&isNaN(a)}});var l=this,na=function(a){return"string"==typeof a},r=function(a){return"number"==typeof a},oa=function(){},t=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==b&&"undefined"==typeof a.call)return"object";return b},pa=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b},qa=function(a,b,c){return a.call.apply(a.bind,arguments)},ra=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}},sa=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?sa=qa:sa=ra;return sa.apply(null,arguments)},ta=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}},ua=function(a,b){function c(){}c.prototype=b.prototype;a.Ea=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.Fa=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};var va=(new Date).getTime();var wa=document,v=window;var xa={"120x90":!0,"160x90":!0,"180x90":!0,"200x90":!0,"468x15":!0,"728x15":!0},ya=function(a,b){if(15==b){if(728<=a)return 728;if(468<=a)return 468}else if(90==b){if(200<=a)return 200;if(180<=a)return 180;if(160<=a)return 160;if(120<=a)return 120}return null};var za=function(a,b){a=parseInt(a,10);return isNaN(a)?b:a},Aa=/^([\w-]+\.)*([\w-]{2,})(:[0-9]+)?$/,Ba=function(a,b){return a?(a=a.match(Aa))?a[0]:b:b};var Ca=za("468",0);var Da=function(a,b){for(var c=a.length,d=na(a)?a.split(""):a,e=0;e<c;e++)e in d&&b.call(void 0,d[e],e,a)},Ea=function(a){return Array.prototype.concat.apply([],arguments)};var Fa=function(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return c};var Ha=function(){this.j="";this.l=Ga};Ha.prototype.na=!0;Ha.prototype.aa=function(){return this.j};var Ia=function(a){if(a instanceof Ha&&a.constructor===Ha&&a.l===Ga)return a.j;t(a);return"type_error:TrustedResourceUrl"},Ga={};var Ja=function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]},Ra=function(a){if(!Ka.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(La,"&amp;"));-1!=a.indexOf("<")&&(a=a.replace(Ma,"&lt;"));-1!=a.indexOf(">")&&(a=a.replace(Na,"&gt;"));-1!=a.indexOf('"')&&(a=a.replace(Oa,"&quot;"));-1!=a.indexOf("'")&&(a=a.replace(Pa,"&#39;"));-1!=a.indexOf("\x00")&&(a=a.replace(Qa,"&#0;"));return a},La=/&/g,Ma=/</g,Na=/>/g,Oa=/"/g,Pa=/'/g,Qa=/\x00/g,Ka=/[\x00&<>"']/,Sa={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"<"},Ta={"'":"\\'"},Ua=function(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};var Wa=function(){this.ba="";this.wa=Va};Wa.prototype.na=!0;Wa.prototype.aa=function(){return this.ba};var Xa=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i,Va={},Ya=function(a){var b=new Wa;b.ba=a;return b};Ya("about:blank");var Za;a:{var $a=l.navigator;if($a){var ab=$a.userAgent;if(ab){Za=ab;break a}}Za=""}var w=function(a){return-1!=Za.indexOf(a)};var bb=function(a){var b=!1,c;return function(){b||(c=a(),b=!0);return c}},cb=function(){var a=oa;return function(){if(a){var b=a;a=null;b()}}};var eb=function(a){db();var b=new Ha;b.j=a;return b},db=oa;var fb=function(a){fb[" "](a);return a};fb[" "]=oa;var gb=w("Opera"),hb=-1!=Za.toLowerCase().indexOf("webkit")&&!w("Edge");var ib=/^[\w+/_-]+[=]{0,2}$/,jb=function(){var a=l.document.querySelector("script[nonce]");if(a&&(a=a.nonce||a.getAttribute("nonce"))&&ib.test(a))return a};var x=function(a){try{var b;if(b=!!a&&null!=a.location.href)a:{try{fb(a.foo);b=!0;break a}catch(c){}b=!1}return b}catch(c){return!1}},kb=function(a,b){var c=[l.top],d=[],e=0;b=b||1024;for(var f;f=c[e++];){a&&!x(f)||d.push(f);try{if(f.frames)for(var g=f.frames.length,h=0;h<g&&c.length<b;++h)c.push(f.frames[h])}catch(k){}}return d},lb=function(a,b){var c=a.createElement("script");b=eb(b);c.src=Ia(b);(a=a.getElementsByTagName("script")[0])&&a.parentNode&&a.parentNode.insertBefore(c,a)},y=function(a,b){return b.getComputedStyle?b.getComputedStyle(a,null):a.currentStyle},mb=function(a){if(!a.crypto)return Math.random();try{var b=new Uint32Array(1);a.crypto.getRandomValues(b);return b[0]/65536/65536}catch(c){return Math.random()}},nb=function(a,b){if(a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.call(void 0,a[c],c,a)},ob=function(a){var b=a.length;if(0==b)return 0;for(var c=305419896,d=0;d<b;d++)c^=(c<<5)+(c>>2)+a.charCodeAt(d)&4294967295;return 0<c?c:4294967296+c},pb=bb(function(){return-1!=Za.indexOf("Google Web Preview")||1E-4>Math.random()}),qb=/^([0-9.]+)px$/,rb=/^(-?[0-9.]{1,30})$/,sb=function(a){return rb.test(a)&&(a=Number(a),!isNaN(a))?a:null},tb=function(a,b){return b?!/^false$/.test(a):/^true$/.test(a)},A=function(a){return(a=qb.exec(a))?+a[1]:null};var ub=function(){return"r20180214"},vb=tb("false",!1),wb=tb("false",!1),xb=tb("false",!1),yb=xb||!wb;var zb=function(){return Ba("","googleads.g.doubleclick.net")};var Ab=function(a){this.j=a||l.document||document};var Bb=function(a,b,c){a.addEventListener?a.addEventListener(b,c,void 0):a.attachEvent&&a.attachEvent("on"+b,c)},Cb=function(a,b,c){a.removeEventListener?a.removeEventListener(b,c,void 0):a.detachEvent&&a.detachEvent("on"+b,c)};var Db=function(a){a=a||l;var b=a.context;if(!b)try{b=a.parent.context}catch(c){}try{if(b&&"pageViewId"in b&&"canonicalUrl"in b)return b}catch(c){}return null},Eb=function(a){a=a||Db();if(!a)return null;a=a.master;return x(a)?a:null};var Fb=function(a,b){l.google_image_requests||(l.google_image_requests=[]);var c=l.document.createElement("img");if(b){var d=function(a){b(a);Cb(c,"load",d);Cb(c,"error",d)};Bb(c,"load",d);Bb(c,"error",d)}c.src=a;l.google_image_requests.push(c)};var Gb=Object.prototype.hasOwnProperty,Hb=function(a,b){for(var c in a)Gb.call(a,c)&&b.call(void 0,a[c],c,a)},Ib=Object.assign||function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)Gb.call(d,e)&&(a[e]=d[e])}return a},Jb=function(a){return!(!a||!a.call)&&"function"===typeof a},Kb=function(a,b){for(var c=1,d=arguments.length;c<d;++c)a.push(arguments[c])},Lb=function(a,b){if(a.indexOf)return a=a.indexOf(b),0<a||0===a;for(var c=0;c<a.length;c++)if(a[c]===b)return!0;return!1},Mb=function(a){a=Eb(Db(a))||a;a.google_unique_id?++a.google_unique_id:a.google_unique_id=1},Nb=!!window.google_async_iframe_id,Ob=Nb&&window.parent||window,Pb=function(){if(Nb&&!x(Ob)){var a="."+wa.domain;try{for(;2<a.split(".").length&&!x(Ob);)wa.domain=a=a.substr(a.indexOf(".")+1),Ob=window.parent}catch(b){}x(Ob)||(Ob=window)}return Ob},Qb=/(^| )adsbygoogle($| )/,Rb=function(a){a=vb&&a.google_top_window||a.top;return x(a)?a:null};var B=function(a,b){a=a.google_ad_modifications;return Lb(a?a.eids||[]:[],b)},C=function(a,b){a=a.google_ad_modifications;return Lb(a?a.loeids||[]:[],b)},Sb=function(a,b,c){if(!a)return null;for(var d=0;d<a.length;++d)if((a[d].ad_slot||b)==b&&(a[d].ad_tag_origin||c)==c)return a[d];return null};var Tb={overlays:1,interstitials:2,vignettes:2,inserts:3,immersives:4,list_view:5,full_page:6};var Ub=function(a){for(var b=[],c=0,d=0;d<a.length;d++){var e=a.charCodeAt(d);255<e&&(b[c++]=e&255,e>>=8);b[c++]=e}return b};var Vb=w("Safari")&&!((w("Chrome")||w("CriOS"))&&!w("Edge")||w("Coast")||w("Opera")||w("Edge")||w("Silk")||w("Android"))&&!(w("iPhone")&&!w("iPod")&&!w("iPad")||w("iPad")||w("iPod"));var Wb=null,Xb=null,Yb=w("Gecko")&&!(-1!=Za.toLowerCase().indexOf("webkit")&&!w("Edge"))&&!(w("Trident")||w("MSIE"))&&!w("Edge")||hb&&!Vb||gb||"function"==typeof l.btoa,Zb=function(a,b){if(!Wb){Wb={};Xb={};for(var c=0;65>c;c++)Wb[c]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(c),Xb[c]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.".charAt(c)}b=b?Xb:Wb;c=[];for(var d=0;d<a.length;d+=3){var e=a[d],f=d+1<a.length,g=f?a[d+1]:0,h=d+2<a.length,k=h?a[d+2]:0,m=e>>2;e=(e&3)<<4|g>>4;g=(g&15)<<2|k>>6;k&=63;h||(k=64,f||(g=64));c.push(b[m],b[e],b[g],b[k])}return c.join("")};var D=function(){},$b="function"==typeof Uint8Array,cc=function(a,b,c){a.j=null;b||(b=[]);a.C=void 0;a.s=-1;a.l=b;a:{if(a.l.length){b=a.l.length-1;var d=a.l[b];if(d&&"object"==typeof d&&"array"!=t(d)&&!($b&&d instanceof Uint8Array)){a.v=b-a.s;a.o=d;break a}}a.v=Number.MAX_VALUE}a.A={};if(c)for(b=0;b<c.length;b++)d=c[b],d<a.v?(d+=a.s,a.l[d]=a.l[d]||ac):(bc(a),a.o[d]=a.o[d]||ac)},ac=[],bc=function(a){var b=a.v+a.s;a.l[b]||(a.o=a.l[b]={})},E=function(a,b){if(b<a.v){b+=a.s;var c=a.l[b];return c===ac?a.l[b]=[]:c}if(a.o)return c=a.o[b],c===ac?a.o[b]=[]:c},dc=function(a,b){if(b<a.v){b+=a.s;var c=a.l[b];return c===ac?a.l[b]=[]:c}c=a.o[b];return c===ac?a.o[b]=[]:c},ec=function(a,b,c){a.j||(a.j={});if(!a.j[c]){var d=E(a,c);d&&(a.j[c]=new b(d))}return a.j[c]},fc=function(a,b,c){a.j||(a.j={});if(!a.j[c]){for(var d=dc(a,c),e=[],f=0;f<d.length;f++)e[f]=new b(d[f]);a.j[c]=e}b=a.j[c];b==ac&&(b=a.j[c]=[]);return b},gc=function(a){if(a.j)for(var b in a.j){var c=a.j[b];if("array"==t(c))for(var d=0;d<c.length;d++)c[d]&&gc(c[d]);else c&&gc(c)}};D.prototype.toString=function(){gc(this);return this.l.toString()};var ic=function(a){cc(this,a,hc)};ua(ic,D);var hc=[4],jc=function(a){cc(this,a,null)};ua(jc,D);var kc=function(a){cc(this,a,null)};ua(kc,D);var mc=function(a){cc(this,a,lc)};ua(mc,D);var lc=[6,7,9,10];var oc=function(a){cc(this,a,nc)};ua(oc,D);var nc=[1,2,5,7],pc=function(a){cc(this,a,null)};ua(pc,D);var rc=function(a){cc(this,a,qc)};ua(rc,D);var qc=[2];var sc=function(a,b,c){c=void 0===c?{}:c;this.error=a;this.context=b.context;this.line=b.line||-1;this.msg=b.message||"";this.file=b.file||"";this.id=b.id||"jserror";this.meta=c};var tc=/^https?:\/\/(\w|-)+\.cdn\.ampproject\.(net|org)(\?|\/|$)/,uc=function(a,b){this.j=a;this.l=b},vc=function(a,b,c){this.url=a;this.j=b;this.oa=!!c;this.depth=r(void 0)?void 0:null};var wc=function(){this.o="&";this.s=!1;this.l={};this.v=0;this.j=[]},xc=function(a,b){var c={};c[a]=b;return[c]},zc=function(a,b,c,d,e){var f=[];nb(a,function(a,h){(a=yc(a,b,c,d,e))&&f.push(h+"="+a)});return f.join(b)},yc=function(a,b,c,d,e){if(null==a)return"";b=b||"&";c=c||",$";"string"==typeof c&&(c=c.split(""));if(a instanceof Array){if(d=d||0,d<c.length){for(var f=[],g=0;g<a.length;g++)f.push(yc(a[g],b,c,d+1,e));return f.join(c[d])}}else if("object"==typeof a)return e=e||0,2>e?encodeURIComponent(zc(a,b,c,d,e+1)):"...";return encodeURIComponent(String(a))},Ac=function(a,b,c,d){a.j.push(b);a.l[b]=xc(c,d)},Cc=function(a,b,c,d){b=b+"//"+c+d;var e=Bc(a)-d.length;if(0>e)return"";a.j.sort(function(a,b){return a-b});d=null;c="";for(var f=0;f<a.j.length;f++)for(var g=a.j[f],h=a.l[g],k=0;k<h.length;k++){if(!e){d=null==d?g:d;break}var m=zc(h[k],a.o,",$");if(m){m=c+m;if(e>=m.length){e-=m.length;b+=m;c=a.o;break}else a.s&&(c=e,m[c-1]==a.o&&--c,b+=m.substr(0,c),c=a.o,e=0);d=null==d?g:d}}a="";null!=d&&(a=c+"trn="+d);return b+a},Bc=function(a){var b=1,c;for(c in a.l)b=c.length>b?c.length:b;return 3997-b-a.o.length-1};var Dc=function(a,b,c,d,e,f){if((d?a.v:Math.random())<(e||a.j))try{if(c instanceof wc)var g=c;else g=new wc,nb(c,function(a,b){var c=g,d=c.v++;a=xc(b,a);c.j.push(d);c.l[d]=a});var h=Cc(g,a.s,a.l,a.o+b+"&");h&&("undefined"===typeof f?Fb(h,void 0):Fb(h,f))}catch(k){}};var Ec=function(a,b){this.start=a<b?a:b;this.j=a<b?b:a};var Fc=function(a,b){this.j=b>=a?new Ec(a,b):null},Gc=function(a){var b;try{a.localStorage&&(b=parseInt(a.localStorage.getItem("google_experiment_mod"),10))}catch(c){return null}if(0<=b&&1E3>b)return b;if(pb())return null;b=Math.floor(1E3*mb(a));try{if(a.localStorage)return a.localStorage.setItem("google_experiment_mod",""+b),b}catch(c){}return null};var Hc=!1,Ic=null,Jc=function(){if(null===Ic){Ic="";try{var a="";try{a=l.top.location.hash}catch(c){a=l.location.hash}if(a){var b=a.match(/\bdeid=([\d,]+)/);Ic=b?b[1]:""}}catch(c){}}return Ic},Kc=function(a,b){var c;c=(c=Jc())?(c=c.match(new RegExp("\\b("+a.join("|")+")\\b")))?c[0]:null:null;if(c)a=c;else if(Hc)a=null;else a:{if(!pb()&&(c=Math.random(),c<b)){c=mb(l);a=a[Math.floor(c*a.length)];break a}a=null}return a};var Lc=function(){var a=l.performance;return a&&a.now&&a.timing?Math.floor(a.now()+a.timing.navigationStart):+new Date},Mc=function(){var a=void 0===a?l:a;return(a=a.performance)&&a.now?a.now():null};var Nc=function(a,b,c){this.label=a;this.type=b;this.value=c;this.duration=0;this.uniqueId=this.label+"_"+this.type+"_"+Math.random();this.slotId=void 0};var F=l.performance,Oc=!!(F&&F.mark&&F.measure&&F.clearMarks),Pc=bb(function(){var a;if(a=Oc)a=Jc(),a=!!a.indexOf&&0<=a.indexOf("1337");return a}),Rc=function(){var a=Qc;this.events=[];this.l=a||l;var b=null;a&&(a.google_js_reporting_queue=a.google_js_reporting_queue||[],this.events=a.google_js_reporting_queue,b=a.google_measure_js_timing);this.j=Pc()||(null!=b?b:1>Math.random())},Sc=function(a){a&&F&&Pc()&&(F.clearMarks("goog_"+a.uniqueId+"_start"),F.clearMarks("goog_"+a.uniqueId+"_end"))};Rc.prototype.start=function(a,b){if(!this.j)return null;var c=Mc()||Lc();a=new Nc(a,b,c);b="goog_"+a.uniqueId+"_start";F&&Pc()&&F.mark(b);return a};var Vc=function(){var a=Tc;this.A=Uc;this.s=!0;this.o=null;this.C=this.j;this.l=void 0===a?null:a;this.v=!1},Yc=function(a,b,c,d,e){try{if(a.l&&a.l.j){var f=a.l.start(b.toString(),3);var g=c();var h=a.l;c=f;if(h.j&&r(c.value)){var k=Mc()||Lc();c.duration=k-c.value;var m="goog_"+c.uniqueId+"_end";F&&Pc()&&F.mark(m);h.j&&h.events.push(c)}}else g=c()}catch(n){h=a.s;try{Sc(f),h=(e||a.C).call(a,b,new Wc(Xc(n),n.fileName,n.lineNumber),void 0,d)}catch(p){a.j(217,p)}if(!h)throw n}return g},Zc=function(a,b){var c=G;return function(d){for(var e=[],f=0;f<arguments.length;++f)e[f]=arguments[f];return Yc(c,a,function(){return b.apply(void 0,e)},void 0,void 0)}};Vc.prototype.j=function(a,b,c,d,e){e=e||"jserror";try{var f=new wc;f.s=!0;Ac(f,1,"context",a);b.error&&b.meta&&b.id||(b=new Wc(Xc(b),b.fileName,b.lineNumber));b.msg&&Ac(f,2,"msg",b.msg.substring(0,512));b.file&&Ac(f,3,"file",b.file);0<b.line&&Ac(f,4,"line",b.line);var g=b.meta||{};if(this.o)try{this.o(g)}catch(da){}if(d)try{d(g)}catch(da){}b=[g];f.j.push(5);f.l[5]=b;g=l;b=[];var h=null;do{d=g;if(x(d)){var k=d.location.href;h=d.document&&d.document.referrer||null}else k=h,h=null;b.push(new vc(k||"",d));try{g=d.parent}catch(da){g=null}}while(g&&d!=g);k=0;for(var m=b.length-1;k<=m;++k)b[k].depth=m-k;d=l;if(d.location&&d.location.ancestorOrigins&&d.location.ancestorOrigins.length==b.length-1)for(k=1;k<b.length;++k){var n=b[k];n.url||(n.url=d.location.ancestorOrigins[k-1]||"",n.oa=!0)}var p=new vc(l.location.href,l,!1);m=null;var q=b.length-1;for(n=q;0<=n;--n){var u=b[n];!m&&tc.test(u.url)&&(m=u);if(u.url&&!u.oa){p=u;break}}u=null;var z=b.length&&b[q].url;0!=p.depth&&z&&(u=b[q]);var J=new uc(p,u);J.l&&Ac(f,6,"top",J.l.url||"");Ac(f,7,"url",J.j.url||"");Dc(this.A,e,f,this.v,c)}catch(da){try{Dc(this.A,e,{context:"ecmserr",rctx:a,msg:Xc(da),url:J&&J.j.url},this.v,c)}catch(eh){}}return this.s};var Xc=function(a){var b=a.toString();a.name&&-1==b.indexOf(a.name)&&(b+=": "+a.name);a.message&&-1==b.indexOf(a.message)&&(b+=": "+a.message);if(a.stack){a=a.stack;var c=b;try{-1==a.indexOf(c)&&(a=c+"\n"+a);for(var d;a!=d;)d=a,a=a.replace(/((https?:\/..*\/)[^\/:]*:\d+(?:.|\n)*)\2/,"$1");b=a.replace(/\n */g,"\n")}catch(e){b=c}}return b},Wc=function(a,b,c){sc.call(this,Error(a),{message:a,file:void 0===b?"":b,line:void 0===c?-1:c})};ia(Wc,sc);var H=function(a){a=void 0===a?"":a;var b=Error.call(this);this.message=b.message;"stack"in b&&(this.stack=b.stack);this.name="TagError";this.message=a?"adsbygoogle.push() error: "+a:"";Error.captureStackTrace?Error.captureStackTrace(this,H):this.stack=Error().stack||""};ia(H,Error);var $c=function(a){return 0==(a.error&&a.meta&&a.id?a.msg||Xc(a.error):Xc(a)).indexOf("TagError")};var Uc,G,Qc=Pb(),Tc=new Rc,ad=function(a){null!=a&&(Qc.google_measure_js_timing=a);Qc.google_measure_js_timing||(a=Tc,a.j=!1,a.events!=a.l.google_js_reporting_queue&&(Pc()&&Da(a.events,Sc),a.events.length=0))};Uc=new function(){var a=void 0===a?v:a;this.s="http:"===a.location.protocol?"http:":"https:";this.l="pagead2.googlesyndication.com";this.o="/pagead/gen_204?id=";this.j=.01;this.v=Math.random()};G=new Vc;"complete"==Qc.document.readyState?ad():Tc.j&&Bb(Qc,"load",function(){ad()});var dd=function(){var a=[bd,cd];G.o=function(b){Da(a,function(a){a(b)})}},ed=function(a,b,c,d){return Yc(G,a,c,d,b)},fd=function(a,b){return Zc(a,b)},gd=G.j,hd=function(a,b,c,d){return $c(b)?(G.v=!0,G.j(a,b,.1,d,"puberror"),!1):G.j(a,b,c,d)},id=function(a,b,c,d){return $c(b)?!1:G.j(a,b,c,d)};var jd=new function(){this.j=["google-auto-placed"];this.l={google_tag_origin:"qs"}};var kd=function(a,b){a.location.href&&a.location.href.substring&&(b.url=a.location.href.substring(0,200));Dc(Uc,"ama",b,!0,.01,void 0)};var ld=function(a){cc(this,a,null)};ua(ld,D);var md=null,nd=function(){if(!md){for(var a=l,b=a,c=0;a&&a!=a.parent;)if(a=a.parent,c++,x(a))b=a;else break;md=b}return md};var od={google:1,googlegroups:1,gmail:1,googlemail:1,googleimages:1,googleprint:1},pd=/(corp|borg)\.google\.com:\d+$/,qd=function(){var a=v.google_page_location||v.google_page_url;"EMPTY"==a&&(a=v.google_page_url);if(vb||!a)return!1;a=a.toString();0==a.indexOf("http://")?a=a.substring(7,a.length):0==a.indexOf("https://")&&(a=a.substring(8,a.length));var b=a.indexOf("/");-1==b&&(b=a.length);a=a.substring(0,b);if(pd.test(a))return!1;a=a.split(".");b=!1;3<=a.length&&(b=a[a.length-3]in od);2<=a.length&&(b=b||a[a.length-2]in od);return b};var rd=function(a){a=a.document;return("CSS1Compat"==a.compatMode?a.documentElement:a.body)||{}},I=function(a){return rd(a).clientWidth};var sd=function(a,b){Array.prototype.slice.call(a).forEach(b,void 0)};var td=function(a,b,c,d){this.s=a;this.l=b;this.o=c;this.j=d};td.prototype.toString=function(){return JSON.stringify({nativeQuery:this.s,occurrenceIndex:this.l,paragraphIndex:this.o,ignoreMode:this.j})};var ud=function(a,b){if(null==a.j)return b;switch(a.j){case 1:return b.slice(1);case 2:return b.slice(0,b.length-1);case 3:return b.slice(1,b.length-1);case 0:return b;default:throw Error("Unknown ignore mode: "+a.j)}},wd=function(a){var b=[];sd(a.getElementsByTagName("p"),function(a){100<=vd(a)&&b.push(a)});return b},vd=function(a){if(3==a.nodeType)return a.length;if(1!=a.nodeType||"SCRIPT"==a.tagName)return 0;var b=0;sd(a.childNodes,function(a){b+=vd(a)});return b},xd=function(a){return 0==a.length||isNaN(a[0])?a:"\\"+(30+parseInt(a[0],10))+" "+a.substring(1)};var yd=function(a){if(1!=a.nodeType)var b=!1;else if(b="INS"==a.tagName)a:{b=["adsbygoogle-placeholder"];a=a.className?a.className.split(/\s+/):[];for(var c={},d=0;d<a.length;++d)c[a[d]]=!0;for(d=0;d<b.length;++d)if(!c[b[d]]){b=!1;break a}b=!0}return b};var zd=function(a,b){for(var c=0;c<b.length;c++){var d=b[c],e=Ua(d.Ga);a[e]=d.value}};var Ad={1:1,2:2,3:3,0:0},Bd=function(a){return null!=a?Ad[a]:a},Cd={1:0,2:1,3:2,4:3};var Dd=function(a,b){if(!a)return!1;a=y(a,b);if(!a)return!1;a=a.cssFloat||a.styleFloat;return"left"==a||"right"==a},Ed=function(a){for(a=a.previousSibling;a&&1!=a.nodeType;)a=a.previousSibling;return a?a:null},Fd=function(a){return!!a.nextSibling||!!a.parentNode&&Fd(a.parentNode)};var Gd=function(a,b){this.j=l;this.v=a;this.s=b;this.o=jd||null;this.l=!1},Id=function(a,b){if(a.l)return!0;try{var c=a.j.localStorage.getItem("google_ama_settings");var d=c?new ld(c?JSON.parse(c):null):null}catch(g){d=null}if(c=null!==d)d=E(d,2),c=null==d?!1:d;if(c)return a=a.j.google_ama_state=a.j.google_ama_state||{},a.eatf=!0;c=fc(a.s,mc,1);for(d=0;d<c.length;d++){var e=c[d];if(1==E(e,8)){var f=ec(e,kc,4);if(f&&2==E(f,1)&&Hd(a,e,b))return a.l=!0,a=a.j.google_ama_state=a.j.google_ama_state||{},a.placement=d,!0}}return!1},Hd=function(a,b,c){if(1!=E(b,8))return!1;var d=ec(b,ic,1);if(!d)return!1;var e=E(d,7);if(E(d,1)||E(d,3)||0<dc(d,4).length){var f=E(d,3),g=E(d,1),h=dc(d,4);e=E(d,2);var k=E(d,5);d=Bd(E(d,6));var m="";g&&(m+=g);f&&(m+="#"+xd(f));if(h)for(f=0;f<h.length;f++)m+="."+xd(h[f]);e=(h=m)?new td(h,e,k,d):null}else e=e?new td(e,E(d,2),E(d,5),Bd(E(d,6))):null;if(!e)return!1;k=[];try{k=a.j.document.querySelectorAll(e.s)}catch(u){}if(k.length){h=k.length;if(0<h){d=Array(h);for(f=0;f<h;f++)d[f]=k[f];k=d}else k=[];k=ud(e,k);r(e.l)&&(h=e.l,0>h&&(h+=k.length),k=0<=h&&h<k.length?[k[h]]:[]);if(r(e.o)){h=[];for(d=0;d<k.length;d++)f=wd(k[d]),g=e.o,0>g&&(g+=f.length),0<=g&&g<f.length&&h.push(f[g]);k=h}e=k}else e=[];if(0==e.length)return!1;e=e[0];k=E(b,2);k=Cd[k];k=void 0!==k?k:null;if(!(h=null==k)){a:{h=a.j;switch(k){case 0:h=Dd(Ed(e),h);break a;case 3:h=Dd(e,h);break a;case 2:d=e.lastChild;h=Dd(d?1==d.nodeType?d:Ed(d):null,h);break a}h=!1}if(c=!h&&!(!c&&2==k&&!Fd(e)))c=1==k||2==k?e:e.parentNode,c=!(c&&!yd(c)&&0>=c.offsetWidth);h=!c}if(h)return!1;b=ec(b,jc,3);h={};b&&(h.ta=E(b,1),h.ja=E(b,2),h.ya=!!E(b,3));var n;b=a.j;c=a.o;d=a.v;f=b.document;a=f.createElement("div");g=a.style;g.textAlign="center";g.width="100%";g.height="auto";g.clear=h.ya?"both":"none";h.Aa&&zd(g,h.Aa);f=f.createElement("ins");g=f.style;g.display="block";g.margin="auto";g.backgroundColor="transparent";h.ta&&(g.marginTop=h.ta);h.ja&&(g.marginBottom=h.ja);h.xa&&zd(g,h.xa);a.appendChild(f);f.setAttribute("data-ad-format","auto");h=[];if(g=c&&c.j)a.className=g.join(" ");f.className="adsbygoogle";f.setAttribute("data-ad-client",d);h.length&&f.setAttribute("data-ad-channel",h.join("+"));a:{try{switch(k){case 0:e.parentNode&&e.parentNode.insertBefore(a,e);break;case 3:var p=e.parentNode;if(p){var q=e.nextSibling;if(q&&q.parentNode!=p)for(;q&&8==q.nodeType;)q=q.nextSibling;p.insertBefore(a,q)}break;case 1:e.insertBefore(a,e.firstChild);break;case 2:e.appendChild(a)}yd(e)&&(e.setAttribute("data-init-display",e.style.display),e.style.display="block");f.setAttribute("data-adsbygoogle-status","reserved");p={element:f};(n=c&&c.l)&&(p.params=n);(b.adsbygoogle=b.adsbygoogle||[]).push(p)}catch(u){a&&a.parentNode&&(n=a.parentNode,n.removeChild(a),yd(n)&&(n.style.display=n.getAttribute("data-init-display")||"none"));n=!1;break a}n=!0}return n?!0:!1};var Kd=function(){this.l=new Jd(this);this.j=0},Ld=function(a){if(0!=a.j)throw Error("Already resolved/rejected.")},Jd=function(a){this.j=a},Md=function(a){switch(a.j.j){case 0:break;case 1:a.ca&&a.ca(a.j.s);break;case 2:a.sa&&a.sa(a.j.o);break;default:throw Error("Unhandled deferred state.")}};var Nd=function(a){this.exception=a},Od=function(a,b){this.l=l;this.o=a;this.j=b};Od.prototype.start=function(){this.s()};Od.prototype.s=function(){try{switch(this.l.document.readyState){case "complete":case "interactive":Id(this.o,!0);Pd(this);break;default:Id(this.o,!1)?Pd(this):this.l.setTimeout(sa(this.s,this),100)}}catch(a){Pd(this,a)}};var Pd=function(a,b){try{var c=a.j,d=new Nd(b);Ld(c);c.j=1;c.s=d;Md(c.l)}catch(e){a=a.j,b=e,Ld(a),a.j=2,a.o=b,Md(a.l)}};var Qd=function(a){kd(a,{atf:1})},Rd=function(a,b){(a.google_ama_state=a.google_ama_state||{}).exception=b;kd(a,{atf:0})};var Sd=function(){this.wasPlaTagProcessed=!1;this.wasReactiveAdConfigReceived={};this.adCount={};this.wasReactiveAdVisible={};this.stateForType={};this.reactiveTypeEnabledByReactiveTag={};this.isReactiveTagFirstOnPage=this.wasReactiveAdConfigHandlerRegistered=this.wasReactiveTagRequestSent=!1;this.reactiveTypeDisabledByPublisher={};this.debugCard=null;this.messageValidationEnabled=this.debugCardRequested=!1;this.adRegion=this.floatingAdsFillMessage=this.grappleTagStatusService=null};var cd=function(a){try{var b=l.google_ad_modifications;if(null!=b){var c=Ea(b.eids,b.loeids);null!=c&&0<c.length&&(a.eid=c.join(","))}}catch(d){}},bd=function(a){a.shv=ub()};G.s=!vb;var Td={9:"400",10:"100",11:"0.10",12:"0.02",13:"0.001",14:"300",15:"100",19:"0.01",22:"0.01",23:"0.2",24:"0.05",26:"0.5",27:"0.001",28:"0.001",29:"0.01",32:"0.02",34:"0.001",37:"0.0",40:"0.15",42:"0",43:"0.02",47:"0.01",48:"0.2",49:"0.2",51:"0.05",52:"0.1",54:"800",55:"200",56:"0.001",57:"0.001",58:"0.02",60:"0.03",65:"0.02",66:"0.0",67:"0.04",70:"1.0",71:"700",72:"10",74:"0.03",75:"true",76:"0.004",77:"true",78:"0.1",79:"1200",80:"2",82:"3",83:"1.0",84:"0",85:"200",89:"1.0",90:"0.0",92:"0.02",94:"true",96:"700",97:"2",98:"0.01",99:"600",100:"100",101:"false"};var Ud=null,Vd=function(){this.V=Td},K=function(a,b){a=parseFloat(a.V[b]);return isNaN(a)?0:a},Wd=function(){Ud||(Ud=new Vd);return Ud};var Xd={m:"368226200",u:"368226201"},Yd={m:"368226210",u:"368226211"},Zd={m:"38893301",K:"38893302",T:"38893303"},$d={m:"38893311",K:"38893312",T:"38893313"},ae={m:"36998750",u:"36998751"},be={m:"4089040",ea:"4089042"},ce={B:"20040067",m:"20040068",da:"1337"},de={m:"21060548",B:"21060549"},ee={m:"21060623",B:"21060624"},fe={Y:"62710015",m:"62710016"},ge={Y:"62710017",m:"62710018"},he={m:"201222021",D:"201222022"},ie={m:"201222031",D:"201222032"},L={m:"21060866",u:"21060867",U:"21060868",ua:"21060869",I:"21060870",J:"21060871"},je={m:"21060550",u:"21060551"},ke={m:"332260000",G:"332260001",H:"332260002",F:"332260003"},le={m:"332260004",G:"332260005",H:"332260006",F:"332260007"},me={m:"21060518",u:"21060519"},ne={m:"21060830",ha:"21060831",Z:"21060832",ga:"21060843",fa:"21061122"},oe={m:"191880501",u:"191880502"},pe={m:"21061394",u:"21061395"},qe={m:"10583695",u:"10583696"},re={m:"10593695",u:"10593696"};Hc=!1;var se=new Fc(0,199),te=new Fc(200,399),ue=new Fc(400,599),ve=new Fc(600,699),we=new Fc(700,799),xe=new Fc(800,999);var ze=function(a){var b=Wd();a=ye(a,we,K(b,96),K(b,97),["182982000","182982100"]);if(!a)return{L:"",M:""};b={};b=(b["182982000"]="182982200",b["182982100"]="182982300",b)[a];return{L:a,M:b}},Ae=function(a){var b=Wd(),c=ye(a,we,K(b,71),K(b,72),["153762914","153762975"]),d="";"153762914"==c?d="153762530":"153762975"==c&&(d="153762841");if(c)return{L:c,M:d};c=ye(a,we,K(b,71)+K(b,72),K(b,80),["164692081","165767636"]);"164692081"==c?d="166717794":"165767636"==c&&(d="169062368");return{L:c||"",M:d}},Be=function(a){var b=a.google_ad_modifications=a.google_ad_modifications||{};if(!b.plle){b.plle=!0;var c=b.eids=b.eids||[];b=b.loeids=b.loeids||[];var d=Wd(),e=ze(a),f=e.L;e=e.M;if(f&&e)M(c,f),M(c,e);else{var g=Ae(a);M(b,g.L);M(c,g.M)}g=Yd;f=ye(a,se,K(d,84),K(d,85),[g.m,g.u]);M(b,f);var h=Xd;f==g.m?e=h.m:f==g.u?e=h.u:e="";M(c,e);g=be;M(c,ye(a,ue,K(d,9),K(d,10),[g.m,g.ea]));Ja("")&&M(b,"");g=fe;f=N(a,K(d,11),[g.m,g.Y]);g=Fa(g,function(a){return a==f});g=ge[g];M(c,f);M(c,g);g=L;g=N(a,K(d,12),[g.m,g.u,g.U,g.ua,g.I,g.J]);M(c,g);g||(g=je,g=N(a,K(d,58),[g.m,g.u]),M(c,g));g||(g=me,f=N(a,K(d,56),[g.m,g.u]),M(c,f));g=ce;f=N(a,K(d,13),[g.B,g.m]);M(c,f);M(c,Kc([g.da],0));g=de;f=N(a,K(d,60),[g.B,g.m]);M(c,f);f==de.B&&(g=ee,f=N(a,K(d,66),[g.B,g.m]),M(c,f));g=ie;f=ye(a,te,K(d,14),K(d,15),[g.m,g.D]);M(b,f);h=he;f==g.m?e=h.m:f==g.D?e=h.D:e="";M(c,e);g=le;f=ye(a,xe,K(d,54),K(d,55),[g.m,g.G,g.H,g.F]);M(b,f);h=ke;f==g.m?e=h.m:f==g.G?e=h.G:f==g.H?e=h.H:f==g.F?e=h.F:e="";M(c,e);g=$d;f=N(a,K(d,70),[g.K]);M(b,f);h=Zd;switch(f){case g.m:e=h.m;break;case g.K:e=h.K;break;case g.T:e=h.T;break;default:h=""}M(c,e);g=ae;f=N(a,K(d,98),[g.m,g.u]);M(c,f);if(tb(d.V[77],!1)||vb)g=ne,f=N(a,K(d,76),[g.m,g.ha,g.Z,g.ga]),M(c,f),f||(f=N(a,K(d,83),[g.fa]),M(c,f));g=oe;f=N(a,K(d,90),[g.m,g.u]);tb(d.V[94],!1)&&!f&&(f=g.u);M(c,f);g=pe;f=N(a,K(d,92),[g.m,g.u]);M(c,f);g=qe;f=ye(a,ve,K(d,99),K(d,100),[g.m,g.u]);M(b,f);h=re;f==g.m?e=h.m:f==g.u?e=h.u:e="";M(c,e)}},M=function(a,b){b&&a.push(b)},Ce=function(a,b){a=(a=(a=a.location&&a.location.hash)&&a.match(/google_plle=([\d,]+)/))&&a[1];return!!a&&-1!=a.indexOf(b)},N=function(a,b,c){for(var d=0;d<c.length;d++)if(Ce(a,c[d]))return c[d];return Kc(c,b)},ye=function(a,b,c,d,e){for(var f=0;f<e.length;f++)if(Ce(a,e[f]))return e[f];f=new Ec(c,c+d-1);(d=0>=d||d%e.length)||(b=b.j,d=!(b.start<=f.start&&b.j>=f.j));d?c=null:(a=Gc(a),c=null!==a&&f.start<=a&&f.j>=a?e[(a-c)%e.length]:null);return c};var De=function(a){if(!a)return"";(a=a.toLowerCase())&&"ca-"!=a.substring(0,3)&&(a="ca-"+a);return a};var Ee=function(a,b,c){var d=void 0===d?"":d;var e=["<iframe"],f;for(f in a)a.hasOwnProperty(f)&&Kb(e,f+"="+a[f]);e.push('style="'+("left:0;position:absolute;top:0;width:"+b+"px;height:"+c+"px;")+'"');e.push("></iframe>");a=a.id;b="border:none;height:"+c+"px;margin:0;padding:0;position:relative;visibility:visible;width:"+b+"px;background-color:transparent;";return['<ins id="',a+"_expand",'" style="display:inline-table;',b,void 0===d?"":d,'"><ins id="',a+"_anchor",'" style="display:block;',b,'">',e.join(" "),"</ins></ins>"].join("")},Fe=function(a,b,c){var d=a.document.getElementById(b).contentWindow;if(x(d))a=a.document.getElementById(b).contentWindow,b=a.document,b.body&&b.body.firstChild||(/Firefox/.test(navigator.userAgent)?b.open("text/html","replace"):b.open(),a.google_async_iframe_close=!0,b.write(c));else{a=a.document.getElementById(b).contentWindow;c=String(c);b=['"'];for(d=0;d<c.length;d++){var e=c.charAt(d),f=e.charCodeAt(0),g=d+1,h;if(!(h=Sa[e])){if(!(31<f&&127>f))if(f=e,f in Ta)e=Ta[f];else if(f in Sa)e=Ta[f]=Sa[f];else{h=f.charCodeAt(0);if(31<h&&127>h)e=f;else{if(256>h){if(e="\\x",16>h||256<h)e+="0"}else e="\\u",4096>h&&(e+="0");e+=h.toString(16).toUpperCase()}e=Ta[f]=e}h=e}b[g]=h}b.push('"');a.location.replace("javascript:"+b.join(""))}};var Ge=null;var He={rectangle:1,horizontal:2,vertical:4};var O=function(a,b){this.v=a;this.s=b};O.prototype.minWidth=function(){return this.v};O.prototype.height=function(){return this.s};O.prototype.j=function(a){return 300<a&&300<this.s?this.v:Math.min(1200,Math.round(a))};O.prototype.o=function(a){return this.j(a)+"x"+this.height()};O.prototype.l=function(){};var P=function(a,b,c,d){d=void 0===d?!1:d;O.call(this,a,b);this.W=c;this.za=d};ia(P,O);P.prototype.l=function(a,b,c,d){1!=c.google_ad_resize&&(d.style.height=this.height()+"px")};var Ie=function(a){return function(b){return!!(b.W&a)}};function Je(a,b){for(var c=["width","height"],d=0;d<c.length;d++){var e="google_ad_"+c[d];if(!b.hasOwnProperty(e)){var f=A(a[c[d]]);f=null===f?null:Math.round(f);null!=f&&(b[e]=f)}}}var Ke=function(a,b){try{var c=b.document.documentElement.getBoundingClientRect(),d=a.getBoundingClientRect();var e={x:d.left-c.left,y:d.top-c.top}}catch(f){e=null}return(a=e)?a.y:0},Le=function(a,b){do{var c=y(a,b);if(c&&"fixed"==c.position)return!1}while(a=a.parentElement);return!0},Me=function(a,b,c){var d=c.google_safe_for_responsive_override;return null!=d?d:c.google_safe_for_responsive_override=Le(a,b)},Ne=function(a){var b=0,c;for(c in He)-1!=a.indexOf(c)&&(b|=He[c]);return b},Oe=function(a,b){for(var c=I(b),d=0;100>d&&a;d++){var e=y(a,b);if(e&&"hidden"==e.overflowX&&(e=A(e.width))&&e<c)return!0;a=a.parentElement}return!1},Pe=function(a,b){for(var c=a,d=0;100>d&&c;d++){var e=c.style;if(e&&e.height&&"auto"!=e.height&&"inherit"!=e.height||e&&e.maxHeight&&"auto"!=e.maxHeight&&"inherit"!=e.maxHeight)return!1;c=c.parentElement}c=a;for(d=0;100>d&&c;d++){if((e=y(c,b))&&"hidden"==e.overflowY)return!1;c=c.parentElement}c=a;for(d=0;100>d&&c;d++){a:{e=a;var f=["height","max-height"],g=b.document.styleSheets;if(g)for(var h=e.matches||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector,k=0;k<Math.min(g.length,10);++k){var m=void 0;try{var n=g[k],p=null;try{p=n.cssRules||n.rules}catch(u){if(15==u.code)throw u.styleSheet=n,u}m=p}catch(u){continue}if(m&&0<m.length)for(p=0;p<Math.min(m.length,10);++p)if(h.call(e,m[p].selectorText))for(var q=0;q<f.length;++q)if(-1!=m[p].cssText.indexOf(f[q])){e=!0;break a}}e=!1}if(e)return!1;c=c.parentElement}return!0},Qe=function(a,b,c,d,e){e=e||{};if((vb&&a.google_top_window||a.top)!=a)return e.google_fwr_non_expansion_reason=3,!1;if(!(488>I(a)))return e.google_fwr_non_expansion_reason=4,!1;if(!(a.innerHeight>=a.innerWidth))return e.google_fwr_non_expansion_reason=5,!1;var f=I(a);return!f||(f-c)/f>d?(e.google_fwr_non_expansion_reason=6,!1):Oe(b.parentElement,a)?(e.google_fwr_non_expansion_reason=7,!1):!0},Re=function(a,b,c,d){var e;(e=!Qe(b,c,a,.3,d))||(e=I(b),a=e-a,e&&5<=a?a=!0:((d||{}).google_fwr_non_expansion_reason=e?-10>a?11:0>a?14:0==a?13:12:10,a=!1),e=!a);return e?!1:Me(c,b,d)?!0:(d.google_fwr_non_expansion_reason=9,!1)},Se=function(a){for(var b=0,c=0;100>c&&a;c++)b+=a.offsetLeft+a.clientLeft-a.scrollLeft,a=a.offsetParent;return b},Te=function(a,b,c){return{pa:A(a.paddingLeft)||0,direction:a.direction,la:b-c}},Ue=function(a,b){if(3==b.nodeType)return/\S/.test(b.data);if(1==b.nodeType){if(/^(script|style)$/i.test(b.nodeName))return!1;try{var c=y(b,a)}catch(d){}return!c||"none"!=c.display&&!("absolute"==c.position&&("hidden"==c.visibility||"collapse"==c.visibility))}return!1},Ve=function(a,b,c,d,e,f){if(a=y(c,a)){var g=Te(a,e,d);d=g.direction;a=g.pa;g=g.la;f.google_ad_resize?c=-1*(g+a)+"px":(c=Se(c)+a,c="rtl"==d?-1*(g-c)+"px":-1*c+"px");"rtl"==d?b.style.marginRight=c:b.style.marginLeft=c;b.style.width=e+"px";b.style.zIndex=30}};var We=function(a,b,c){if(a.style){var d=A(a.style[c]);if(d)return d}if(a=y(a,b))if(c=A(a[c]))return c;return null},Xe=function(a){return function(b){return b.minWidth()<=a}},$e=function(a,b,c){var d=a&&Ye(c,b),e=Ze(b);return function(a){return!(d&&a.height()>=e)}},af=function(a){return function(b){return b.height()<=a}},Ye=function(a,b){return Ke(a,b)<rd(b).clientHeight-100},bf=function(a,b){var c=Infinity;do{var d=We(b,a,"height");d&&(c=Math.min(c,d));(d=We(b,a,"maxHeight"))&&(c=Math.min(c,d))}while((b=b.parentElement)&&"HTML"!=b.tagName);return c},cf=function(a,b){var c=We(b,a,"height");if(c)return c;var d=b.style.height;b.style.height="inherit";c=We(b,a,"height");b.style.height=d;if(c)return c;c=Infinity;do(d=b.style&&A(b.style.height))&&(c=Math.min(c,d)),(d=We(b,a,"maxHeight"))&&(c=Math.min(c,d));while((b=b.parentElement)&&"HTML"!=b.tagName);return c},Ze=function(a){var b=a.google_unique_id;return C(a,ie.D)&&0==("number"===typeof b?b:0)?2*rd(a).clientHeight/3:250};var Q=function(a,b,c,d,e,f,g,h,k,m,n,p,q,u){this.X=a;this.w=b;this.W=void 0===c?null:c;this.P=void 0===d?null:d;this.j=void 0===e?null:e;this.s=void 0===f?null:f;this.v=void 0===g?null:g;this.A=void 0===h?null:h;this.l=void 0===k?null:k;this.o=void 0===m?null:m;this.C=void 0===n?null:n;this.N=void 0===p?null:p;this.O=void 0===q?null:q;this.R=void 0===u?null:u},df=function(a,b,c){null!=a.W&&(c.google_responsive_formats=a.W);null!=a.P&&(c.google_safe_for_responsive_override=a.P);null!=a.j&&(c.google_full_width_responsive_allowed=a.j);1!=c.google_ad_resize&&(c.google_ad_width=a.w.j(b),c.google_ad_height=a.w.height(),c.google_ad_format=a.w.o(b),c.google_responsive_auto_format=a.X,c.google_ad_resizable=!0,c.google_override_format=1,c.google_loader_features_used=128,a.j&&(c.gfwrnh=a.w.height()+"px"));null!=a.s&&(c.google_fwr_non_expansion_reason=a.s);null!=a.v&&(c.gfwroml=a.v);null!=a.A&&(c.gfwromr=a.A);null!=a.l&&(c.gfwroh=a.l,c.google_resizing_height=A(a.l)||"");null!=a.o&&(c.gfwrow=a.o,c.google_resizing_width=A(a.o)||"");null!=a.C&&(c.gfwroz=a.C);null!=a.N&&(c.gml=a.N);null!=a.O&&(c.gmr=a.O);null!=a.R&&(c.gzi=a.R)};var ef=function(){return!(w("iPad")||w("Android")&&!w("Mobile")||w("Silk"))&&(w("iPod")||w("iPhone")||w("Android")||w("IEMobile"))};var ff=["google_content_recommendation_ui_type","google_content_recommendation_columns_num","google_content_recommendation_rows_num"],R={},gf=(R.image_stacked=1/1.91,R.image_sidebyside=1/3.82,R.mobile_banner_image_sidebyside=1/3.82,R.pub_control_image_stacked=1/1.91,R.pub_control_image_sidebyside=1/3.82,R.pub_control_image_card_stacked=1/1.91,R.pub_control_image_card_sidebyside=1/3.74,R.pub_control_text=0,R.pub_control_text_card=0,R),S={},hf=(S.image_stacked=80,S.image_sidebyside=0,S.mobile_banner_image_sidebyside=0,S.pub_control_image_stacked=80,S.pub_control_image_sidebyside=0,S.pub_control_image_card_stacked=85,S.pub_control_image_card_sidebyside=0,S.pub_control_text=80,S.pub_control_text_card=80,S),jf={},kf=(jf.pub_control_image_stacked=100,jf.pub_control_image_sidebyside=200,jf.pub_control_image_card_stacked=150,jf.pub_control_image_card_sidebyside=250,jf.pub_control_text=100,jf.pub_control_text_card=150,jf),lf=function(a,b){O.call(this,a,b)};ia(lf,O);lf.prototype.j=function(a){return Math.min(1200,Math.max(this.minWidth(),Math.round(a)))};var mf=function(a){var b=0;Hb(ff,function(c){null!=a[c]&&++b});if(0===b)return!1;if(b===ff.length)return!0;throw new H("Tags data-matched-content-ui-type, data-matched-content-columns-num and data-matched-content-rows-num should be set together.")},qf=function(a,b){nf(a,b);if(a<Ca){if(ef()){of(b,"mobile_banner_image_sidebyside",1,12);var c=+b.google_content_recommendation_columns_num;c=(a-8*c-8)/c;var d=b.google_content_recommendation_ui_type;b=b.google_content_recommendation_rows_num-1;return new Q(9,new lf(a,Math.floor(c/1.91+70)+Math.floor((c*gf[d]+hf[d])*b+8*b+8)))}of(b,"image_sidebyside",1,13);return new Q(9,pf(a))}of(b,"image_stacked",4,2);return new Q(9,pf(a))};function pf(a){return 1200<=a?new lf(1200,600):850<=a?new lf(a,Math.floor(.5*a)):550<=a?new lf(a,Math.floor(.6*a)):468<=a?new lf(a,Math.floor(.7*a)):new lf(a,Math.floor(3.44*a))}var rf=function(a,b){nf(a,b);var c=b.google_content_recommendation_ui_type.split(","),d=b.google_content_recommendation_columns_num.split(","),e=b.google_content_recommendation_rows_num.split(",");a:{if(c.length==d.length&&d.length==e.length){if(1==c.length){var f=0;break a}if(2==c.length){f=a<Ca?0:1;break a}throw new H("The parameter length of attribute data-matched-content-ui-type, data-matched-content-columns-num and data-matched-content-rows-num is too long. At most 2 parameters for each attribute are needed: one for mobile and one for desktop, while "+("you are providing "+c.length+' parameters. Example: \n data-matched-content-rows-num="4,2"\ndata-matched-content-columns-num="1,6"\ndata-matched-content-ui-type="image_stacked,image_card_sidebyside".'))}if(c.length!=d.length)throw new H('The parameter length of data-matched-content-ui-type does not match data-matched-content-columns-num. Example: \n data-matched-content-rows-num="4,2"\ndata-matched-content-columns-num="1,6"\ndata-matched-content-ui-type="image_stacked,image_card_sidebyside".');throw new H('The parameter length of data-matched-content-columns-num does not match data-matched-content-rows-num. Example: \n data-matched-content-rows-num="4,2"\ndata-matched-content-columns-num="1,6"\ndata-matched-content-ui-type="image_stacked,image_card_sidebyside".')}c=c[f];c=0==c.lastIndexOf("pub_control_",0)?c:"pub_control_"+c;d=+d[f];for(var g=kf[c],h=d;a/h<g&&1<h;)h--;h!==d&&l.console&&l.console.warn("adsbygoogle warning: data-matched-content-columns-num "+d+" is too large. We override it to "+h+".");d=h;e=+e[f];of(b,c,d,e);if(Number.isNaN(d)||0===d)throw new H("Wrong value for data-matched-content-columns-num");if(Number.isNaN(e)||0===e)throw new H("Wrong value for data-matched-content-rows-num");b=Math.floor(((a-8*d-8)/d*gf[c]+hf[c])*e+8*e+8);if(1500<a)throw new H("Calculated slot width is too large: "+a);if(1500<b)throw new H("Calculated slot height is too large: "+b);return new Q(9,new lf(a,b))};function nf(a,b){if(0>=a)throw new H("Invalid responsive width from Matched Content slot "+b.google_ad_slot+": "+a+". Please ensure to put this Matched Content slot into a non-zero width div container.")}function of(a,b,c,d){a.google_content_recommendation_ui_type=b;a.google_content_recommendation_columns_num=c;a.google_content_recommendation_rows_num=d};var sf=function(a,b){O.call(this,a,b)};ia(sf,O);sf.prototype.j=function(){return this.minWidth()};sf.prototype.l=function(a,b,c,d){var e=this.j(b);Ve(a,d,d.parentElement,b,e,c);1!=c.google_ad_resize&&(d.style.height=this.height()+"px")};var tf=function(a){return function(b){for(var c=a.length-1;0<=c;--c)if(!a[c](b))return!1;return!0}},uf=function(a,b,c){for(var d=a.length,e=null,f=0;f<d;++f){var g=a[f];if(b(g)){if(!c||c(g))return g;null===e&&(e=g)}}return e};var T=[new P(970,90,2),new P(728,90,2),new P(468,60,2),new P(336,280,1),new P(320,100,2),new P(320,50,2),new P(300,600,4),new P(300,250,1),new P(250,250,1),new P(234,60,2),new P(200,200,1),new P(180,150,1),new P(160,600,4),new P(125,125,1),new P(120,600,4),new P(120,240,4)],vf=[T[6],T[12],T[3],T[0],T[7],T[14],T[1],T[8],T[10],T[4],T[15],T[2],T[11],T[5],T[13],T[9]],wf=new P(120,120,1,!0),xf=new P(120,50,2,!0);var Af=function(a,b,c,d,e){e.gfwroml=d.style.marginLeft;e.gfwromr=d.style.marginRight;e.gfwroh=d.style.height;e.gfwrow=d.style.width;e.gfwroz=d.style.zIndex;e.google_full_width_responsive_allowed=!1;"false"!=e.google_full_width_responsive||yf(c)?zf(b,c,!0)||1==e.google_ad_resize?Re(a,c,d,e)?(e.google_full_width_responsive_allowed=!0,zf(b,c,!1)?b=I(c)||a:(e.google_fwr_non_expansion_reason=15,b=a)):b=a:(e.google_fwr_non_expansion_reason=2,b=a):(e.google_fwr_non_expansion_reason=1,b=a);return b!=a&&d.parentElement?b:a},Cf=function(a,b,c,d,e,f){f=void 0===f?!1:f;var g=Ib({},e);e=a;a=ed(247,gd,function(){return Af(a,b,c,d,g)});return Bf(a,b,c,d,g,e!=a,f)},zf=function(a,b,c){"auto"==a||"autorelaxed"==a&&C(b,qe.u)?b=!0:0<(Ne(a)&1)?(yf(b)?a=!0:(Pb(),a=Wd(),a=tb(a.V[101],!1)?!C(b,Yd.m):C(b,Yd.u)),b=a||c&&C(b,Yd.m)):b=!1;return b},Bf=function(a,b,c,d,e,f,g){g=void 0===g?!1:g;var h="auto"==b?.25>=a/Math.min(1200,I(c))?4:3:Ne(b);e.google_responsive_formats=h;var k=ef()&&!Ye(d,c)&&Me(d,c,e),m=ef()&&Ye(d,c)&&(C(c,ie.D)||C(c,ie.m))&&Me(d,c,e)&&C(c,ie.D),n=(k?vf:T).slice(0);n=Ea(n,Df(c));var p=488>I(c);p=[Xe(a),Ef(p),$e(p,c,d),Ie(h)];null!=e.google_max_responsive_height&&p.push(af(e.google_max_responsive_height));var q=A(e.gfwrow)||0,u=A(e.gfwroh)||0;g&&p.push(function(a){return a.minWidth()>=q&&a.height()>=u});var z=[function(a){return!a.za}];if(k||m)k=k?bf(c,d):cf(c,d),z.push(af(k));var J=uf(n,tf(p),tf(z));g&&(n=new P(q,u,h),J=J||n);if(!J)throw new H("No slot size for availableWidth="+a);J=ed(248,gd,function(){a:{var b=J;var h=g;h=void 0===h?!1:h;if(f){if(e.gfwrnh){var k=A(e.gfwrnh);if(k){h=new sf(a,k);break a}}if(Ye(d,c))h=new sf(a,b.height());else{b=a/1.2;k=bf(c,d);k=Math.min(b,k);if(k<.5*b||100>k)k=b;h&&(h=A(e.gfwroh)||0,k=Math.max(k,h));h=new sf(a,Math.floor(k))}}else h=b}return h});b=Ff(b,h);return new Q(b,J,h,e.google_safe_for_responsive_override,e.google_full_width_responsive_allowed,e.google_fwr_non_expansion_reason,e.gfwroml,e.gfwromr,e.gfwroh,e.gfwrow,e.gfwroz,e.gml,e.gmr,e.gzi)},Ff=function(a,b){if("auto"==a)return 1;switch(b){case 2:return 2;case 1:return 3;case 4:return 4;case 3:return 5;case 6:return 6;case 5:return 7;case 7:return 8}throw Error("bad mask")},Ef=function(a){return function(b){return!(320==b.minWidth()&&(a&&50==b.height()||!a&&100==b.height()))}},yf=function(a){return a.location&&"#google_full_width_responsive_preview"==a.location.hash},Df=function(a){var b=[],c=C(a,le.F);(C(a,le.G)||c)&&b.push(wf);(C(a,le.H)||c)&&b.push(xf);return b};var Gf={"image-top":function(a){return 600>=a?284+.414*(a-250):429},"image-middle":function(a){return 500>=a?196-.13*(a-250):164+.2*(a-500)},"image-side":function(a){return 500>=a?205-.28*(a-250):134+.21*(a-500)},"text-only":function(a){return 500>=a?187-.228*(a-250):130},"in-article":function(a){return 420>=a?a/1.2:460>=a?a/1.91+130:800>=a?a/4:200}},Hf=function(a,b){O.call(this,a,b)};ia(Hf,O);Hf.prototype.j=function(){return Math.min(1200,this.minWidth())};var If=function(a,b,c,d,e){var f=e.google_ad_layout||"image-top";if("in-article"==f&&"false"!=e.google_full_width_responsive&&(C(b,$d.K)||C(b,$d.T)||C(b,$d.m))&&Qe(b,c,a,.2,e)){var g=I(b);if(g&&(e.google_full_width_responsive_allowed=!0,!C(b,$d.m))){var h=c.parentElement;if(h){b:for(var k=c,m=0;100>m&&k.parentElement;++m){for(var n=k.parentElement.childNodes,p=0;p<n.length;++p){var q=n[p];if(q!=k&&Ue(b,q))break b}k=k.parentElement;k.style.width="100%";k.style.height="auto"}Ve(b,c,h,a,g,e);a=g}}}if(250>a)throw new H("Fluid responsive ads must be at least 250px wide: availableWidth="+a);b=Math.min(1200,Math.floor(a));if(d&&"in-article"!=f){f=Math.ceil(d);if(50>f)throw new H("Fluid responsive ads must be at least 50px tall: height="+f);return new Q(11,new O(b,f))}if("in-article"!=f&&(d=e.google_ad_layout_key)){f=""+d;d=Math.pow(10,3);if(c=(e=f.match(/([+-][0-9a-z]+)/g))&&e.length){a=[];for(g=0;g<c;g++)a.push(parseInt(e[g],36)/d);d=a}else d=null;if(!d)throw new H("Invalid data-ad-layout-key value: "+f);f=(b+-725)/1E3;e=0;c=1;a=d.length;for(g=0;g<a;g++)e+=d[g]*c,c*=f;f=Math.ceil(1E3*e- -725+10);if(isNaN(f))throw new H("Invalid height: height="+f);if(50>f)throw new H("Fluid responsive ads must be at least 50px tall: height="+f);if(1200<f)throw new H("Fluid responsive ads must be at most 1200px tall: height="+f);return new Q(11,new O(b,f))}d=Gf[f];if(!d)throw new H("Invalid data-ad-layout value: "+f);d=Math.ceil(d(b));return new Q(11,"in-article"==f?new Hf(b,d):new O(b,d))};var U=function(a,b){O.call(this,a,b)};ia(U,O);U.prototype.j=function(){return this.minWidth()};U.prototype.o=function(a){return O.prototype.o.call(this,a)+"_0ads_al"};var Jf=[new U(728,15),new U(468,15),new U(200,90),new U(180,90),new U(160,90),new U(120,90)],Kf=function(a,b,c,d){var e=90;d=void 0===d?130:d;e=void 0===e?30:e;var f=uf(Jf,Xe(a));if(!f)throw new H("No link unit size for width="+a+"px");a=Math.min(a,1200);f=f.height();b=Math.max(f,b);a=(new Q(10,new U(a,Math.min(b,15==f?e:d)))).w;b=a.minWidth();a=a.height();15<=c&&(a=c);return new Q(10,new U(b,a))};var Lf=function(a){var b=a.google_ad_format;if("autorelaxed"==b)return mf(a)?9:5;if("auto"==b||/^((^|,) *(horizontal|vertical|rectangle) *)+$/.test(b))return 1;if("link"==b)return 4;if("fluid"==b)return 8},Mf=function(a,b,c,d,e){var f=d.google_ad_height||We(c,e,"height");switch(a){case 5:return a=ed(247,gd,function(){return Af(b,d.google_ad_format,e,c,d)}),a!=b&&Ve(e,c,c.parentElement,b,a,d),qf(a,d);case 9:return rf(b,d);case 4:return Kf(b,cf(e,c),f,B(e,be.ea)?250:190);case 8:return If(b,e,c,f,d)}};var Nf=/^(\d+)x(\d+)(|_[a-z]*)$/,Of=function(a){return C(a,"165767636")};var V=function(a){this.s=[];this.l=a||window;this.j=0;this.o=null;this.N=0},Pf;V.prototype.O=function(a,b){0!=this.j||0!=this.s.length||b&&b!=window?this.v(a,b):(this.j=2,this.C(new Qf(a,window)))};V.prototype.v=function(a,b){this.s.push(new Qf(a,b||this.l));Rf(this)};V.prototype.R=function(a){this.j=1;if(a){var b=fd(188,sa(this.A,this,!0));this.o=this.l.setTimeout(b,a)}};V.prototype.A=function(a){a&&++this.N;1==this.j&&(null!=this.o&&(this.l.clearTimeout(this.o),this.o=null),this.j=0);Rf(this)};V.prototype.X=function(){return!(!window||!Array)};V.prototype.P=function(){return this.N};var Rf=function(a){var b=fd(189,sa(a.va,a));a.l.setTimeout(b,0)};V.prototype.va=function(){if(0==this.j&&this.s.length){var a=this.s.shift();this.j=2;var b=fd(190,sa(this.C,this,a));a.j.setTimeout(b,0);Rf(this)}};V.prototype.C=function(a){this.j=0;a.l()};var Sf=function(a){try{return a.sz()}catch(b){return!1}},Tf=function(a){return!!a&&("object"===typeof a||"function"===typeof a)&&Sf(a)&&Jb(a.nq)&&Jb(a.nqa)&&Jb(a.al)&&Jb(a.rl)},Uf=function(){if(Pf&&Sf(Pf))return Pf;var a=nd(),b=a.google_jobrunner;return Tf(b)?Pf=b:a.google_jobrunner=Pf=new V(a)},Vf=function(a,b){Uf().nq(a,b)},Wf=function(a,b){Uf().nqa(a,b)};V.prototype.nq=V.prototype.O;V.prototype.nqa=V.prototype.v;V.prototype.al=V.prototype.R;V.prototype.rl=V.prototype.A;V.prototype.sz=V.prototype.X;V.prototype.tc=V.prototype.P;var Qf=function(a,b){this.l=a;this.j=b};var Xf=function(a,b){var c=Rb(b);if(c){c=I(c);var d=y(a,b)||{},e=d.direction;if("0px"===d.width&&"none"!=d.cssFloat)return-1;if("ltr"===e&&c)return Math.floor(Math.min(1200,c-a.getBoundingClientRect().left));if("rtl"===e&&c)return a=b.document.body.getBoundingClientRect().right-a.getBoundingClientRect().right,Math.floor(Math.min(1200,c-a-Math.floor((c-b.document.body.clientWidth)/2)))}return-1};var Yf=function(a,b,c){c||(c=yb?"https":"http");l.location&&"https:"==l.location.protocol&&"http"==c&&(c="https");return[c,"://",a,b].join("")};var $f=function(a){var b=this;this.j=a;a.google_iframe_oncopy||(a.google_iframe_oncopy={handlers:{},upd:function(a,d){var c=Zf("rx",a);a:{if(a&&(a=a.match("dt=([^&]+)"))&&2==a.length){a=a[1];break a}a=""}a=(new Date).getTime()-a;c=c.replace(/&dtd=(\d+|-?M)/,"&dtd="+(1E5<=a?"M":0<=a?a:"-M"));b.set(d,c);return c}});this.l=a.google_iframe_oncopy};$f.prototype.set=function(a,b){var c=this;this.l.handlers[a]=b;this.j.addEventListener&&this.j.addEventListener("load",function(){var b=c.j.document.getElementById(a);try{var e=b.contentWindow.document;if(b.onload&&e&&(!e.body||!e.body.firstChild))b.onload()}catch(f){}},!1)};var Zf=function(a,b){var c=new RegExp("\\b"+a+"=(\\d+)"),d=c.exec(b);d&&(b=b.replace(c,a+"="+(+d[1]+1||1)));return b},ag=Ra("var i=this.id,s=window.google_iframe_oncopy,H=s&&s.handlers,h=H&&H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}");var bg={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},cg=/\uffff/.test("\uffff")?/[\\"\x00-\x1f\x7f-\uffff]/g:/[\\"\x00-\x1f\x7f-\xff]/g,dg=function(){},fg=function(a,b,c){switch(typeof b){case "string":eg(b,c);break;case "number":c.push(isFinite(b)&&!isNaN(b)?String(b):"null");break;case "boolean":c.push(String(b));break;case "undefined":c.push("null");break;case "object":if(null==b){c.push("null");break}if(b instanceof Array||void 0!=b.length&&b.splice){var d=b.length;c.push("[");for(var e="",f=0;f<d;f++)c.push(e),fg(a,b[f],c),e=",";c.push("]");break}c.push("{");d="";for(e in b)b.hasOwnProperty(e)&&(f=b[e],"function"!=typeof f&&(c.push(d),eg(e,c),c.push(":"),fg(a,f,c),d=","));c.push("}");break;case "function":break;default:throw Error("Unknown type: "+typeof b)}},eg=function(a,b){b.push('"');b.push(a.replace(cg,function(a){if(a in bg)return bg[a];var b=a.charCodeAt(0),c="\\u";16>b?c+="000":256>b?c+="00":4096>b&&(c+="0");return bg[a]=c+b.toString(16)}));b.push('"')};var gg={},hg=(gg.google_ad_modifications=!0,gg.google_analytics_domain_name=!0,gg.google_analytics_uacct=!0,gg),ig=function(a){try{if(l.JSON&&l.JSON.stringify&&l.encodeURIComponent){var b=function(){return this};if(Object.prototype.hasOwnProperty("toJSON")){var c=Object.prototype.toJSON;Object.prototype.toJSON=b}if(Array.prototype.hasOwnProperty("toJSON")){var d=Array.prototype.toJSON;Array.prototype.toJSON=b}var e=l.encodeURIComponent(l.JSON.stringify(a));try{var f=Yb?l.btoa(e):Zb(Ub(e),void 0)}catch(g){f="#"+Zb(Ub(e),!0)}c&&(Object.prototype.toJSON=c);d&&(Array.prototype.toJSON=d);return f}}catch(g){G.j(237,g,void 0,void 0)}return""},jg=function(a){a.google_page_url&&(a.google_page_url=String(a.google_page_url));var b=[];Hb(a,function(a,d){if(null!=a){try{var c=[];fg(new dg,a,c);var f=c.join("")}catch(g){}f&&(f=f.replace(/\//g,"\\$&"),Kb(b,d,"=",f,";"))}});return b.join("")};var mg=function(){var a=l;this.l=a=void 0===a?l:a;this.v="https://securepubads.g.doubleclick.net/static/3p_cookie.html";this.j=2;this.o=[];this.s=!1;a:{a=kb(!1,50);b:{try{var b=l.parent;if(b&&b!=l){var c=b;break b}}catch(g){}c=null}c&&a.unshift(c);a.unshift(l);var d;for(c=0;c<a.length;++c)try{var e=a[c],f=kg(e);if(f){this.j=lg(f);if(2!=this.j)break a;!d&&x(e)&&(d=e)}}catch(g){}this.l=d||this.l}},og=function(a){if(2!=ng(a)){for(var b=1==ng(a),c=0;c<a.o.length;c++)try{a.o[c](b)}catch(d){}a.o=[]}},pg=function(a){var b=kg(a.l);b&&2==a.j&&(a.j=lg(b))},ng=function(a){pg(a);return a.j},rg=function(a){var b=qg;b.o.push(a);if(2!=b.j)og(b);else if(b.s||(Bb(b.l,"message",function(a){var c=kg(b.l);if(c&&a.source==c&&2==b.j){switch(a.data){case "3p_cookie_yes":b.j=1;break;case "3p_cookie_no":b.j=0}og(b)}}),b.s=!0),kg(b.l))og(b);else{a=(new Ab(b.l.document)).j.createElement("IFRAME");a.src=b.v;a.name="detect_3p_cookie";a.style.visibility="hidden";a.style.display="none";a.onload=function(){pg(b);og(b)};try{b.l.document.body.appendChild(a)}catch(c){}}},sg=function(a,b){try{return!(!a.frames||!a.frames[b])}catch(c){return!1}},kg=function(a){return a.frames&&a.frames[fb("detect_3p_cookie")]||null},lg=function(a){return sg(a,"3p_cookie_yes")?1:sg(a,"3p_cookie_no")?0:2};var tg=function(a,b,c,d,e){d=void 0===d?"":d;var f=a.createElement("link");f.rel=c;-1!=c.toLowerCase().indexOf("stylesheet")?b=Ia(b):b instanceof Ha?b=Ia(b):b instanceof Wa?b instanceof Wa&&b.constructor===Wa&&b.wa===Va?b=b.ba:(t(b),b="type_error:SafeUrl"):(b instanceof Wa||(b=b.na?b.aa():String(b),Xa.test(b)||(b="about:invalid#zClosurez"),b=Ya(b)),b=b.aa());f.href=b;d&&"preload"==c&&(f.as=d);e&&(f.nonce=e);if(a=a.getElementsByTagName("head")[0])try{a.appendChild(f)}catch(g){}};var ug=/^\.google\.(com?\.)?[a-z]{2,3}$/,vg=/\.(cn|com\.bi|do|sl|ba|by|ma)$/,wg=function(a){return ug.test(a)&&!vg.test(a)},xg=l,qg,yg=function(a){a="https://"+("adservice"+a+"/adsid/integrator.js");var b=["domain="+encodeURIComponent(l.location.hostname)];W[3]>=+new Date&&b.push("adsid="+encodeURIComponent(W[1]));return a+"?"+b.join("&")},W,X,zg=function(){xg=l;W=xg.googleToken=xg.googleToken||{};var a=+new Date;W[1]&&W[3]>a&&0<W[2]||(W[1]="",W[2]=-1,W[3]=-1,W[4]="",W[6]="");X=xg.googleIMState=xg.googleIMState||{};wg(X[1])||(X[1]=".google.com");"array"==t(X[5])||(X[5]=[]);"boolean"==typeof X[6]||(X[6]=!1);"array"==t(X[7])||(X[7]=[]);r(X[8])||(X[8]=0)},Y={$:function(){return 0<X[8]},Ba:function(){X[8]++},Ca:function(){0<X[8]&&X[8]--},Da:function(){X[8]=0},Ha:function(){return!1},ma:function(){return X[5]},ka:function(a){try{a()}catch(b){l.setTimeout(function(){throw b},0)}},qa:function(){if(!Y.$()){var a=l.document,b=function(b){b=yg(b);a:{try{var c=jb();break a}catch(h){}c=void 0}var d=c;tg(a,b,"preload","script",d);c=a.createElement("script");c.type="text/javascript";d&&(c.nonce=d);c.onerror=function(){return l.processGoogleToken({},2)};b=eb(b);c.src=Ia(b);try{(a.head||a.body||a.documentElement).appendChild(c),Y.Ba()}catch(h){}},c=X[1];b(c);".google.com"!=c&&b(".google.com");b={};var d=(b.newToken="FBT",b);l.setTimeout(function(){return l.processGoogleToken(d,1)},1E3)}}},Ag=function(a){zg();var b=xg.googleToken[5]||0;a&&(0!=b||W[3]>=+new Date?Y.ka(a):(Y.ma().push(a),Y.qa()));W[3]>=+new Date&&W[2]>=+new Date||Y.qa()},Bg=function(a){l.processGoogleToken=l.processGoogleToken||function(a,c){var b=a;b=void 0===b?{}:b;c=void 0===c?0:c;a=b.newToken||"";var e="NT"==a,f=parseInt(b.freshLifetimeSecs||"",10),g=parseInt(b.validLifetimeSecs||"",10);e&&!g&&(g=3600);var h=b["1p_jar"]||"";b=b.pucrd||"";zg();1==c?Y.Da():Y.Ca();var k=xg.googleToken=xg.googleToken||{},m=0==c&&a&&na(a)&&!e&&r(f)&&0<f&&r(g)&&0<g&&na(h);e=e&&!Y.$()&&(!(W[3]>=+new Date)||"NT"==W[1]);var n=!(W[3]>=+new Date)&&0!=c;if(m||e||n)e=+new Date,f=e+1E3*f,g=e+1E3*g,1E-5>Math.random()&&Fb("https://pagead2.googlesyndication.com/pagead/gen_204?id=imerr&err="+c,void 0),k[5]=c,k[1]=a,k[2]=f,k[3]=g,k[4]=h,k[6]=b,zg();if(m||!Y.$()){c=Y.ma();for(a=0;a<c.length;a++)Y.ka(c[a]);c.length=0}};Ag(a)},Cg=function(a){qg=qg||new mg;rg(function(b){b&&a()})};var Z=fb("script"),Gg=function(){var a=B(v,L.J),b=B(v,L.I)||a;if((B(v,L.u)||B(v,L.U)||b)&&!v.google_sa_queue){v.google_sa_queue=[];v.google_sl_win=v;v.google_process_slots=function(){return Dg(v,!a)};var c=b?Eg():Eg("/show_ads_impl_single_load.js");tg(v.document,c,"preload","script");b?(b=document.createElement("IFRAME"),b.id="google_shimpl",b.style.display="none",v.document.documentElement.appendChild(b),Fe(v,"google_shimpl","<!doctype html><html><body>"+("<"+Z+">")+"google_sailm=true;google_sl_win=window.parent;google_async_iframe_id='google_shimpl';"+("</"+Z+">")+Fg()+"</body></html>"),b.contentWindow.document.close()):lb(v.document,c)}},Dg=fd(215,function(a,b,c){c=void 0===c?+new Date:c;var d=a.google_sa_queue,e=d.shift();"function"==t(e)&&ed(216,gd,e);d.length&&(b||50<+new Date-c?a.setTimeout(function(){return Dg(a,b)},0):Dg(a,b,c))}),Fg=function(a){return["<",Z,' src="',Eg(void 0===a?"/show_ads_impl.js":a),'"></',Z,">"].join("")},Eg=function(a){a=void 0===a?"/show_ads_impl.js":a;var b=xb?"https":"http";a:{if(vb)try{var c=v.google_cafe_host||v.top.google_cafe_host;if(c){var d=c;break a}}catch(e){}d=Ba("","pagead2.googlesyndication.com")}return Yf(d,["/pagead/js/",ub(),"/r20170110",a,""].join(""),b)},Hg=function(a,b,c,d){return function(){var e=!1;d&&Uf().al(3E4);try{Fe(a,b,c),e=!0}catch(g){var f=nd().google_jobrunner;Tf(f)&&f.rl()}e&&(e=Zf("google_async_rrc",c),(new $f(a)).set(b,Hg(a,b,e,!1)))}},Ig=function(a){var b=["<iframe"];Hb(a,function(a,d){null!=a&&b.push(" "+d+'="'+Ra(a)+'"')});b.push("></iframe>");return b.join("")},Kg=function(a,b,c){Jg(a,b,c,function(a,b,f){a=a.document;for(var d=b.id,e=0;!d||a.getElementById(d);)d="aswift_"+e++;b.id=d;b.name=d;d=Number(f.google_ad_width);e=Number(f.google_ad_height);16==f.google_reactive_ad_format?(f=a.createElement("div"),a=Ee(b,d,e),f.innerHTML=a,c.appendChild(f.firstChild)):(f=Ee(b,d,e),c.innerHTML=f);return b.id})},Jg=function(a,b,c,d){var e={},f=b.google_ad_width,g=b.google_ad_height;null!=f&&(e.width=f&&'"'+f+'"');null!=g&&(e.height=g&&'"'+g+'"');e.frameborder='"0"';e.marginwidth='"0"';e.marginheight='"0"';e.vspace='"0"';e.hspace='"0"';e.allowtransparency='"true"';e.scrolling='"no"';e.allowfullscreen='"true"';e.onload='"'+ag+'"';d=d(a,e,b);f=b.google_ad_output;e=b.google_ad_format;g=b.google_ad_width||0;var h=b.google_ad_height||0;e||"html"!=f&&null!=f||(e=g+"x"+h);f=!b.google_ad_slot||b.google_override_format||!xa[b.google_ad_width+"x"+b.google_ad_height]&&"aa"==b.google_loader_used;e&&f?e=e.toLowerCase():e="";b.google_ad_format=e;if(!r(b.google_reactive_sra_index)||!b.google_ad_unit_key){e=[b.google_ad_slot,b.google_orig_ad_format||b.google_ad_format,b.google_ad_type,b.google_orig_ad_width||b.google_ad_width,b.google_orig_ad_height||b.google_ad_height];f=[];g=0;for(h=c;h&&25>g;h=h.parentNode,++g)f.push(9!==h.nodeType&&h.id||"");(f=f.join())&&e.push(f);b.google_ad_unit_key=ob(e.join(":")).toString();e=[];for(f=0;c&&25>f;++f){g=(g=9!==c.nodeType&&c.id)?"/"+g:"";a:{if(c&&c.nodeName&&c.parentElement){h=c.nodeName.toString().toLowerCase();for(var k=c.parentElement.childNodes,m=0,n=0;n<k.length;++n){var p=k[n];if(p.nodeName&&p.nodeName.toString().toLowerCase()===h){if(c===p){h="."+m;break a}++m}}}h=""}e.push((c.nodeName&&c.nodeName.toString().toLowerCase())+g+h);c=c.parentElement}c=e.join()+":";e=a;f=[];if(e)try{var q=e.parent;for(g=0;q&&q!==e&&25>g;++g){var u=q.frames;for(h=0;h<u.length;++h)if(e===u[h]){f.push(h);break}e=q;q=e.parent}}catch(J){}b.google_ad_dom_fingerprint=ob(c+f.join()).toString()}q=jg(b);u=ig(b);var z;b=b.google_ad_client;if(!Ge)b:{c=kb();for(e=0;e<c.length;e++)try{if(z=c[e].frames.google_esf){Ge=z;break b}}catch(J){}Ge=null}Ge?z="":(z={style:"display:none"},/[^a-z0-9-]/.test(b)?z="":(z["data-ad-client"]=De(b),z.id="google_esf",z.name="google_esf",z.src=Yf(zb(),["/pagead/html/",ub(),"/r20170110/zrt_lookup.html#"].join("")),z=Ig(z)));b=z;z=B(a,L.u)||B(a,L.U)||B(a,L.I)||B(a,L.J);c=B(a,L.I)||B(a,L.J)||B(a,je.u);e=va;f=(new Date).getTime();a.google_t12n_vars=Td;g=a;g=Eb(Db(g))||g;g=g.google_unique_id;B(a,je.u)?(h="<"+Z+">window.google_process_slots=function(){window.google_sa_impl({iframeWin: window, pubWin: window.parent});"+("};</"+Z+">"),k=Fg(),h+=k):h=B(a,L.m)?Fg("/show_ads_impl.js?"+L.m):B(a,L.u)||B(a,L.U)?"<"+Z+">window.parent.google_sa_impl.call("+("this, window, document, location);</"+Z+">"):B(a,L.I)||B(a,L.J)?"<"+Z+">window.parent.google_sa_impl({iframeWin: window, pubWin: window.parent});</"+Z+">":B(a,me.u)?Fg("/show_ads_impl_le.js"):B(a,me.m)?Fg("/show_ads_impl_le_c.js"):Fg();q=["<!doctype html><html><body>",b,"<"+Z+">",q,"google_sailm="+c+";",z?"google_sl_win=window.parent;":"","google_unique_id="+("number"===typeof g?g:0)+";",'google_async_iframe_id="'+d+'";',"google_start_time="+e+";",u?'google_pub_vars="'+u+'";':"","google_bpp="+(f>e?f-e:1)+";","google_async_rrc=0;google_iframe_start_time=new Date().getTime();","</"+Z+">",h,"</body></html>"].join("");b=a.document.getElementById(d)?Vf:Wf;d=Hg(a,d,q,!0);z?(a.google_sa_queue=a.google_sa_queue||[],a.google_sa_impl?b(d):a.google_sa_queue.push(d)):b(d)},Lg=function(a,b){var c=navigator;a&&b&&c&&(a=a.document,b=De(b),/[^a-z0-9-]/.test(b)||((c=Ja("r20160913"))&&(c+="/"),lb(a,Yf("pagead2.googlesyndication.com","/pub-config/"+c+b+".js"))))};var Mg=function(a,b,c){for(var d=a.attributes,e=d.length,f=0;f<e;f++){var g=d[f];if(/data-/.test(g.name)){var h=Ja(g.name.replace("data-matched-content","google_content_recommendation").replace("data","google").replace(/-/g,"_"));if(!b.hasOwnProperty(h)){g=g.value;var k={};k=(k.google_reactive_ad_format=za,k.google_allow_expandable_ads=tb,k);g=k.hasOwnProperty(h)?k[h](g,null):g;null===g||(b[h]=g)}}}if(c.document&&c.document.body&&!Lf(b)&&!b.google_reactive_ad_format&&(d=parseInt(a.style.width,10),e=Xf(a,c),0<e&&d>e))if(f=parseInt(a.style.height,10),d=!!xa[d+"x"+f],B(c,fe.Y))b.google_ad_resize=0;else{h=e;if(d)if(g=ya(e,f))h=g,b.google_ad_format=g+"x"+f+"_0ads_al";else throw Error("TSS="+e);b.google_ad_resize=1;b.google_ad_width=h;d||(b.google_ad_format=null,b.google_override_format=!0);e=h;a.style.width=e+"px";f=Cf(e,"auto",c,a,b);h=e;f.w.l(c,h,b,a);df(f,h,b);f=f.w;b.google_responsive_formats=null;f.minWidth()>e&&!d&&(b.google_ad_width=f.minWidth(),a.style.width=f.minWidth()+"px")}d=b.google_reactive_ad_format;if(!b.google_enable_content_recommendations||1!=d&&2!=d){d=a.offsetWidth||(b.google_ad_resize?parseInt(a.style.width,10):0);a:if(e=ta(Cf,d,"auto",c,a,b,!0),f=B(c,"182982000"),h=B(c,"182982100"),(f||h)&&ef()&&!b.google_reactive_ad_format&&!Lf(b)){for(h=a;h;h=h.parentElement){if(k=g=y(h,c)){b:if(g=g.position,k=["static","relative"],na(k))g=na(g)&&1==g.length?k.indexOf(g,0):-1;else{for(var m=0;m<k.length;m++)if(m in k&&k[m]===g){g=m;break b}g=-1}k=0<=g}if(!k)break a}b.google_resizing_allowed=!0;f?(f={},df(e(),d,f),b.google_resizing_width=f.google_ad_width,b.google_resizing_height=f.google_ad_height):b.google_ad_format="auto"}if(d=Lf(b))e=a.offsetWidth||(b.google_ad_resize?parseInt(a.style.width,10):0),f=(f=Mf(d,e,a,b,c))?f:Cf(e,b.google_ad_format,c,a,b,b.google_resizing_allowed),f.w.l(c,e,b,a),df(f,e,b),1!=d&&(b=f.w.height(),a.style.height=b+"px");else{if(!rb.test(b.google_ad_width)&&!qb.test(a.style.width)||!rb.test(b.google_ad_height)&&!qb.test(a.style.height)){if(d=y(a,c))a.style.width=d.width,a.style.height=d.height,Je(d,b);b.google_ad_width||(b.google_ad_width=a.offsetWidth);b.google_ad_height||(b.google_ad_height=a.offsetHeight);b.google_loader_features_used=256;d=Db(c);b.google_responsive_auto_format=d?d.data&&"rspv"==d.data.autoFormat?13:14:12}else Je(a.style,b),b.google_ad_output&&"html"!=b.google_ad_output||300!=b.google_ad_width||250!=b.google_ad_height||(d=a.style.width,a.style.width="100%",e=a.offsetWidth,a.style.width=d,b.google_available_width=e);C(c,"153762914")||C(c,"153762975")||C(c,"164692081")||Of(c)?(b.google_resizing_allowed=!1,d=!0):d=!1;if(d&&(e=a.parentElement)){d=b.google_ad_format;if(f=Nf.test(d)||!d){f=Rb(c);if(!(h=null==f||b.google_reactive_ad_format)){h=I(f);if(!(f=!(488>h&&320<h)||!(f.innerHeight>=f.innerWidth)||Oe(e,c)))a:{b:{f=e;for(h=0;100>h&&f;h++){if((g=y(f,c))&&-1!=g.display.indexOf("table")){f=!0;break b}f=f.parentElement}f=!1}if(f)for(f=e,h=!1,g=0;100>g&&f;g++){k=f.style;if("auto"==k.margin||"auto"==k.marginLeft||"auto"==k.marginRight)h=!0;if(h){f=!0;break a}f=f.parentElement}f=!1}h=f}f=(h?!1:!0)&&Le(a,c)}if(f&&(f=a.offsetWidth||parseInt(a.style.width,10)||b.google_ad_width,h=I(c))&&(g=y(e,c))&&(g=Te(g,h,f),m=g.pa,k=g.direction,g=g.la,!(5>g||.4<g/h))){g=b.google_resizing_allowed=!0;if(C(c,"164692081")||Of(c))g=Pe(e,c);e=-1*(Se(e)+m)+"px";if(C(c,"153762975")||Of(c))"rtl"==k?a.style.marginRight=e:a.style.marginLeft=e,a.style.width=h+"px",a.style.zIndex=1932735282;e="";k=parseInt(a.offsetHeight||a.style.height||b.google_ad_height,10);d&&(d=d.match(Nf),e=d[3],k=parseInt(d[2],10));g&&Of(c)&&(d=f/k,1.15<d&&(Ke(a,c)<rd(c).clientHeight||(k=3>d?Math.round(5*h/6):Math.round(k*h/f))));if(C(c,"153762975")||Of(c))b.google_ad_format=h+"x"+k+e,b.google_ad_width=h,b.google_ad_height=k,a.style.height=k+"px";b.google_resizing_width=h;b.google_resizing_height=k}}C(c,ae.u)&&12==b.google_responsive_auto_format&&(b.efwr=Re(a.offsetWidth||parseInt(a.style.width,10)||b.google_ad_width,c,a,b))}}else b.google_ad_width=I(c),b.google_ad_height=50,a.style.display="none"};var Ng=!1,Og=0,Pg=!1,Qg=!1,Rg=function(a){return Qb.test(a.className)&&"done"!=a.getAttribute("data-adsbygoogle-status")},Tg=function(a,b){var c=window;a.setAttribute("data-adsbygoogle-status","done");Sg(a,b,c)},Sg=function(a,b,c){var d=Pb();d.google_spfd||(d.google_spfd=Mg);(d=b.google_reactive_ads_config)||Mg(a,b,c);if(!Ug(a,b,c)){if(d){if(Ng)throw new H("Only one 'enable_page_level_ads' allowed per page.");Ng=!0}else b.google_ama||Mb(c);Pg||(Pg=!0,Lg(c,b.google_ad_client));Hb(hg,function(a,d){b[d]=b[d]||c[d]});b.google_loader_used="aa";b.google_reactive_tag_first=1===Og;if((d=b.google_ad_output)&&"html"!=d&&"js"!=d)throw new H("No support for google_ad_output="+d);ed(164,gd,function(){Kg(c,b,a)})}},Ug=function(a,b,c){var d=b.google_reactive_ads_config;if(d){var e=d.page_level_pubvars;var f=(pa(e)?e:{}).google_tag_origin}if(b.google_ama||"js"===b.google_ad_output)return!1;var g=b.google_ad_slot;e=c.google_ad_modifications;!e||Sb(e.ad_whitelist,g,f||b.google_tag_origin)?e=null:(f=e.space_collapsing||"none",e=(g=Sb(e.ad_blacklist,g))?{ia:!0,ra:g.space_collapsing||f}:e.remove_ads_by_default?{ia:!0,ra:f}:null);if(e&&e.ia&&"on"!=b.google_adtest)return"slot"==e.ra&&(null!==sb(a.getAttribute("width"))&&a.setAttribute("width",0),null!==sb(a.getAttribute("height"))&&a.setAttribute("height",0),a.style.width="0px",a.style.height="0px"),!0;if((e=y(a,c))&&"none"==e.display&&!("on"==b.google_adtest||0<b.google_reactive_ad_format||d))return c.document.createComment&&a.appendChild(c.document.createComment("No ad requested because of display:none on the adsbygoogle tag")),!0;a=null==b.google_pgb_reactive||3===b.google_pgb_reactive;return 1!==b.google_reactive_ad_format&&8!==b.google_reactive_ad_format||!a?!1:(l.console&&l.console.warn("Adsbygoogle tag with data-reactive-ad-format="+b.google_reactive_ad_format+" is deprecated. Check out page-level ads at https://www.google.com/adsense"),!0)},Vg=function(a){for(var b=document.getElementsByTagName("ins"),c=0,d=b[c];c<b.length;d=b[++c]){var e=d;if(Rg(e)&&"reserved"!=e.getAttribute("data-adsbygoogle-status")&&(!a||d.id==a))return d}return null},Wg=function(a){if(!Qg){Qg=!0;try{var b=l.localStorage.getItem("google_ama_config")}catch(da){b=null}try{var c=b?new oc(b?JSON.parse(b):null):null}catch(da){c=null}if(b=c)if(c=ec(b,pc,3),!c||E(c,1)<=+new Date)try{l.localStorage.removeItem("google_ama_config")}catch(da){kd(l,{lserr:1})}else try{var d=dc(b,5);if(0<d.length){var e=new rc,f=d||[];2<e.v?e.l[2+e.s]=f:(bc(e),e.o[2]=f);var g=e}else b:{f=l.location.pathname;var h=fc(b,rc,7);e={};for(d=0;d<h.length;++d){var k=E(h[d],1);r(k)&&!e[k]&&(e[k]=h[d])}for(var m=f.replace(/(^\/)|(\/$)/g,"");;){var n=ob(m);if(e[n]){g=e[n];break b}if(!m){g=null;break b}m=m.substring(0,m.lastIndexOf("/"))}}var p;if(p=g)a:{var q=dc(g,2);if(q)for(g=0;g<q.length;g++)if(1==q[g]){p=!0;break a}p=!1}if(p){var u=new Kd;(new Od(new Gd(a,b),u)).start();var z=u.l;var J=ta(Rd,l);if(z.ca)throw Error("Then functions already set.");z.ca=ta(Qd,l);z.sa=J;Md(z)}}catch(da){kd(l,{atf:-1})}}},Xg=function(){var a=document.createElement("ins");a.className="adsbygoogle";a.style.display="none";return a},Yg=function(a){var b={};Hb(Tb,function(c,d){!1===a.enable_page_level_ads?b[d]=!1:a.hasOwnProperty(d)&&(b[d]=a[d])});pa(a.enable_page_level_ads)&&(b.page_level_pubvars=a.enable_page_level_ads);var c=Xg();wa.body.appendChild(c);var d={};d=(d.google_reactive_ads_config=b,d.google_ad_client=a.google_ad_client,d);Tg(c,d)},Zg=function(a){var b=Rb(window);if(!b)throw new H("Page-level tag does not work inside iframes.");b.google_reactive_ads_global_state||(b.google_reactive_ads_global_state=new Sd);b.google_reactive_ads_global_state.wasPlaTagProcessed=!0;wa.body?Yg(a):Bb(wa,"DOMContentLoaded",fd(191,function(){Yg(a)}))},ah=function(a){var b={};ed(165,hd,function(){$g(a,b)},function(c){c.client=c.client||b.google_ad_client||a.google_ad_client;c.slotname=c.slotname||b.google_ad_slot;c.tag_origin=c.tag_origin||b.google_tag_origin})},$g=function(a,b){va=(new Date).getTime();a:{if(void 0!=a.enable_page_level_ads){if(na(a.google_ad_client)){var c=!0;break a}throw new H("'google_ad_client' is missing from the tag config.")}c=!1}if(c)0===Og&&(Og=1),Wg(a.google_ad_client),Zg(a);else{0===Og&&(Og=2);c=a.element;(a=a.params)&&Hb(a,function(a,c){b[c]=a});if("js"===b.google_ad_output){l.google_ad_request_done_fns=l.google_ad_request_done_fns||[];l.google_radlink_request_done_fns=l.google_radlink_request_done_fns||[];if(b.google_ad_request_done){if("function"!=t(b.google_ad_request_done))throw new H("google_ad_request_done parameter must be a function.");l.google_ad_request_done_fns.push(b.google_ad_request_done);delete b.google_ad_request_done;b.google_ad_request_done_index=l.google_ad_request_done_fns.length-1}else throw new H("google_ad_request_done parameter must be specified.");if(b.google_radlink_request_done){if("function"!=t(b.google_radlink_request_done))throw new H("google_radlink_request_done parameter must be a function.");l.google_radlink_request_done_fns.push(b.google_radlink_request_done);delete b.google_radlink_request_done;b.google_radlink_request_done_index=l.google_radlink_request_done_fns.length-1}a=Xg();l.document.documentElement.appendChild(a);c=a}if(c){if(!Rg(c)&&(c.id?c=Vg(c.id):c=null,!c))throw new H("'element' has already been filled.");if(!("innerHTML"in c))throw new H("'element' is not a good DOM element.")}else if(c=Vg(),!c)throw new H("All ins elements in the DOM with class=adsbygoogle already have ads in them.");Tg(c,b)}},ch=function(){dd();ed(166,id,bh)},bh=function(){var a=Eb(Db(v))||v;Be(a);ad(B(v,ee.B)||B(v,ce.B)||B(v,ce.da));Gg();if(B(v,ne.ha)||B(v,ne.Z)||B(v,ne.ga)||B(v,ne.fa))zg(),wg(".google.co.id")&&(X[1]=".google.co.id"),B(v,ne.Z)?(a=cb(),Cg(a),Bg(a)):Bg(null);if((a=window.adsbygoogle)&&a.shift)try{for(var b,c=20;0<a.length&&(b=a.shift())&&0<c;)ah(b),--c}catch(d){throw window.setTimeout(ch,0),d}if(!a||!a.loaded){B(v,pe.u)&&(b=qd()?Ba("","pagead2.googlesyndication.com"):zb(),tg(Pb().document,b,"preconnect"));window.adsbygoogle={push:ah,loaded:!0};a&&dh(a.onload);try{Object.defineProperty(window.adsbygoogle,"onload",{set:dh})}catch(d){}}},dh=function(a){Jb(a)&&window.setTimeout(a,0)};ch()}).call(this) //]]> </script>
davef77 / RefactoringBadCodeStarting point for an exercise in refactoring bad code
myrtv / Myrtv.github.ioA pseudo-live TV implementation to save bandwidth but still function normally.
markpash / Find Bad MiddleboxesThis is the proof-of-concept code that accompanies the eBPF Summit lightning talk I gave called Bad middlebox!
tomekkaczanowski / Bad Tests Good Tests Codecode snippets from "Bad Tests, Good Tests" book (see http://practicalunittesting.com)
rustygreen / Interview Code ReviewsA sample of "bad" code to review with interview candidates.
telekom-mms / Ansible Bad And Good PracticesA collection of good and bad Ansible code examples
myankshah / SAS Credit Scoring Model Using LogisticRegressionThis repository contains SAS code for Credit card Scoring Model to predict future default(bad) customers
jipiboily / Spree Refinery AuthMonkey patch to make both Spree and Refinery auth working together. Code quality is bad. Make it better in your own app. You will not need this anymore as soon as this is merged and in your current version: https://github.com/spree/spree/pull/1512:
dariusk / Roof Slapping Bot*slaps roof of source code* this bad boy can fit so many bugs in it
nikolanovoselec / CodeflareAn ephemeral IDE where AI coding agents reach their full potential. Fully autonomous, no boundaries, zero risk. Every session runs in an isolated container on Cloudflare's edge. Your files persist. Your bad decisions don't.
Kirschstein / Legacy Ferry Booking SystemSome very bad 'legacy' code to use as practise
armoured-ape / BadUSB DetectionProof of Concept Bad USB detection code
rfarley3 / CodeXt UglyThe good, the bad, and the ugly of CodeXt mid-dissertation writing. Just something to get the code online.
Capgemini / Dotnet Code AnalysisThis is an open-source project which aims to identify common bad programming practices that should be avoided in a C# code base through the use of the .NET compiler-as-a-service technology.
4rrw / Spectrogram Bad Applecode to generate Bad Apple music video on spectrogram in python
wyfang / Wyfang.github.ioA personal website with html+css that adapts to all devices and supports automatic night mode.Beautiful icon color patch loading process for bad network environments. A small piece of social platform friend code and supports the mouse to display the QR code.
questionmark1122 / Cnn10#!bash # # bash completion support for core Git. # # Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org> # Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/). # Distributed under the GNU General Public License, version 2.0. # # The contained completion routines provide support for completing: # # *) local and remote branch names # *) local and remote tag names # *) .git/remotes file names # *) git 'subcommands' # *) tree paths within 'ref:path/to/file' expressions # *) common --long-options # # To use these routines: # # 1) Copy this file to somewhere (e.g. ~/.git-completion.sh). # 2) Added the following line to your .bashrc: # source ~/.git-completion.sh # # 3) Consider changing your PS1 to also show the current branch: # PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' # # The argument to __git_ps1 will be displayed only if you # are currently in a git repository. The %s token will be # the name of the current branch. # # In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty # value, unstaged (*) and staged (+) changes will be shown next # to the branch name. You can configure this per-repository # with the bash.showDirtyState variable, which defaults to true # once GIT_PS1_SHOWDIRTYSTATE is enabled. # # You can also see if currently something is stashed, by setting # GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed, # then a '$' will be shown next to the branch name. # # If you would like to see if there're untracked files, then you can # set GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're # untracked files, then a '%' will be shown next to the branch name. # # If you would like to see the difference between HEAD and its # upstream, set GIT_PS1_SHOWUPSTREAM="auto". A "<" indicates # you are behind, ">" indicates you are ahead, and "<>" # indicates you have diverged. You can further control # behaviour by setting GIT_PS1_SHOWUPSTREAM to a space-separated # list of values: # verbose show number of commits ahead/behind (+/-) upstream # legacy don't use the '--count' option available in recent # versions of git-rev-list # git always compare HEAD to @{upstream} # svn always compare HEAD to your SVN upstream # By default, __git_ps1 will compare HEAD to your SVN upstream # if it can find one, or @{upstream} otherwise. Once you have # set GIT_PS1_SHOWUPSTREAM, you can override it on a # per-repository basis by setting the bash.showUpstream config # variable. # # # To submit patches: # # *) Read Documentation/SubmittingPatches # *) Send all patches to the current maintainer: # # "Shawn O. Pearce" <spearce@spearce.org> # # *) Always CC the Git mailing list: # # git@vger.kernel.org # case "$COMP_WORDBREAKS" in *:*) : great ;; *) COMP_WORDBREAKS="$COMP_WORDBREAKS:" esac # __gitdir accepts 0 or 1 arguments (i.e., location) # returns location of .git repo __gitdir () { if [ -z "${1-}" ]; then if [ -n "${__git_dir-}" ]; then echo "$__git_dir" elif [ -d .git ]; then echo .git else git rev-parse --git-dir 2>/dev/null fi elif [ -d "$1/.git" ]; then echo "$1/.git" else echo "$1" fi } # stores the divergence from upstream in $p # used by GIT_PS1_SHOWUPSTREAM __git_ps1_show_upstream () { local key value local svn_remote=() svn_url_pattern count n local upstream=git legacy="" verbose="" # get some config options from git-config while read key value; do case "$key" in bash.showupstream) GIT_PS1_SHOWUPSTREAM="$value" if [[ -z "${GIT_PS1_SHOWUPSTREAM}" ]]; then p="" return fi ;; svn-remote.*.url) svn_remote[ $((${#svn_remote[@]} + 1)) ]="$value" svn_url_pattern+="\\|$value" upstream=svn+git # default upstream is SVN if available, else git ;; esac done < <(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ') # parse configuration values for option in ${GIT_PS1_SHOWUPSTREAM}; do case "$option" in git|svn) upstream="$option" ;; verbose) verbose=1 ;; legacy) legacy=1 ;; esac done # Find our upstream case "$upstream" in git) upstream="@{upstream}" ;; svn*) # get the upstream from the "git-svn-id: ..." in a commit message # (git-svn uses essentially the same procedure internally) local svn_upstream=($(git log --first-parent -1 \ --grep="^git-svn-id: \(${svn_url_pattern:2}\)" 2>/dev/null)) if [[ 0 -ne ${#svn_upstream[@]} ]]; then svn_upstream=${svn_upstream[ ${#svn_upstream[@]} - 2 ]} svn_upstream=${svn_upstream%@*} for ((n=1; "$n" <= "${#svn_remote[@]}"; ++n)); do svn_upstream=${svn_upstream#${svn_remote[$n]}} done if [[ -z "$svn_upstream" ]]; then # default branch name for checkouts with no layout: upstream=${GIT_SVN_ID:-git-svn} else upstream=${svn_upstream#/} fi elif [[ "svn+git" = "$upstream" ]]; then upstream="@{upstream}" fi ;; esac # Find how many commits we are ahead/behind our upstream if [[ -z "$legacy" ]]; then count="$(git rev-list --count --left-right \ "$upstream"...HEAD 2>/dev/null)" else # produce equivalent output to --count for older versions of git local commits if commits="$(git rev-list --left-right "$upstream"...HEAD 2>/dev/null)" then local commit behind=0 ahead=0 for commit in $commits do case "$commit" in "<"*) let ++behind ;; *) let ++ahead ;; esac done count="$behind $ahead" else count="" fi fi # calculate the result if [[ -z "$verbose" ]]; then case "$count" in "") # no upstream p="" ;; "0 0") # equal to upstream p="=" ;; "0 "*) # ahead of upstream p=">" ;; *" 0") # behind upstream p="<" ;; *) # diverged from upstream p="<>" ;; esac else case "$count" in "") # no upstream p="" ;; "0 0") # equal to upstream p=" u=" ;; "0 "*) # ahead of upstream p=" u+${count#0 }" ;; *" 0") # behind upstream p=" u-${count% 0}" ;; *) # diverged from upstream p=" u+${count#* }-${count% *}" ;; esac fi } # __git_ps1 accepts 0 or 1 arguments (i.e., format string) # returns text to add to bash PS1 prompt (includes branch name) __git_ps1 () { local g="$(__gitdir)" if [ -n "$g" ]; then local r="" local b="" if [ -f "$g/rebase-merge/interactive" ]; then r="|REBASE-i" b="$(cat "$g/rebase-merge/head-name")" elif [ -d "$g/rebase-merge" ]; then r="|REBASE-m" b="$(cat "$g/rebase-merge/head-name")" else if [ -d "$g/rebase-apply" ]; then if [ -f "$g/rebase-apply/rebasing" ]; then r="|REBASE" elif [ -f "$g/rebase-apply/applying" ]; then r="|AM" else r="|AM/REBASE" fi elif [ -f "$g/MERGE_HEAD" ]; then r="|MERGING" elif [ -f "$g/BISECT_LOG" ]; then r="|BISECTING" fi b="$(git symbolic-ref HEAD 2>/dev/null)" || { b="$( case "${GIT_PS1_DESCRIBE_STYLE-}" in (contains) git describe --contains HEAD ;; (branch) git describe --contains --all HEAD ;; (describe) git describe HEAD ;; (* | default) git describe --exact-match HEAD ;; esac 2>/dev/null)" || b="$(cut -c1-7 "$g/HEAD" 2>/dev/null)..." || b="unknown" b="($b)" } fi local w="" local i="" local s="" local u="" local c="" local p="" if [ "true" = "$(git rev-parse --is-inside-git-dir 2>/dev/null)" ]; then if [ "true" = "$(git rev-parse --is-bare-repository 2>/dev/null)" ]; then c="BARE:" else b="GIT_DIR!" fi elif [ "true" = "$(git rev-parse --is-inside-work-tree 2>/dev/null)" ]; then if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ]; then if [ "$(git config --bool bash.showDirtyState)" != "false" ]; then git diff --no-ext-diff --quiet --exit-code || w="*" if git rev-parse --quiet --verify HEAD >/dev/null; then git diff-index --cached --quiet HEAD -- || i="+" else i="#" fi fi fi if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ]; then git rev-parse --verify refs/stash >/dev/null 2>&1 && s="$" fi if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ]; then if [ -n "$(git ls-files --others --exclude-standard)" ]; then u="%" fi fi if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then __git_ps1_show_upstream fi fi local f="$w$i$s$u" printf "${1:- (%s)}" "$c${b##refs/heads/}${f:+ $f}$r$p" fi } # __gitcomp_1 requires 2 arguments __gitcomp_1 () { local c IFS=' '$'\t'$'\n' for c in $1; do case "$c$2" in --*=*) printf %s$'\n' "$c$2" ;; *.) printf %s$'\n' "$c$2" ;; *) printf %s$'\n' "$c$2 " ;; esac done } # __gitcomp accepts 1, 2, 3, or 4 arguments # generates completion reply with compgen __gitcomp () { local cur="${COMP_WORDS[COMP_CWORD]}" if [ $# -gt 2 ]; then cur="$3" fi case "$cur" in --*=) COMPREPLY=() ;; *) local IFS=$'\n' COMPREPLY=($(compgen -P "${2-}" \ -W "$(__gitcomp_1 "${1-}" "${4-}")" \ -- "$cur")) ;; esac } # __git_heads accepts 0 or 1 arguments (to pass to __gitdir) __git_heads () { local cmd i is_hash=y dir="$(__gitdir "${1-}")" if [ -d "$dir" ]; then git --git-dir="$dir" for-each-ref --format='%(refname:short)' \ refs/heads return fi for i in $(git ls-remote "${1-}" 2>/dev/null); do case "$is_hash,$i" in y,*) is_hash=n ;; n,*^{}) is_hash=y ;; n,refs/heads/*) is_hash=y; echo "${i#refs/heads/}" ;; n,*) is_hash=y; echo "$i" ;; esac done } # __git_tags accepts 0 or 1 arguments (to pass to __gitdir) __git_tags () { local cmd i is_hash=y dir="$(__gitdir "${1-}")" if [ -d "$dir" ]; then git --git-dir="$dir" for-each-ref --format='%(refname:short)' \ refs/tags return fi for i in $(git ls-remote "${1-}" 2>/dev/null); do case "$is_hash,$i" in y,*) is_hash=n ;; n,*^{}) is_hash=y ;; n,refs/tags/*) is_hash=y; echo "${i#refs/tags/}" ;; n,*) is_hash=y; echo "$i" ;; esac done } # __git_refs accepts 0 or 1 arguments (to pass to __gitdir) __git_refs () { local i is_hash=y dir="$(__gitdir "${1-}")" local cur="${COMP_WORDS[COMP_CWORD]}" format refs if [ -d "$dir" ]; then case "$cur" in refs|refs/*) format="refname" refs="${cur%/*}" ;; *) for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD; do if [ -e "$dir/$i" ]; then echo $i; fi done format="refname:short" refs="refs/tags refs/heads refs/remotes" ;; esac git --git-dir="$dir" for-each-ref --format="%($format)" \ $refs return fi for i in $(git ls-remote "$dir" 2>/dev/null); do case "$is_hash,$i" in y,*) is_hash=n ;; n,*^{}) is_hash=y ;; n,refs/tags/*) is_hash=y; echo "${i#refs/tags/}" ;; n,refs/heads/*) is_hash=y; echo "${i#refs/heads/}" ;; n,refs/remotes/*) is_hash=y; echo "${i#refs/remotes/}" ;; n,*) is_hash=y; echo "$i" ;; esac done } # __git_refs2 requires 1 argument (to pass to __git_refs) __git_refs2 () { local i for i in $(__git_refs "$1"); do echo "$i:$i" done } # __git_refs_remotes requires 1 argument (to pass to ls-remote) __git_refs_remotes () { local cmd i is_hash=y for i in $(git ls-remote "$1" 2>/dev/null); do case "$is_hash,$i" in n,refs/heads/*) is_hash=y echo "$i:refs/remotes/$1/${i#refs/heads/}" ;; y,*) is_hash=n ;; n,*^{}) is_hash=y ;; n,refs/tags/*) is_hash=y;; n,*) is_hash=y; ;; esac done } __git_remotes () { local i ngoff IFS=$'\n' d="$(__gitdir)" shopt -q nullglob || ngoff=1 shopt -s nullglob for i in "$d/remotes"/*; do echo ${i#$d/remotes/} done [ "$ngoff" ] && shopt -u nullglob for i in $(git --git-dir="$d" config --get-regexp 'remote\..*\.url' 2>/dev/null); do i="${i#remote.}" echo "${i/.url*/}" done } __git_list_merge_strategies () { git merge -s help 2>&1 | sed -n -e '/[Aa]vailable strategies are: /,/^$/{ s/\.$// s/.*:// s/^[ ]*// s/[ ]*$// p }' } __git_merge_strategies= # 'git merge -s help' (and thus detection of the merge strategy # list) fails, unfortunately, if run outside of any git working # tree. __git_merge_strategies is set to the empty string in # that case, and the detection will be repeated the next time it # is needed. __git_compute_merge_strategies () { : ${__git_merge_strategies:=$(__git_list_merge_strategies)} } __git_complete_file () { local pfx ls ref cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in ?*:*) ref="${cur%%:*}" cur="${cur#*:}" case "$cur" in ?*/*) pfx="${cur%/*}" cur="${cur##*/}" ls="$ref:$pfx" pfx="$pfx/" ;; *) ls="$ref" ;; esac case "$COMP_WORDBREAKS" in *:*) : great ;; *) pfx="$ref:$pfx" ;; esac local IFS=$'\n' COMPREPLY=($(compgen -P "$pfx" \ -W "$(git --git-dir="$(__gitdir)" ls-tree "$ls" \ | sed '/^100... blob /{ s,^.* ,, s,$, , } /^120000 blob /{ s,^.* ,, s,$, , } /^040000 tree /{ s,^.* ,, s,$,/, } s/^.* //')" \ -- "$cur")) ;; *) __gitcomp "$(__git_refs)" ;; esac } __git_complete_revlist () { local pfx cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in *...*) pfx="${cur%...*}..." cur="${cur#*...}" __gitcomp "$(__git_refs)" "$pfx" "$cur" ;; *..*) pfx="${cur%..*}.." cur="${cur#*..}" __gitcomp "$(__git_refs)" "$pfx" "$cur" ;; *) __gitcomp "$(__git_refs)" ;; esac } __git_complete_remote_or_refspec () { local cmd="${COMP_WORDS[1]}" local cur="${COMP_WORDS[COMP_CWORD]}" local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0 while [ $c -lt $COMP_CWORD ]; do i="${COMP_WORDS[c]}" case "$i" in --mirror) [ "$cmd" = "push" ] && no_complete_refspec=1 ;; --all) case "$cmd" in push) no_complete_refspec=1 ;; fetch) COMPREPLY=() return ;; *) ;; esac ;; -*) ;; *) remote="$i"; break ;; esac c=$((++c)) done if [ -z "$remote" ]; then __gitcomp "$(__git_remotes)" return fi if [ $no_complete_refspec = 1 ]; then COMPREPLY=() return fi [ "$remote" = "." ] && remote= case "$cur" in *:*) case "$COMP_WORDBREAKS" in *:*) : great ;; *) pfx="${cur%%:*}:" ;; esac cur="${cur#*:}" lhs=0 ;; +*) pfx="+" cur="${cur#+}" ;; esac case "$cmd" in fetch) if [ $lhs = 1 ]; then __gitcomp "$(__git_refs2 "$remote")" "$pfx" "$cur" else __gitcomp "$(__git_refs)" "$pfx" "$cur" fi ;; pull) if [ $lhs = 1 ]; then __gitcomp "$(__git_refs "$remote")" "$pfx" "$cur" else __gitcomp "$(__git_refs)" "$pfx" "$cur" fi ;; push) if [ $lhs = 1 ]; then __gitcomp "$(__git_refs)" "$pfx" "$cur" else __gitcomp "$(__git_refs "$remote")" "$pfx" "$cur" fi ;; esac } __git_complete_strategy () { __git_compute_merge_strategies case "${COMP_WORDS[COMP_CWORD-1]}" in -s|--strategy) __gitcomp "$__git_merge_strategies" return 0 esac local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --strategy=*) __gitcomp "$__git_merge_strategies" "" "${cur##--strategy=}" return 0 ;; esac return 1 } __git_list_all_commands () { local i IFS=" "$'\n' for i in $(git help -a|egrep '^ [a-zA-Z0-9]') do case $i in *--*) : helper pattern;; *) echo $i;; esac done } __git_all_commands= __git_compute_all_commands () { : ${__git_all_commands:=$(__git_list_all_commands)} } __git_list_porcelain_commands () { local i IFS=" "$'\n' __git_compute_all_commands for i in "help" $__git_all_commands do case $i in *--*) : helper pattern;; applymbox) : ask gittus;; applypatch) : ask gittus;; archimport) : import;; cat-file) : plumbing;; check-attr) : plumbing;; check-ref-format) : plumbing;; checkout-index) : plumbing;; commit-tree) : plumbing;; count-objects) : infrequent;; cvsexportcommit) : export;; cvsimport) : import;; cvsserver) : daemon;; daemon) : daemon;; diff-files) : plumbing;; diff-index) : plumbing;; diff-tree) : plumbing;; fast-import) : import;; fast-export) : export;; fsck-objects) : plumbing;; fetch-pack) : plumbing;; fmt-merge-msg) : plumbing;; for-each-ref) : plumbing;; hash-object) : plumbing;; http-*) : transport;; index-pack) : plumbing;; init-db) : deprecated;; local-fetch) : plumbing;; lost-found) : infrequent;; ls-files) : plumbing;; ls-remote) : plumbing;; ls-tree) : plumbing;; mailinfo) : plumbing;; mailsplit) : plumbing;; merge-*) : plumbing;; mktree) : plumbing;; mktag) : plumbing;; pack-objects) : plumbing;; pack-redundant) : plumbing;; pack-refs) : plumbing;; parse-remote) : plumbing;; patch-id) : plumbing;; peek-remote) : plumbing;; prune) : plumbing;; prune-packed) : plumbing;; quiltimport) : import;; read-tree) : plumbing;; receive-pack) : plumbing;; reflog) : plumbing;; remote-*) : transport;; repo-config) : deprecated;; rerere) : plumbing;; rev-list) : plumbing;; rev-parse) : plumbing;; runstatus) : plumbing;; sh-setup) : internal;; shell) : daemon;; show-ref) : plumbing;; send-pack) : plumbing;; show-index) : plumbing;; ssh-*) : transport;; stripspace) : plumbing;; symbolic-ref) : plumbing;; tar-tree) : deprecated;; unpack-file) : plumbing;; unpack-objects) : plumbing;; update-index) : plumbing;; update-ref) : plumbing;; update-server-info) : daemon;; upload-archive) : plumbing;; upload-pack) : plumbing;; write-tree) : plumbing;; var) : infrequent;; verify-pack) : infrequent;; verify-tag) : plumbing;; *) echo $i;; esac done } __git_porcelain_commands= __git_compute_porcelain_commands () { __git_compute_all_commands : ${__git_porcelain_commands:=$(__git_list_porcelain_commands)} } __git_aliases () { local i IFS=$'\n' for i in $(git --git-dir="$(__gitdir)" config --get-regexp "alias\..*" 2>/dev/null); do case "$i" in alias.*) i="${i#alias.}" echo "${i/ */}" ;; esac done } # __git_aliased_command requires 1 argument __git_aliased_command () { local word cmdline=$(git --git-dir="$(__gitdir)" \ config --get "alias.$1") for word in $cmdline; do case "$word" in \!gitk|gitk) echo "gitk" return ;; \!*) : shell command alias ;; -*) : option ;; *=*) : setting env ;; git) : git itself ;; *) echo "$word" return esac done } # __git_find_on_cmdline requires 1 argument __git_find_on_cmdline () { local word subcommand c=1 while [ $c -lt $COMP_CWORD ]; do word="${COMP_WORDS[c]}" for subcommand in $1; do if [ "$subcommand" = "$word" ]; then echo "$subcommand" return fi done c=$((++c)) done } __git_has_doubledash () { local c=1 while [ $c -lt $COMP_CWORD ]; do if [ "--" = "${COMP_WORDS[c]}" ]; then return 0 fi c=$((++c)) done return 1 } __git_whitespacelist="nowarn warn error error-all fix" _git_am () { local cur="${COMP_WORDS[COMP_CWORD]}" dir="$(__gitdir)" if [ -d "$dir"/rebase-apply ]; then __gitcomp "--skip --continue --resolved --abort" return fi case "$cur" in --whitespace=*) __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" return ;; --*) __gitcomp " --3way --committer-date-is-author-date --ignore-date --ignore-whitespace --ignore-space-change --interactive --keep --no-utf8 --signoff --utf8 --whitespace= --scissors " return esac COMPREPLY=() } _git_apply () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --whitespace=*) __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" return ;; --*) __gitcomp " --stat --numstat --summary --check --index --cached --index-info --reverse --reject --unidiff-zero --apply --no-add --exclude= --ignore-whitespace --ignore-space-change --whitespace= --inaccurate-eof --verbose " return esac COMPREPLY=() } _git_add () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp " --interactive --refresh --patch --update --dry-run --ignore-errors --intent-to-add " return esac COMPREPLY=() } _git_archive () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --format=*) __gitcomp "$(git archive --list)" "" "${cur##--format=}" return ;; --remote=*) __gitcomp "$(__git_remotes)" "" "${cur##--remote=}" return ;; --*) __gitcomp " --format= --list --verbose --prefix= --remote= --exec= " return ;; esac __git_complete_file } _git_bisect () { __git_has_doubledash && return local subcommands="start bad good skip reset visualize replay log run" local subcommand="$(__git_find_on_cmdline "$subcommands")" if [ -z "$subcommand" ]; then __gitcomp "$subcommands" return fi case "$subcommand" in bad|good|reset|skip) __gitcomp "$(__git_refs)" ;; *) COMPREPLY=() ;; esac } _git_branch () { local i c=1 only_local_ref="n" has_r="n" while [ $c -lt $COMP_CWORD ]; do i="${COMP_WORDS[c]}" case "$i" in -d|-m) only_local_ref="y" ;; -r) has_r="y" ;; esac c=$((++c)) done case "${COMP_WORDS[COMP_CWORD]}" in --*) __gitcomp " --color --no-color --verbose --abbrev= --no-abbrev --track --no-track --contains --merged --no-merged --set-upstream " ;; *) if [ $only_local_ref = "y" -a $has_r = "n" ]; then __gitcomp "$(__git_heads)" else __gitcomp "$(__git_refs)" fi ;; esac } _git_bundle () { local cmd="${COMP_WORDS[2]}" case "$COMP_CWORD" in 2) __gitcomp "create list-heads verify unbundle" ;; 3) # looking for a file ;; *) case "$cmd" in create) __git_complete_revlist ;; esac ;; esac } _git_checkout () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --conflict=*) __gitcomp "diff3 merge" "" "${cur##--conflict=}" ;; --*) __gitcomp " --quiet --ours --theirs --track --no-track --merge --conflict= --orphan --patch " ;; *) __gitcomp "$(__git_refs)" ;; esac } _git_cherry () { __gitcomp "$(__git_refs)" } _git_cherry_pick () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "--edit --no-commit" ;; *) __gitcomp "$(__git_refs)" ;; esac } _git_clean () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "--dry-run --quiet" return ;; esac COMPREPLY=() } _git_clone () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp " --local --no-hardlinks --shared --reference --quiet --no-checkout --bare --mirror --origin --upload-pack --template= --depth " return ;; esac COMPREPLY=() } _git_commit () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --cleanup=*) __gitcomp "default strip verbatim whitespace " "" "${cur##--cleanup=}" return ;; --reuse-message=*) __gitcomp "$(__git_refs)" "" "${cur##--reuse-message=}" return ;; --reedit-message=*) __gitcomp "$(__git_refs)" "" "${cur##--reedit-message=}" return ;; --untracked-files=*) __gitcomp "all no normal" "" "${cur##--untracked-files=}" return ;; --*) __gitcomp " --all --author= --signoff --verify --no-verify --edit --amend --include --only --interactive --dry-run --reuse-message= --reedit-message= --reset-author --file= --message= --template= --cleanup= --untracked-files --untracked-files= --verbose --quiet " return esac COMPREPLY=() } _git_describe () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp " --all --tags --contains --abbrev= --candidates= --exact-match --debug --long --match --always " return esac __gitcomp "$(__git_refs)" } __git_diff_common_options="--stat --numstat --shortstat --summary --patch-with-stat --name-only --name-status --color --no-color --color-words --no-renames --check --full-index --binary --abbrev --diff-filter= --find-copies-harder --text --ignore-space-at-eol --ignore-space-change --ignore-all-space --exit-code --quiet --ext-diff --no-ext-diff --no-prefix --src-prefix= --dst-prefix= --inter-hunk-context= --patience --raw --dirstat --dirstat= --dirstat-by-file --dirstat-by-file= --cumulative " _git_diff () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex --base --ours --theirs $__git_diff_common_options " return ;; esac __git_complete_file } __git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff tkdiff vimdiff gvimdiff xxdiff araxis p4merge " _git_difftool () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --tool=*) __gitcomp "$__git_mergetools_common kompare" "" "${cur##--tool=}" return ;; --*) __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex --base --ours --theirs --no-renames --diff-filter= --find-copies-harder --relative --ignore-submodules --tool=" return ;; esac __git_complete_file } __git_fetch_options=" --quiet --verbose --append --upload-pack --force --keep --depth= --tags --no-tags --all --prune --dry-run " _git_fetch () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "$__git_fetch_options" return ;; esac __git_complete_remote_or_refspec } _git_format_patch () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --thread=*) __gitcomp " deep shallow " "" "${cur##--thread=}" return ;; --*) __gitcomp " --stdout --attach --no-attach --thread --thread= --output-directory --numbered --start-number --numbered-files --keep-subject --signoff --signature --no-signature --in-reply-to= --cc= --full-index --binary --not --all --cover-letter --no-prefix --src-prefix= --dst-prefix= --inline --suffix= --ignore-if-in-upstream --subject-prefix= " return ;; esac __git_complete_revlist } _git_fsck () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp " --tags --root --unreachable --cache --no-reflogs --full --strict --verbose --lost-found " return ;; esac COMPREPLY=() } _git_gc () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "--prune --aggressive" return ;; esac COMPREPLY=() } _git_gitk () { _gitk } _git_grep () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp " --cached --text --ignore-case --word-regexp --invert-match --full-name --extended-regexp --basic-regexp --fixed-strings --files-with-matches --name-only --files-without-match --max-depth --count --and --or --not --all-match " return ;; esac __gitcomp "$(__git_refs)" } _git_help () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "--all --info --man --web" return ;; esac __git_compute_all_commands __gitcomp "$__git_all_commands attributes cli core-tutorial cvs-migration diffcore gitk glossary hooks ignore modules repository-layout tutorial tutorial-2 workflows " } _git_init () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --shared=*) __gitcomp " false true umask group all world everybody " "" "${cur##--shared=}" return ;; --*) __gitcomp "--quiet --bare --template= --shared --shared=" return ;; esac COMPREPLY=() } _git_ls_files () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "--cached --deleted --modified --others --ignored --stage --directory --no-empty-directory --unmerged --killed --exclude= --exclude-from= --exclude-per-directory= --exclude-standard --error-unmatch --with-tree= --full-name --abbrev --ignored --exclude-per-directory " return ;; esac COMPREPLY=() } _git_ls_remote () { __gitcomp "$(__git_remotes)" } _git_ls_tree () { __git_complete_file } # Options that go well for log, shortlog and gitk __git_log_common_options=" --not --all --branches --tags --remotes --first-parent --merges --no-merges --max-count= --max-age= --since= --after= --min-age= --until= --before= " # Options that go well for log and gitk (not shortlog) __git_log_gitk_options=" --dense --sparse --full-history --simplify-merges --simplify-by-decoration --left-right " # Options that go well for log and shortlog (not gitk) __git_log_shortlog_options=" --author= --committer= --grep= --all-match " __git_log_pretty_formats="oneline short medium full fuller email raw format:" __git_log_date_formats="relative iso8601 rfc2822 short local default raw" _git_log () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" local g="$(git rev-parse --git-dir 2>/dev/null)" local merge="" if [ -f "$g/MERGE_HEAD" ]; then merge="--merge" fi case "$cur" in --pretty=*) __gitcomp "$__git_log_pretty_formats " "" "${cur##--pretty=}" return ;; --format=*) __gitcomp "$__git_log_pretty_formats " "" "${cur##--format=}" return ;; --date=*) __gitcomp "$__git_log_date_formats" "" "${cur##--date=}" return ;; --decorate=*) __gitcomp "long short" "" "${cur##--decorate=}" return ;; --*) __gitcomp " $__git_log_common_options $__git_log_shortlog_options $__git_log_gitk_options --root --topo-order --date-order --reverse --follow --full-diff --abbrev-commit --abbrev= --relative-date --date= --pretty= --format= --oneline --cherry-pick --graph --decorate --decorate= --walk-reflogs --parents --children $merge $__git_diff_common_options --pickaxe-all --pickaxe-regex " return ;; esac __git_complete_revlist } __git_merge_options=" --no-commit --no-stat --log --no-log --squash --strategy --commit --stat --no-squash --ff --no-ff --ff-only " _git_merge () { __git_complete_strategy && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "$__git_merge_options" return esac __gitcomp "$(__git_refs)" } _git_mergetool () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --tool=*) __gitcomp "$__git_mergetools_common tortoisemerge" "" "${cur##--tool=}" return ;; --*) __gitcomp "--tool=" return ;; esac COMPREPLY=() } _git_merge_base () { __gitcomp "$(__git_refs)" } _git_mv () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "--dry-run" return ;; esac COMPREPLY=() } _git_name_rev () { __gitcomp "--tags --all --stdin" } _git_notes () { local subcommands="edit show" if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then __gitcomp "$subcommands" return fi case "${COMP_WORDS[COMP_CWORD-1]}" in -m|-F) COMPREPLY=() ;; *) __gitcomp "$(__git_refs)" ;; esac } _git_pull () { __git_complete_strategy && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp " --rebase --no-rebase $__git_merge_options $__git_fetch_options " return ;; esac __git_complete_remote_or_refspec } _git_push () { local cur="${COMP_WORDS[COMP_CWORD]}" case "${COMP_WORDS[COMP_CWORD-1]}" in --repo) __gitcomp "$(__git_remotes)" return esac case "$cur" in --repo=*) __gitcomp "$(__git_remotes)" "" "${cur##--repo=}" return ;; --*) __gitcomp " --all --mirror --tags --dry-run --force --verbose --receive-pack= --repo= " return ;; esac __git_complete_remote_or_refspec } _git_rebase () { local cur="${COMP_WORDS[COMP_CWORD]}" dir="$(__gitdir)" if [ -d "$dir"/rebase-apply ] || [ -d "$dir"/rebase-merge ]; then __gitcomp "--continue --skip --abort" return fi __git_complete_strategy && return case "$cur" in --whitespace=*) __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" return ;; --*) __gitcomp " --onto --merge --strategy --interactive --preserve-merges --stat --no-stat --committer-date-is-author-date --ignore-date --ignore-whitespace --whitespace= --autosquash " return esac __gitcomp "$(__git_refs)" } __git_send_email_confirm_options="always never auto cc compose" __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all" _git_send_email () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --confirm=*) __gitcomp " $__git_send_email_confirm_options " "" "${cur##--confirm=}" return ;; --suppress-cc=*) __gitcomp " $__git_send_email_suppresscc_options " "" "${cur##--suppress-cc=}" return ;; --smtp-encryption=*) __gitcomp "ssl tls" "" "${cur##--smtp-encryption=}" return ;; --*) __gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to --compose --confirm= --dry-run --envelope-sender --from --identity --in-reply-to --no-chain-reply-to --no-signed-off-by-cc --no-suppress-from --no-thread --quiet --signed-off-by-cc --smtp-pass --smtp-server --smtp-server-port --smtp-encryption= --smtp-user --subject --suppress-cc= --suppress-from --thread --to --validate --no-validate" return ;; esac COMPREPLY=() } _git_stage () { _git_add } __git_config_get_set_variables () { local prevword word config_file= c=$COMP_CWORD while [ $c -gt 1 ]; do word="${COMP_WORDS[c]}" case "$word" in --global|--system|--file=*) config_file="$word" break ;; -f|--file) config_file="$word $prevword" break ;; esac prevword=$word c=$((--c)) done git --git-dir="$(__gitdir)" config $config_file --list 2>/dev/null | while read line do case "$line" in *.*=*) echo "${line/=*/}" ;; esac done } _git_config () { local cur="${COMP_WORDS[COMP_CWORD]}" local prv="${COMP_WORDS[COMP_CWORD-1]}" case "$prv" in branch.*.remote) __gitcomp "$(__git_remotes)" return ;; branch.*.merge) __gitcomp "$(__git_refs)" return ;; remote.*.fetch) local remote="${prv#remote.}" remote="${remote%.fetch}" __gitcomp "$(__git_refs_remotes "$remote")" return ;; remote.*.push) local remote="${prv#remote.}" remote="${remote%.push}" __gitcomp "$(git --git-dir="$(__gitdir)" \ for-each-ref --format='%(refname):%(refname)' \ refs/heads)" return ;; pull.twohead|pull.octopus) __git_compute_merge_strategies __gitcomp "$__git_merge_strategies" return ;; color.branch|color.diff|color.interactive|\ color.showbranch|color.status|color.ui) __gitcomp "always never auto" return ;; color.pager) __gitcomp "false true" return ;; color.*.*) __gitcomp " normal black red green yellow blue magenta cyan white bold dim ul blink reverse " return ;; help.format) __gitcomp "man info web html" return ;; log.date) __gitcomp "$__git_log_date_formats" return ;; sendemail.aliasesfiletype) __gitcomp "mutt mailrc pine elm gnus" return ;; sendemail.confirm) __gitcomp "$__git_send_email_confirm_options" return ;; sendemail.suppresscc) __gitcomp "$__git_send_email_suppresscc_options" return ;; --get|--get-all|--unset|--unset-all) __gitcomp "$(__git_config_get_set_variables)" return ;; *.*) COMPREPLY=() return ;; esac case "$cur" in --*) __gitcomp " --global --system --file= --list --replace-all --get --get-all --get-regexp --add --unset --unset-all --remove-section --rename-section " return ;; branch.*.*) local pfx="${cur%.*}." cur="${cur##*.}" __gitcomp "remote merge mergeoptions rebase" "$pfx" "$cur" return ;; branch.*) local pfx="${cur%.*}." cur="${cur#*.}" __gitcomp "$(__git_heads)" "$pfx" "$cur" "." return ;; guitool.*.*) local pfx="${cur%.*}." cur="${cur##*.}" __gitcomp " argprompt cmd confirm needsfile noconsole norescan prompt revprompt revunmerged title " "$pfx" "$cur" return ;; difftool.*.*) local pfx="${cur%.*}." cur="${cur##*.}" __gitcomp "cmd path" "$pfx" "$cur" return ;; man.*.*) local pfx="${cur%.*}." cur="${cur##*.}" __gitcomp "cmd path" "$pfx" "$cur" return ;; mergetool.*.*) local pfx="${cur%.*}." cur="${cur##*.}" __gitcomp "cmd path trustExitCode" "$pfx" "$cur" return ;; pager.*) local pfx="${cur%.*}." cur="${cur#*.}" __git_compute_all_commands __gitcomp "$__git_all_commands" "$pfx" "$cur" return ;; remote.*.*) local pfx="${cur%.*}." cur="${cur##*.}" __gitcomp " url proxy fetch push mirror skipDefaultUpdate receivepack uploadpack tagopt pushurl " "$pfx" "$cur" return ;; remote.*) local pfx="${cur%.*}." cur="${cur#*.}" __gitcomp "$(__git_remotes)" "$pfx" "$cur" "." return ;; url.*.*) local pfx="${cur%.*}." cur="${cur##*.}" __gitcomp "insteadOf pushInsteadOf" "$pfx" "$cur" return ;; esac __gitcomp " add.ignore-errors alias. apply.ignorewhitespace apply.whitespace branch.autosetupmerge branch.autosetuprebase clean.requireForce color.branch color.branch.current color.branch.local color.branch.plain color.branch.remote color.diff color.diff.commit color.diff.frag color.diff.meta color.diff.new color.diff.old color.diff.plain color.diff.whitespace color.grep color.grep.external color.grep.match color.interactive color.interactive.header color.interactive.help color.interactive.prompt color.pager color.showbranch color.status color.status.added color.status.changed color.status.header color.status.nobranch color.status.untracked color.status.updated color.ui commit.template core.autocrlf core.bare core.compression core.createObject core.deltaBaseCacheLimit core.editor core.excludesfile core.fileMode core.fsyncobjectfiles core.gitProxy core.ignoreCygwinFSTricks core.ignoreStat core.logAllRefUpdates core.loosecompression core.packedGitLimit core.packedGitWindowSize core.pager core.preferSymlinkRefs core.preloadindex core.quotepath core.repositoryFormatVersion core.safecrlf core.sharedRepository core.symlinks core.trustctime core.warnAmbiguousRefs core.whitespace core.worktree diff.autorefreshindex diff.external diff.mnemonicprefix diff.renameLimit diff.renameLimit. diff.renames diff.suppressBlankEmpty diff.tool diff.wordRegex difftool. difftool.prompt fetch.unpackLimit format.attach format.cc format.headers format.numbered format.pretty format.signature format.signoff format.subjectprefix format.suffix format.thread gc.aggressiveWindow gc.auto gc.autopacklimit gc.packrefs gc.pruneexpire gc.reflogexpire gc.reflogexpireunreachable gc.rerereresolved gc.rerereunresolved gitcvs.allbinary gitcvs.commitmsgannotation gitcvs.dbTableNamePrefix gitcvs.dbdriver gitcvs.dbname gitcvs.dbpass gitcvs.dbuser gitcvs.enabled gitcvs.logfile gitcvs.usecrlfattr guitool. gui.blamehistoryctx gui.commitmsgwidth gui.copyblamethreshold gui.diffcontext gui.encoding gui.fastcopyblame gui.matchtrackingbranch gui.newbranchtemplate gui.pruneduringfetch gui.spellingdictionary gui.trustmtime help.autocorrect help.browser help.format http.lowSpeedLimit http.lowSpeedTime http.maxRequests http.noEPSV http.proxy http.sslCAInfo http.sslCAPath http.sslCert http.sslKey http.sslVerify i18n.commitEncoding i18n.logOutputEncoding imap.folder imap.host imap.pass imap.port imap.preformattedHTML imap.sslverify imap.tunnel imap.user instaweb.browser instaweb.httpd instaweb.local instaweb.modulepath instaweb.port interactive.singlekey log.date log.showroot mailmap.file man. man.viewer merge.conflictstyle merge.log merge.renameLimit merge.stat merge.tool merge.verbosity mergetool. mergetool.keepBackup mergetool.prompt pack.compression pack.deltaCacheLimit pack.deltaCacheSize pack.depth pack.indexVersion pack.packSizeLimit pack.threads pack.window pack.windowMemory pager. pull.octopus pull.twohead push.default rebase.stat receive.denyCurrentBranch receive.denyDeletes receive.denyNonFastForwards receive.fsckObjects receive.unpackLimit repack.usedeltabaseoffset rerere.autoupdate rerere.enabled sendemail.aliasesfile sendemail.aliasesfiletype sendemail.bcc sendemail.cc sendemail.cccmd sendemail.chainreplyto sendemail.confirm sendemail.envelopesender sendemail.multiedit sendemail.signedoffbycc sendemail.smtpencryption sendemail.smtppass sendemail.smtpserver sendemail.smtpserverport sendemail.smtpuser sendemail.suppresscc sendemail.suppressfrom sendemail.thread sendemail.to sendemail.validate showbranch.default status.relativePaths status.showUntrackedFiles tar.umask transfer.unpackLimit url. user.email user.name user.signingkey web.browser branch. remote. " } _git_remote () { local subcommands="add rename rm show prune update set-head" local subcommand="$(__git_find_on_cmdline "$subcommands")" if [ -z "$subcommand" ]; then __gitcomp "$subcommands" return fi case "$subcommand" in rename|rm|show|prune) __gitcomp "$(__git_remotes)" ;; update) local i c='' IFS=$'\n' for i in $(git --git-dir="$(__gitdir)" config --get-regexp "remotes\..*" 2>/dev/null); do i="${i#remotes.}" c="$c ${i/ */}" done __gitcomp "$c" ;; *) COMPREPLY=() ;; esac } _git_replace () { __gitcomp "$(__git_refs)" } _git_reset () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "--merge --mixed --hard --soft --patch" return ;; esac __gitcomp "$(__git_refs)" } _git_revert () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "--edit --mainline --no-edit --no-commit --signoff" return ;; esac __gitcomp "$(__git_refs)" } _git_rm () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "--cached --dry-run --ignore-unmatch --quiet" return ;; esac COMPREPLY=() } _git_shortlog () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp " $__git_log_common_options $__git_log_shortlog_options --numbered --summary " return ;; esac __git_complete_revlist } _git_show () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --pretty=*) __gitcomp "$__git_log_pretty_formats " "" "${cur##--pretty=}" return ;; --format=*) __gitcomp "$__git_log_pretty_formats " "" "${cur##--format=}" return ;; --*) __gitcomp "--pretty= --format= --abbrev-commit --oneline $__git_diff_common_options " return ;; esac __git_complete_file } _git_show_branch () { local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp " --all --remotes --topo-order --current --more= --list --independent --merge-base --no-name --color --no-color --sha1-name --sparse --topics --reflog " return ;; esac __git_complete_revlist } _git_stash () { local cur="${COMP_WORDS[COMP_CWORD]}" local save_opts='--keep-index --no-keep-index --quiet --patch' local subcommands='save list show apply clear drop pop create branch' local subcommand="$(__git_find_on_cmdline "$subcommands")" if [ -z "$subcommand" ]; then case "$cur" in --*) __gitcomp "$save_opts" ;; *) if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then __gitcomp "$subcommands" else COMPREPLY=() fi ;; esac else case "$subcommand,$cur" in save,--*) __gitcomp "$save_opts" ;; apply,--*|pop,--*) __gitcomp "--index --quiet" ;; show,--*|drop,--*|branch,--*) COMPREPLY=() ;; show,*|apply,*|drop,*|pop,*|branch,*) __gitcomp "$(git --git-dir="$(__gitdir)" stash list \ | sed -n -e 's/:.*//p')" ;; *) COMPREPLY=() ;; esac fi } _git_submodule () { __git_has_doubledash && return local subcommands="add status init update summary foreach sync" if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in --*) __gitcomp "--quiet --cached" ;; *) __gitcomp "$subcommands" ;; esac return fi } _git_svn () { local subcommands=" init fetch clone rebase dcommit log find-rev set-tree commit-diff info create-ignore propget proplist show-ignore show-externals branch tag blame migrate mkdirs reset gc " local subcommand="$(__git_find_on_cmdline "$subcommands")" if [ -z "$subcommand" ]; then __gitcomp "$subcommands" else local remote_opts="--username= --config-dir= --no-auth-cache" local fc_opts=" --follow-parent --authors-file= --repack= --no-metadata --use-svm-props --use-svnsync-props --log-window-size= --no-checkout --quiet --repack-flags --use-log-author --localtime --ignore-paths= $remote_opts " local init_opts=" --template= --shared= --trunk= --tags= --branches= --stdlayout --minimize-url --no-metadata --use-svm-props --use-svnsync-props --rewrite-root= --prefix= --use-log-author --add-author-from $remote_opts " local cmt_opts=" --edit --rmdir --find-copies-harder --copy-similarity= " local cur="${COMP_WORDS[COMP_CWORD]}" case "$subcommand,$cur" in fetch,--*) __gitcomp "--revision= --fetch-all $fc_opts" ;; clone,--*) __gitcomp "--revision= $fc_opts $init_opts" ;; init,--*) __gitcomp "$init_opts" ;; dcommit,--*) __gitcomp " --merge --strategy= --verbose --dry-run --fetch-all --no-rebase --commit-url --revision $cmt_opts $fc_opts " ;; set-tree,--*) __gitcomp "--stdin $cmt_opts $fc_opts" ;; create-ignore,--*|propget,--*|proplist,--*|show-ignore,--*|\ show-externals,--*|mkdirs,--*) __gitcomp "--revision=" ;; log,--*) __gitcomp " --limit= --revision= --verbose --incremental --oneline --show-commit --non-recursive --authors-file= --color " ;; rebase,--*) __gitcomp " --merge --verbose --strategy= --local --fetch-all --dry-run $fc_opts " ;; commit-diff,--*) __gitcomp "--message= --file= --revision= $cmt_opts" ;; info,--*) __gitcomp "--url" ;; branch,--*) __gitcomp "--dry-run --message --tag" ;; tag,--*) __gitcomp "--dry-run --message" ;; blame,--*) __gitcomp "--git-format" ;; migrate,--*) __gitcomp " --config-dir= --ignore-paths= --minimize --no-auth-cache --username= " ;; reset,--*) __gitcomp "--revision= --parent" ;; *) COMPREPLY=() ;; esac fi } _git_tag () { local i c=1 f=0 while [ $c -lt $COMP_CWORD ]; do i="${COMP_WORDS[c]}" case "$i" in -d|-v) __gitcomp "$(__git_tags)" return ;; -f) f=1 ;; esac c=$((++c)) done case "${COMP_WORDS[COMP_CWORD-1]}" in -m|-F) COMPREPLY=() ;; -*|tag) if [ $f = 1 ]; then __gitcomp "$(__git_tags)" else COMPREPLY=() fi ;; *) __gitcomp "$(__git_refs)" ;; esac } _git_whatchanged () { _git_log } _git () { local i c=1 command __git_dir while [ $c -lt $COMP_CWORD ]; do i="${COMP_WORDS[c]}" case "$i" in --git-dir=*) __git_dir="${i#--git-dir=}" ;; --bare) __git_dir="." ;; --version|-p|--paginate) ;; --help) command="help"; break ;; *) command="$i"; break ;; esac c=$((++c)) done if [ -z "$command" ]; then case "${COMP_WORDS[COMP_CWORD]}" in --*) __gitcomp " --paginate --no-pager --git-dir= --bare --version --exec-path --html-path --work-tree= --help " ;; *) __git_compute_porcelain_commands __gitcomp "$__git_porcelain_commands $(__git_aliases)" ;; esac return fi local completion_func="_git_${command//-/_}" declare -F $completion_func >/dev/null && $completion_func && return local expansion=$(__git_aliased_command "$command") if [ -n "$expansion" ]; then completion_func="_git_${expansion//-/_}" declare -F $completion_func >/dev/null && $completion_func fi } _gitk () { __git_has_doubledash && return local cur="${COMP_WORDS[COMP_CWORD]}" local g="$(__gitdir)" local merge="" if [ -f "$g/MERGE_HEAD" ]; then merge="--merge" fi case "$cur" in --*) __gitcomp " $__git_log_common_options $__git_log_gitk_options $merge " return ;; esac __git_complete_revlist } complete -o bashdefault -o default -o nospace -F _git git 2>/dev/null \ || complete -o default -o nospace -F _git git complete -o bashdefault -o default -o nospace -F _gitk gitk 2>/dev/null \ || complete -o default -o nospace -F _gitk gitk # The following are necessary only for Cygwin, and only are needed # when the user has tab-completed the executable name and consequently # included the '.exe' suffix. # if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then complete -o bashdefault -o default -o nospace -F _git git.exe 2>/dev/null \ || complete -o default -o nospace -F _git git.exe fi