Dear Prudence is online weekly to chat live with readers. Here’s an edited transcript of this week’s chat.
Danny Lavery: Afternoon, everyone! Let’s get cracking.
Q. I hate my wife’s cooking! My wife grew up eating far healthier than I did—vegetarian, no sweets, the whole nine yards. All the food she cooks is basically just stews of mushy vegetables with some sort of liquid. I hate it. I feel like a 4-year-old in my petulance, but I wind up just kind of picking at her food listlessly. She notices. We’ve divided up the cooking responsibilities and she really enjoys the food I make, but I still hate the food she makes! She gets offended and it starts a fight. What can we do? Is there a way to train myself to enjoy mushy stews?
A: There may be a way to train yourself to enjoy listless, mushy stews, but if there is, I want no part of it. (With the obvious caveat that vegetarian and sugar-free cooking is not confined to flavorless gruel, and that “healthier” seems to serve as at least a partial stand-in for “joyless” in your first sentence!) I can think of several better options, like dividing up the cooking responsibilities in a different fashion so that instead of switching nights “on” and “off” you cook more often together from start to finish, or simply make yourself a quick sandwich or collation of leftovers on nights that she’s making a stew she loves but you can’t bring yourself to appreciate.
While eating with your partner can be fun/meaningful/emotionally significant, there’s also no law that you have to eat the exact same dinner together every night just because you’re married. If you’re fighting about this almost every night she cooks, bring it up on one of her “off” days and try to find a compromise you two can both live with. If there’s a larger conversation to be had about trying new things or treating each other politely, you can listen open-mindedly—but you don’t have to promise to eat and (pretend to) enjoy lousy stew three or more nights a week just because your wife wishes you liked it, either.
How to Get Advice From Prudie:
• Send questions for publication to [email protected]. (Questions may be edited.)
• Join the live chat Mondays at noon. Submit your questions and comments here before or during the discussion.
• Call the voicemail of the Dear Prudence podcast at 401-371-DEAR (3327) to hear your question answered on a future episode of the show.
Q. Conflicted Christmas: My daughter and I are estranged, but up until now, l have managed to keep up a relationship with my grandchildren (ages 10, 14, 16). A month ago, my 16-year-old granddaughter stopped speaking to me over a misunderstanding, which she refuses to even talk about. I’ve reached out to her several times but she refuses to even acknowledge me. I’m disappointed and sad that she seems to be following in her mom’s footsteps. I still communicate with the other two grandchildren who tell me they love me, etc.
My question is regarding Christmas. I would like to give the younger ones gifts, but I’m not sure what to do about the one not speaking to me. On one hand, l feel that she certainly doesn’t deserve my consideration, and at 16, she’s old enough to learn that her actions have consequences. And if l send a gift, I’m teaching her that she can continue to take me for granted. On the other hand, it’s Christmas and she’s still a child trying to deal with her extremely dysfunctional mother, and l should give in in the spirit of the season and to let her know l still love her. I also don’t want to appear manipulative by giving to her siblings and “punishing” her. Advice?
A: My kingdom for details on this “misunderstanding”! I think you’re right not to want to look like you’re punishing your granddaughter for behaving (or misbehaving, as the case may be—sure wish I knew those details!) like a teenager. So … don’t punish her! This includes not saying things like “you don’t deserve my consideration” when she gets angry with you or stops talking to you, even if you don’t think her reason for not wanting to talk to you is good enough. Whatever that reason may be, it’s clearly pretty important to her—I’m inclined to doubt she would characterize this conflict as “My grandmother and I had a misunderstanding, so I’ve decided never to talk to her again,” so I’d encourage you to rethink how you describe this situation. You might try on “Once my relatives are old enough to make such decisions for themselves, a lot of them choose to stop talking to me, while on my part I remain purposely vague on what led up to those choices” instead of “My daughter is estranged from me for [reason not given], and her eldest child is mysteriously choosing to follow in her footsteps over a vague misunderstanding.”
In the short term: Why not send over a gift the whole family can use, like a gift certificate or a dessert tray (or Google “gifts for the whole family” and scroll through the results until you find something that seems affordable and applicable)?
Q. Family ally: My cousin (whom I am not close to) has a teenage child who just came out to the extended family as trans. His father (my cousin) is very supportive, but his grandmother (my aunt) is not. My aunt is very conservative, and while I don’t believe she is a virulently hateful person, she does not in any way accept her grandson’s identity.
The issue is that my grandfather (my mother and aunt’s father) just died, and my aunt elected to list her grandson in the obituary as a survivor by his deadname. I’ve already talked to my mother about this, and while she is more liberal than her sister, she is not willing to confront my aunt in their shared time of grief. I am planning to travel up for the funeral where my aunt and my trans (second?) cousin will both be in attendance, and I’m not sure what my role is in this issue. Obviously I don’t think it’s right to deadname someone ever, but is it my role to cause a fuss with the extended family? Do I need to do anything other than make sure my trans relative knows he is supported?
A: Talk to your cousin’s kid! If he’s a teenager, he’s old enough to have some thoughts about what would actually help make things easier for him, so ask him how you can be helpful. Since you say you’re not close to your cousin, you may not be close to his son, either; in that case, you can certainly go through his father if you don’t have your nephew’s phone number (I can never remember which is a second cousin and which is a cousin once removed; I’ll just say “nephew” and trust you know what I mean).
Don’t worry about caveats like “I don’t believe she is a virulently hateful person” when discussing your aunt’s transphobia; people only use qualifiers like that when they’re trying to make sure no one gets too angry at someone difficult, and that’s simply not the issue. No one is saying “Aunt Cissy is virulently hateful,” so there’s no reason to address that hypothetical claim. She’s being transphobic and pointedly using your nephew’s old name (I’m guessing not just in obituaries but in other conversations too), and you can deal with that without ever having to make a formal ruling about her official “hatefulness.”
Also, what she is doing is extremely hateful! Perhaps you are confusing “hateful” with “impolite” or “cartoonishly villainous,” like tying a lady to a railroad track. That doesn’t mean you have to “cause a fuss,” necessarily, but you can politely object to deadnaming without “causing a fuss.” Let’s be precise here: What you mean is that you believe your aunt will cause a fuss if anyone ever acknowledges her transphobia in any way. I believe she will, too! Put her aside for the moment, focus on your cousin and his kid, express (or reiterate) your support, and ask them how you can help.
Q. Meet-moot: I never loved my brother. Our parents thought he could do no wrong while I was the family whipping boy. My brother deliberately broke both my collarbone and an arm on two separate occasions. He harassed me and stole over a thousand dollars from me. When I confronted him, he grinned and told me no one would ever believe me over him. He died when I was 20 and I didn’t attend the funeral. My parents could never let that go, so I cut contact with them. They died several years ago. I have built a beautiful life with my wife and our lovely children.
Recently, a young woman has reached out claiming she is my brother’s child. Her parents died when she was young and she found out her father was actually her stepfather. I recognized her mother as someone in my brother’s crowd. The woman asked me to do a DNA test and tell me about her father. I declined. She has appealed several times. My wife thinks I should go through with it to give us both peace of mind. I don’t want to dig up the past, I don’t want a relationship with her, and I don’t think telling this girl my brother was a sociopathic piece of trash will do any good. What is the right thing to do?
A: Both your wife’s proposed course of action and yours strike me as “right” in some ways. You’re not obligated to disclose painful, personal details about your long-dead relatives just because someone else wants you to; you have a very real right to decide whom you want to have a family relationship with, whom you want to disclose your childhood abuse to, and whom you don’t. It’s also possible that you’d feel better if you were to answer this young woman more directly by saying, “I won’t take a DNA test, and I’m afraid all I can tell you about my brother is that I cut off contact years before he died for my own safety. I hope you find peace, but not at my expense. Please stop contacting me.” But that’s where I think your wife’s suggestion misses the mark—it’d be one thing to slightly elaborate on why you declined in the first place, but going through with a DNA test to confirm a relationship you don’t want to acknowledge would only cause you pain. Trust your own instincts; your wife does not know what it was like to grow up in your family, nor what it might cost you to revisit those memories in greater detail.
Q. To baby or not to baby? My long-term, committed partner and I are discussing having kids. We are both deeply undecided on the topic. We love our friends’ kids, but we’ve always been in a position where we can hand them back whenever they start to get fussy. The concept (creating a life who you get to raise into their own person) seems fantastic, but the day-to-day seems exhausting. We’ve got a pretty good life with the two of us and our dogs. Between biology and career demands, we’ve got about two years to decide whether to try to have a kid. We just don’t know how to make that decision. Any advice?
A: Why not err on the side of caution? You’ve got a pretty good life now: You love spending time with your friends’ kids and will get to be part of their lives as they grow up, you regularly get an uninterrupted night’s sleep, and you aren’t sure you’re up for (or interested in) the nitty-gritty details of child-rearing. So why not keep the life you like?
If you feel completely stuck on the subject, it might help to imagine both sets of best- and worst-case scenarios. Imagine yourself in your 50s and 60s, never having had children, experiencing regret and a sense of loss—how would you deal with that loss? What resources would be available to you? How might you channel some of those frustrated hopes and desires? How much does this idea pain you? Then imagine yourself in your 50s and 60s having had children and experiencing regret, with the same set of questions. Does one possible worst-case scenario seem significantly worse than the other? Does one of the best-case scenarios fill you with unexpected longing? It’s unlikely that either choice would come regret-free, especially over the course of a long life, so if you’ve weighed the pros and cons back and forth, discussed it endlessly with your partner, canvassed your friends, and still feel torn, I think the best way to clarify what you want is to ask yourself, “Which set of regrets do I think I can live with?”
Q. Hostage gifts: I’m going through a bitter divorce and custody battle, and my ex and his family, who only have supervised visitation rights with the children like to get them “gifts” that stay at their home. I’m trying to not think about it, but it feels like an added layer of disrespect because the items I send with them get soiled, sometimes lost, and occasionally forgotten, and yet they tout these “gifts” that the kids cannot use six days a week. I just feel like if I could understand the motivation it would help me keep cool about it. Can you help explain these actions?
A: I certainly can’t claim to know exactly what’s going on inside your former in-laws’ heads. Maybe they’re doing this purely to spite you; maybe they’re doing it solely because they love the kids with a generous and ennobling love. Maybe it’s 40 percent spite, 60 percent ennobling love. But unless your kids are regularly coming back from your ex’s house with shattered eyeglasses and no shoes, I’d attribute the occasional soiled or lost item to the regular wear-and-tear of childhood. It may be that you just didn’t register such losses in quite the same way when you were with the kids every day, and they seem more noticeable when you tot them up at the end of a weekend away. Even if there is an element of vindictiveness (passive or otherwise) to this carelessness, unless it’s really affecting your kids’ health and safety during these visits, I’d save your energy for more important battles. As for the gifts they keep at their own homes, since you can’t exercise any control on that front, I’d encourage you to spend as little time dwelling on it as possible.
Possibly the answer lies in your own question—your in-laws and your ex get the kids gifts they can’t use six days a week because they don’t get to see the kids six days a week. It’s not at all unusual for someone to try to make up for an inability to be together in person regularly with extra attention, praise, money, gifts, and the like. That’s probably why! None of this is to say that your former in-laws and ex must be hard done by, that you ought to feel sorry for them, or anything like that. I don’t know the terms of your divorce or why their visits are supervised, so I’m not encouraging you to let this go because I think you’ve been making unnecessary trouble. I just don’t think there’s much you can do about it, and it makes a fair amount of intuitive sense that they would try to get the kids presents now that they don’t see them as often. That’s it!
Q. Evaluation: I’m a college student who has been working on a semester-long group project with multiple steps, which is about to be complete. We have to fill out anonymous evaluations of everyone in the group, and the results of the evaluation count for 10 percent of our grade. I enjoyed working with most of the group, except one person. This person was constantly missing deadlines, not doing their share of work, getting on group video chats and yelling at us, badmouthing other group members, and generally just being a really hostile and difficult person. When they did do their share of the work, it was of poor quality and had to be redone. They would blow up the second someone even tried to give constructive criticism.
I’ve never given anyone a bad evaluation before. Normally I might not hesitate, but the pandemic has been really stressful for everyone. I recently found out this person works as a cook in a major local hospital, which can’t be easy during this whole ordeal. I have struggled with schoolwork this year as well (I work two jobs), so I guess I’m sympathetic, although I didn’t call my group mates in the middle of the night to yell obscenities at them. This person has also mentioned they’re regularly going to parties. I genuinely think they need someone to step in to tell them their behavior when working in a group is unacceptable. I’ve also wondered if they have trouble picking up on social cues. I know my other group members are rating this person poorly. Do I give them a bad review and they get a bad grade, or give them 10/10 and just move on?
A: Do not give a 10/10 score to someone who calls you in the middle of the night to curse you out. Having problems, even serious ones, might contextualize such behavior but doesn’t justify it. “It’s OK that I screamed obscenities at everyone because I’m stressed out” is not a worthwhile defense, and you’re not going to single-handedly determine this person’s grade with a single report. (And don’t waste your time wondering if this bad behavior is coupled with “trouble” picking up on social cues; it’s not a “cue” but a pretty universal rule that you shouldn’t scream at people you work with.) Evaluate them honestly, and speak to your professor about your concerns that your classmate’s behavior requires a more serious intervention, since your attempts to offer constructive criticism seem to have been shot down rather quickly. That doesn’t mean an honest review has to list every single thing this person has ever done wrong, either; neither your professor nor your university administration is going to be able to turn this person into Gallant from Highlights for Children overnight.* Be honest, be succinct, and since your report would neither endanger your classmate’s livelihood nor jeopardize a significant portion of their grade, do it with a clear conscience.
Q. Re: I hate my wife’s cooking! Buy a wok and a stir-fry cookbook and start cooking together instead of taking turns. This sounds like a texture problem more than a healthy/unhealthy problem, and cooked veggies can still be crispy and flavorful. Alternatively, treat everything she makes as a dip and eat it on tortilla chips.
A: Yeah, I didn’t want to get too caught up in the weeds of vegetarian-recipe-suggesting because there’s a bigger emotional problem to deal with first, but try the Moosewood Cookbook, or anything by Bryant Terry, or Madhur Jaffrey’s vegetarian books, or Lucky Peach … there are so many great options out there! And they don’t require much more work than she’s already putting into the gruel! (Deborah Madison is a classic choice, too.*)
Q. Re: Conflicted Christmas: As someone estranged from a parent who for a long time persisted in calling, emailing, and sending me packages even after I cut ties, I would just point out that receiving gifts from people you have expressed a desire to not hear from can be very triggering and painful. I think if the younger grandkids express positive appreciation of the contact with the grandmom, she can continue sending them gifts, but she should respect the need for space that her daughter and granddaughter have expressed.
A: That’s a good point, and one I hadn’t considered in my original answer. I’m not sure I trust the letter writer’s ability to accurately review her own behavior, but if she has a history of either withholding or strategically choosing gifts in order to extract compliance or agreement from her relatives, it might be better to not send her eldest granddaughter a gift at all.
Q. Re: Family ally: FYI, the “once removed” refers to generations. Think of the fact that you and your first cousin are the same generation. His son is your “first cousin once removed” because he is one generation younger than you. If he has a child of his own, that child would be your “first cousin twice removed,” because they are two generations away from you and your first cousin. In contrast, a second cousin is someone who shares only a great grandparent with you, not a grandparent like your first cousin does. I like to think of it that the “removes” go up and down, and the “seconds” and “thirds” go side to side on a family tree.
A: I appreciate this, and I hope it’s helpful to the letter writer, but I know it will slide out of my brain in the next 20 minutes, no matter what I do. (I suppose one benefit of estrangement is that all of my relatives are now removed! Here all week, folks.)
Q. Update: The longest text: Thanks for answering my question! I really appreciated your answer, Danny, and also the commenters’ contributions. I’m gonna try firmer boundaries and the massaged macro!
To answer those queries, loneliness isn’t the culprit! Mom has a rich social life with neighbors, relatives, and book clubs—but also frames her identity around having been a proud helicopter parent to her only child. (And yes, she’s pecking out those texts by hand on her iPad.)
I’ll keep trying (and I’ll keep going to therapy). Thank you!
A: Congratulations on the therapy! And this is great news, because if your mom has a rich social life, you can give yourself additional permission to stop worrying when you ignore a message for a while or tell her you don’t have time to talk. She can go enjoy her riches! Helicopters have to leave the nest someday.
Correction, Nov. 23, 2020: This article originally misidentified Highlights for Children magazine as Highlights for Kids and misspelled Deborah Madison’s last name.
Discuss this column on our Facebook page!
Classic Prudie
Q. Confused, not curious: I had a really big crush on this guy back in eighth grade. He told me he was gay, and we’ve been best friends ever since. My parents know he’s gay, so we don’t have to follow rules I would normally have to follow if I had a guy over. He is really affectionate, and he likes to cuddle. Recently he has started kissing me, and he feels me up sometimes too. I asked him what was going on, and he said he was just curious. I thought it was weird that he would be curious about what a girl felt like if he was attracted to guys, but I didn’t say anything else. Well, yesterday we had sex. Read what Prudie had to say.
Get the audiobook edition of Danny M. Lavery’s latest book. Save $5 when you buy it from Slate—and listen in your preferred podcast app!
Slate Plus members get extra questions, Prudie Uncensored with Nicole Cliffe, and full-length podcast episodes every week.
Join
');
}
function tryGetCriteoFastBid() {
try {
var fastBidStorageKey = "criteo_fast_bid",
hashPrefix = "// Hash: ",
fastBidFromStorage = storage.getDataFromLocalStorage(fastBidStorageKey),
firstLineEndPosition,
firstLine,
publisherTagHash,
publisherTag;
null !== fastBidFromStorage && (firstLineEndPosition = fastBidFromStorage.indexOf("n"), firstLine = fastBidFromStorage.substr(0, firstLineEndPosition).trim(), firstLine.substr(0, hashPrefix.length) !== hashPrefix ? (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("No hash found in FastBid"), storage.removeDataFromLocalStorage(fastBidStorageKey)) : (publisherTagHash = firstLine.substr(hashPrefix.length), publisherTag = fastBidFromStorage.substr(firstLineEndPosition + 1), Object(__WEBPACK_IMPORTED_MODULE_6_criteo_direct_rsa_validate_build_verify_js__.verify)(publisherTag, publisherTagHash, FAST_BID_PUBKEY_N, FAST_BID_PUBKEY_E) ? (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logInfo("Using Criteo FastBid"), eval(publisherTag)) : (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("Invalid Criteo FastBid found"), storage.removeDataFromLocalStorage(fastBidStorageKey))));
} catch (t) {}
}
Object(__WEBPACK_IMPORTED_MODULE_1__src_adapters_bidderFactory_js__.registerBidder)(spec);
},
377: function _(t, e, r) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var a = r(378),
n = r(379);
e.verify = function (t, e, r, i) {
var s = new a.BigInteger(a.b64toHex(e)),
o = new a.BigInteger(a.b64toHex(r)),
_ = s.modPowInt(i, o);
return a.removeExtraSymbols(_.toHexString()) === n.Sha256.hash(t);
};
},
378: function _(t, e, r) {
"use strict";
var i;
Object.defineProperty(e, "__esModule", {
value: !0
});
var s = (T.prototype.toHexString = function () {
if (this.s < 0) return "-" + this.negate().toHexString();
var t,
e = !1,
r = "",
i = this.t,
s = this.DB - i * this.DB % 4;
if (0 < i--) for (s < this.DB && 0 < (t = this[i] >> s) && (e = !0, r = c(t)); 0 <= i;) {
s < 4 ? (t = (this[i] & (1 << s) - 1) << 4 - s, t |= this[--i] >> (s += this.DB - 4)) : (t = this[i] >> (s -= 4) & 15, s <= 0 && (s += this.DB, --i)), 0 < t && (e = !0), e && (r += c(t));
}
return e ? r : "0";
}, T.prototype.fromHexString = function (t) {
if (null !== t) {
this.t = 0, this.s = 0;
for (var e = t.length, r = !1, i = 0; 0 <= --e;) {
var s = n(t, e);
s < 0 ? "-" == t.charAt(e) && (r = !0) : (r = !1, 0 == i ? this[this.t++] = s : i + 4 > this.DB ? (this[this.t - 1] |= (s & (1 << this.DB - i) - 1) << i, this[this.t++] = s >> this.DB - i) : this[this.t - 1] |= s << i, (i += 4) >= this.DB && (i -= this.DB));
}
this.clamp(), r && T.ZERO.subTo(this, this);
}
}, T.prototype.negate = function () {
var t = b();
return T.ZERO.subTo(this, t), t;
}, T.prototype.abs = function () {
return this.s < 0 ? this.negate() : this;
}, T.prototype.mod = function (t) {
var e = b();
return this.abs().divRemTo(t, null, e), this.s < 0 && 0 < e.compareTo(T.ZERO) && t.subTo(e, e), e;
}, T.prototype.copyTo = function (t) {
for (var e = this.t - 1; 0 <= e; --e) {
t[e] = this[e];
}
t.t = this.t, t.s = this.s;
}, T.prototype.lShiftTo = function (t, e) {
for (var r = t % this.DB, i = this.DB - r, s = (1 << i) - 1, o = Math.floor(t / this.DB), _ = this.s << r & this.DM, a = this.t - 1; 0 <= a; --a) {
e[a + o + 1] = this[a] >> i | _, _ = (this[a] & s) << r;
}
for (a = o - 1; 0 <= a; --a) {
e[a] = 0;
}
e[o] = _, e.t = this.t + o + 1, e.s = this.s, e.clamp();
}, T.prototype.invDigit = function () {
if (this.t < 1) return 0;
var t = this[0];
if (0 == (1 & t)) return 0;
var e = 3 & t;
return 0 < (e = (e = (e = (e = e * (2 - (15 & t) * e) & 15) * (2 - (255 & t) * e) & 255) * (2 - ((65535 & t) * e & 65535)) & 65535) * (2 - t * e % this.DV) % this.DV) ? this.DV - e : -e;
}, T.prototype.dlShiftTo = function (t, e) {
for (var r = this.t - 1; 0 <= r; --r) {
e[r + t] = this[r];
}
for (r = t - 1; 0 <= r; --r) {
e[r] = 0;
}
e.t = this.t + t, e.s = this.s;
}, T.prototype.squareTo = function (t) {
for (var e = this.abs(), r = t.t = 2 * e.t; 0 <= --r;) {
t[r] = 0;
}
for (r = 0; r < e.t - 1; ++r) {
var i = e.am(r, e[r], t, 2 * r, 0, 1);
(t[r + e.t] += e.am(r + 1, 2 * e[r], t, 2 * r + 1, i, e.t - r - 1)) >= e.DV && (t[r + e.t] -= e.DV, t[r + e.t + 1] = 1);
}
0 < t.t && (t[t.t - 1] += e.am(r, e[r], t, 2 * r, 0, 1)), t.s = 0, t.clamp();
}, T.prototype.multiplyTo = function (t, e) {
var r = this.abs(),
i = t.abs(),
s = r.t;
for (e.t = s + i.t; 0 <= --s;) {
e[s] = 0;
}
for (s = 0; s < i.t; ++s) {
e[s + r.t] = r.am(0, i[s], e, s, 0, r.t);
}
e.s = 0, e.clamp(), this.s != t.s && T.ZERO.subTo(e, e);
}, T.prototype.divRemTo = function (t, e, r) {
var i = t.abs();
if (!(i.t <= 0)) {
var s = this.abs();
if (s.t < i.t) return null != e && e.fromHexString("0"), void (null != r && this.copyTo(r));
null == r && (r = b());
var o = b(),
_ = this.s,
a = t.s,
n = this.DB - D(i[i.t - 1]);
0 < n ? (i.lShiftTo(n, o), s.lShiftTo(n, r)) : (i.copyTo(o), s.copyTo(r));
var p = o.t,
c = o[p - 1];
if (0 != c) {
var d = c * (1 << this.F1) + (1 < p ? o[p - 2] >> this.F2 : 0),
u = this.FV / d,
h = (1 << this.F1) / d,
l = 1 << this.F2,
f = r.t,
E = f - p,
v = null == e ? b() : e;
for (o.dlShiftTo(E, v), 0 <= r.compareTo(v) && (r[r.t++] = 1, r.subTo(v, r)), T.ONE.dlShiftTo(p, v), v.subTo(o, o); o.t < p;) {
o[o.t++] = 0;
}
for (; 0 <= --E;) {
var m = r[--f] == c ? this.DM : Math.floor(r[f] * u + (r[f - 1] + l) * h);
if ((r[f] += o.am(0, m, r, E, 0, p)) < m) for (o.dlShiftTo(E, v), r.subTo(v, r); r[f] < --m;) {
r.subTo(v, r);
}
}
null != e && (r.drShiftTo(p, e), _ != a && T.ZERO.subTo(e, e)), r.t = p, r.clamp(), 0 < n && r.rShiftTo(n, r), _ < 0 && T.ZERO.subTo(r, r);
}
}
}, T.prototype.rShiftTo = function (t, e) {
e.s = this.s;
var r = Math.floor(t / this.DB);
if (r >= this.t) e.t = 0;else {
var i = t % this.DB,
s = this.DB - i,
o = (1 << i) - 1;
e[0] = this[r] >> i;
for (var _ = r + 1; _ < this.t; ++_) {
e[_ - r - 1] |= (this[_] & o) << s, e[_ - r] = this[_] >> i;
}
0 < i && (e[this.t - r - 1] |= (this.s & o) << s), e.t = this.t - r, e.clamp();
}
}, T.prototype.drShiftTo = function (t, e) {
for (var r = t; r < this.t; ++r) {
e[r - t] = this[r];
}
e.t = Math.max(this.t - t, 0), e.s = this.s;
}, T.prototype.subTo = function (t, e) {
for (var r = 0, i = 0, s = Math.min(t.t, this.t); r < s;) {
i += this[r] - t[r], e[r++] = i & this.DM, i >>= this.DB;
}
if (t.t < this.t) {
for (i -= t.s; r < this.t;) {
i += this[r], e[r++] = i & this.DM, i >>= this.DB;
}
i += this.s;
} else {
for (i += this.s; r < t.t;) {
i -= t[r], e[r++] = i & this.DM, i >>= this.DB;
}
i -= t.s;
}
e.s = i < 0 ? -1 : 0, i < -1 ? e[r++] = this.DV + i : 0 < i && (e[r++] = i), e.t = r, e.clamp();
}, T.prototype.clamp = function () {
for (var t = this.s & this.DM; 0 < this.t && this[this.t - 1] == t;) {
--this.t;
}
}, T.prototype.modPowInt = function (t, e) {
var r = new (t < 256 || e.isEven() ? d : h)(e);
return this.exp(t, r);
}, T.prototype.exp = function (t, e) {
if (4294967295 < t || t < 1) return T.ONE;
var r,
i = b(),
s = b(),
o = e.convert(this),
_ = D(t) - 1;
for (o.copyTo(i); 0 <= --_;) {
e.sqrTo(i, s), 0 < (t & 1 << _) ? e.mulTo(s, o, i) : (r = i, i = s, s = r);
}
return e.revert(i);
}, T.prototype.isEven = function () {
return 0 == (0 < this.t ? 1 & this[0] : this.s);
}, T.prototype.compareTo = function (t) {
var e = this.s - t.s;
if (0 != e) return e;
var r = this.t;
if (0 != (e = r - t.t)) return this.s < 0 ? -e : e;
for (; 0 <= --r;) {
if (0 != (e = this[r] - t[r])) return e;
}
return 0;
}, T.prototype.am1 = function (t, e, r, i, s, o) {
for (; 0 <= --o;) {
var _ = e * this[t++] + r[i] + s;
s = Math.floor(_ / 67108864), r[i++] = 67108863 & _;
}
return s;
}, T.prototype.am2 = function (t, e, r, i, s, o) {
for (var _ = 32767 & e, a = e >> 15; 0 <= --o;) {
var n = 32767 & this[t],
p = this[t++] >> 15,
c = a * n + p * _;
s = ((n = _ * n + ((32767 & c) << 15) + r[i] + (1073741823 & s)) >>> 30) + (c >>> 15) + a * p + (s >>> 30), r[i++] = 1073741823 & n;
}
return s;
}, T.prototype.am3 = function (t, e, r, i, s, o) {
for (var _ = 16383 & e, a = e >> 14; 0 <= --o;) {
var n = 16383 & this[t],
p = this[t++] >> 14,
c = a * n + p * _;
s = ((n = _ * n + ((16383 & c) << 14) + r[i] + s) >> 28) + (c >> 14) + a * p, r[i++] = 268435455 & n;
}
return s;
}, T);
function T(t) {
null !== t && this.fromHexString(t);
}
function b() {
return new s(null);
}
function D(t) {
var e,
r = 1;
return 0 != (e = t >>> 16) && (t = e, r += 16), 0 != (e = t >> 8) && (t = e, r += 8), 0 != (e = t >> 4) && (t = e, r += 4), 0 != (e = t >> 2) && (t = e, r += 2), 0 != (e = t >> 1) && (t = e, r += 1), r;
}
e.BigInteger = s, e.nbi = b, e.nbits = D;
for (var o = [], _ = "0".charCodeAt(0), a = 0; a <= 9; ++a) {
o[_++] = a;
}
for (_ = "a".charCodeAt(0), a = 10; a < 36; ++a) {
o[_++] = a;
}
for (_ = "A".charCodeAt(0), a = 10; a < 36; ++a) {
o[_++] = a;
}
function n(t, e) {
var r = o[t.charCodeAt(e)];
return null == r ? -1 : r;
}
e.intAt = n;
var p = "0123456789abcdefghijklmnopqrstuvwxyz";
function c(t) {
return p.charAt(t);
}
e.int2char = c;
e.b64toHex = function (t) {
for (var e = "", r = 0, i = 0, s = 0; s < t.length && "=" != t.charAt(s); ++s) {
var o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t.charAt(s));
o < 0 || (r = 0 == r ? (e += c(o >> 2), i = 3 & o, 1) : 1 == r ? (e += c(i << 2 | o >> 4), i = 15 & o, 2) : 2 == r ? (e += c(i), e += c(o >> 2), i = 3 & o, 3) : (e += c(i << 2 | o >> 4), e += c(15 & o), 0));
}
return 1 == r && (e += c(i << 2)), e;
}, e.removeExtraSymbols = function (t) {
return t.replace(/^1f+00/, "").replace("3031300d060960864801650304020105000420"https://r.search.yahoo.com/,"");
};
var d = (u.prototype.convert = function (t) {
return t.s < 0 || 0 <= t.compareTo(this.m) ? t.mod(this.m) : t;
}, u.prototype.revert = function (t) {
return t;
}, u.prototype.reduce = function (t) {
t.divRemTo(this.m, null, t);
}, u.prototype.mulTo = function (t, e, r) {
t.multiplyTo(e, r), this.reduce(r);
}, u.prototype.sqrTo = function (t, e) {
t.squareTo(e), this.reduce(e);
}, u);
function u(t) {
this.m = t;
}
var h = (l.prototype.convert = function (t) {
var e = b();
return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && 0 < e.compareTo(s.ZERO) && this.m.subTo(e, e), e;
}, l.prototype.revert = function (t) {
var e = b();
return t.copyTo(e), this.reduce(e), e;
}, l.prototype.reduce = function (t) {
for (; t.t <= this.mt2;) {
t[t.t++] = 0;
}
for (var e = 0; e < this.m.t; ++e) {
var r = 32767 & t[e],
i = r * this.mpl + ((r * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM;
for (t[r = e + this.m.t] += this.m.am(0, i, t, e, 0, this.m.t); t[r] >= t.DV;) {
t[r] -= t.DV, t[++r]++;
}
}
t.clamp(), t.drShiftTo(this.m.t, t), 0 <= t.compareTo(this.m) && t.subTo(this.m, t); }, l.prototype.mulTo = function (t, e, r) { t.multiplyTo(e, r), this.reduce(r); }, l.prototype.sqrTo = function (t, e) { t.squareTo(e), this.reduce(e); }, l); function l(t) { this.m = t, this.mp = t.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << t.DB - 15) - 1, this.mt2 = 2 * t.t; } function f(t) { var e = b(); return e.fromHexString(t.toString()), e; } e.nbv = f, s.ZERO = f(0), s.ONE = f(1), i = "Microsoft Internet Explorer" == navigator.appName ? (s.prototype.am = s.prototype.am2, 30) : "Netscape" != navigator.appName ? (s.prototype.am = s.prototype.am1, 26) : (s.prototype.am = s.prototype.am3, 28), s.prototype.DB = i, s.prototype.DM = (1 << i) - 1, s.prototype.DV = 1 << i; s.prototype.FV = Math.pow(2, 52), s.prototype.F1 = 52 - i, s.prototype.F2 = 2 * i - 52; }, 379: function _(t, e, r) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }); var i = (y.hash = function (t) { t = y.utf8Encode(t || ""); for (var e = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298], r = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225], i = (t += String.fromCharCode(128)).length / 4 + 2, s = Math.ceil(i / 16), o = new Array(s), _ = 0; _ < s; _++) { o[_] = new Array(16); for (var a = 0; a < 16; a++) { o[_][a] = t.charCodeAt(64 * _ + 4 * a) << 24 | t.charCodeAt(64 * _ + 4 * a + 1) << 16 | t.charCodeAt(64 * _ + 4 * a + 2) << 8 | t.charCodeAt(64 * _ + 4 * a + 3) << 0; } } var n = 8 * (t.length - 1) / Math.pow(2, 32), p = 8 * (t.length - 1) >>> 0;
for (o[s - 1][14] = Math.floor(n), o[s - 1][15] = p, _ = 0; _ < s; _++) {
for (var c = new Array(64), d = 0; d < 16; d++) {
c[d] = o[_][d];
}
for (d = 16; d < 64; d++) {
c[d] = y.q1(c[d - 2]) + c[d - 7] + y.q0(c[d - 15]) + c[d - 16] >>> 0;
}
for (var u = r[0], h = r[1], l = r[2], f = r[3], E = r[4], v = r[5], m = r[6], T = r[7], d = 0; d < 64; d++) {
var b = T + y.z1(E) + y.Ch(E, v, m) + e[d] + c[d],
D = y.z0(u) + y.Maj(u, h, l);
T = m, m = v, v = E, E = f + b >>> 0, f = l, l = h, h = u, u = b + D >>> 0;
}
r[0] = r[0] + u >>> 0, r[1] = r[1] + h >>> 0, r[2] = r[2] + l >>> 0, r[3] = r[3] + f >>> 0, r[4] = r[4] + E >>> 0, r[5] = r[5] + v >>> 0, r[6] = r[6] + m >>> 0, r[7] = r[7] + T >>> 0;
}
for (var P = new Array(r.length), T = 0; T < r.length; T++) {
P[T] = ("00000000" + r[T].toString(16)).slice(-8);
}
return P.join("");
}, y.utf8Encode = function (e) {
try {
return new TextEncoder().encode(e).reduce(function (t, e) {
return t + String.fromCharCode(e);
}, "");
} catch (t) {
return unescape(encodeURIComponent(e));
}
}, y.ROTR = function (t, e) {
return e >>> t | e << 32 - t;
}, y.z0 = function (t) {
return y.ROTR(2, t) ^ y.ROTR(13, t) ^ y.ROTR(22, t);
}, y.z1 = function (t) {
return y.ROTR(6, t) ^ y.ROTR(11, t) ^ y.ROTR(25, t);
}, y.q0 = function (t) {
return y.ROTR(7, t) ^ y.ROTR(18, t) ^ t >>> 3;
}, y.q1 = function (t) {
return y.ROTR(17, t) ^ y.ROTR(19, t) ^ t >>> 10;
}, y.Ch = function (t, e, r) {
return t & e ^ ~t & r;
}, y.Maj = function (t, e, r) {
return t & e ^ t & r ^ e & r;
}, y);
function y() {}
e.Sha256 = i;
}
}, [375]);
pbjsChunk([218], {
501: function _(e, r, t) {
e.exports = t(502);
},
502: function _(e, r, t) {
"use strict";
Object.defineProperty(r, "__esModule", {
value: !0
}), t.d(r, "spec", function () {
return c;
});
var F = t(0),
j = t(2),
B = t(3),
i = t(10),
l = t.n(i),
n = t(503),
s = t.n(n),
a = t(1);
function J(e) {
return function (e) {
if (Array.isArray(e)) return o(e);
}(e) || function (e) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e);
}(e) || function (e, r) {
if (!e) return;
if ("string" == typeof e) return o(e, r);
var t = Object.prototype.toString.call(e).slice(8, -1);
"Object" === t && e.constructor && (t = e.constructor.name);
if ("Map" === t || "Set" === t) return Array.from(e);
if ("Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return o(e, r);
}(e) || function () {
throw new TypeError("Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}();
}
function o(e, r) {
(null == r || r > e.length) && (r = e.length);
for (var t = 0, i = new Array(r); t < r; t++) { i[t] = e[t]; } return i; } function d(r, e) { var t, i = Object.keys(r); return Object.getOwnPropertySymbols && (t = Object.getOwnPropertySymbols(r), e && (t = t.filter(function (e) { return Object.getOwnPropertyDescriptor(r, e).enumerable; })), i.push.apply(i, t)), i; } function M(n) { for (var e = 1; e < arguments.length; e++) { var s = null != arguments[e] ? arguments[e] : {}; e % 2 ? d(Object(s), !0).forEach(function (e) { var r, t, i; r = n, i = s[t = e], t in r ? Object.defineProperty(r, t, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : r[t] = i; }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(n, Object.getOwnPropertyDescriptors(s)) : d(Object(s)).forEach(function (e) { Object.defineProperty(n, e, Object.getOwnPropertyDescriptor(s, e)); }); } return n; } function N(e) { return (N = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) { return _typeof(e); } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); })(e); } var p = [j.b, j.d], f = 100, g = 300, b = 3600, h = !0, v = { JPY: 1 }; function C(e) { var r = {}; return r.id = e.bidId, r.ext = {}, r.ext.siteID = e.params.siteId, !e.params.hasOwnProperty("id") || "string" != typeof e.params.id && "number" != typeof e.params.id ? r.ext.sid = "".concat(e.params.size[0], "x").concat(e.params.size[1]) : r.ext.sid = String(e.params.id), e.params.hasOwnProperty("bidFloor") && e.params.hasOwnProperty("bidFloorCur") && (r.bidfloor = e.params.bidFloor, r.bidfloorcur = e.params.bidFloorCur), r; } function m(e) { return Array.isArray(e) && 2 === e.length && s()(e[0]) && s()(e[1]); } function T(e, r) { if (m(e)) return e[0] === r[0] && e[1] === r[1]; for (var t = 0; t < e.length; t++) { if (e[t][0] === r[0] && e[t][1] === r[1]) return 1; } } function A(e, r, t, i) { var n = [], s = "https://htlb.casalemedia.com/cygnus", a = {}, o = e[0].userId; if (o && "object" === N(o) && o.idl_env && function (e, r, t, i, n, s) { if (t) return r[n] = 1, e.push({ source: i, uids: [{ id: t, ext: { rtiPartner: s } }] }); F.logWarn("Tried to add a user ID from Prebid, the ID received was null"); }(n, a, o.idl_env, "liveramp.com"https://r.search.yahoo.com/,"LiveRampIp"https://r.search.yahoo.com/,"idl"), window.headertag && "function" == typeof window.headertag.getIdentityInfo) { var d, p = window.headertag.getIdentityInfo(); if (p && "object" === N(p)) for (var m in p) { p.hasOwnProperty(m) && (a.hasOwnProperty(m) || !(d = p[m]).responsePending && d.data && "object" === N(d.data) && Object.keys(d.data).length && n.push(d.data)); } } var c, u = {}; u.id = e[0].bidderRequestId, u.site = {}, u.ext = {}, u.ext.source = "prebid", u.ext.ixdiag = {}, e[0].schain && (u.source = { ext: { schain: e[0].schain } }), 0 < n.length && (u.user = {}, u.user.eids = n), document.referrer && "" !== document.referrer && (u.site.ref = document.referrer), r && (r.gdprConsent && ((c = r.gdprConsent).hasOwnProperty("gdprApplies") && (u.regs = { ext: { gdpr: c.gdprApplies ? 1 : 0 } }), c.hasOwnProperty("consentString") && (u.user = u.user || {}, u.user.ext = { consent: c.consentString || "" })), r.uspConsent && F.deepSetValue(u, "regs.ext.us_privacy", r.uspConsent), r.refererInfo && (u.site.page = r.refererInfo.referer)); var y = {}, l = r && r.bidderCode || "ix", f = B.b.getConfig(l); if (f) { if ("object" === N(f.firstPartyData)) { var g = f.firstPartyData, b = "?"; for (var h in g) { g.hasOwnProperty(h) && (b += "".concat(encodeURIComponent(h), "=").concat(encodeURIComponent(g[h]), "&")); } b = b.slice(0, -1), u.site.page += b; } "number" == typeof f.timeout && (y.t = f.timeout), "boolean" == typeof f.detectMissingSizes ? u.ext.ixdiag.dms = f.detectMissingSizes : u.ext.ixdiag.dms = !0; } y.s = e[0].params.siteId, y.v = i, y.ac = "j", y.sd = 1, 8.1 === i && (y.nf = 1); var v = [], O = { method: "GET", url: s, data: y }, x = new Blob(["".concat(O.url).concat(F.parseQueryStringParameters(M(M({}, O.data), {}, { r: JSON.stringify(u) })))]).size, I = x, w = 0, P = 0, S = 0; u.ext.ixdiag.msd = 0, u.ext.ixdiag.msi = 0, u.imp = []; for (var z, j, C, T, A, E = 0, D = Object.keys(t), R = []; E < D.length && v.length < 4;) { t[D[E]].hasOwnProperty("missingCount") && (S = t[D[E]].missingCount), function (e, r) { var t = new Blob([encodeURIComponent(JSON.stringify(e))]).size; if (t < r) return; for (; r < t;) { e.hasOwnProperty("missingImps") && 0 < e.missingImps.length ? e.missingImps.pop() : e.hasOwnProperty("ixImps") && 0 < e.ixImps.length && e.ixImps.pop(), t = new Blob([encodeURIComponent(JSON.stringify(e))]).size; } }(t[D[E]], 8e3 - x), t[D[E]].hasOwnProperty("missingImps") && (P = t[D[E]].missingImps.length), (I += new Blob([encodeURIComponent(JSON.stringify(t[D[E]]))]).size) < 8e3 ? ((z = u.imp).push.apply(z, J(t[D[E]].ixImps)), u.ext.ixdiag.msd += S, u.ext.ixdiag.msi += P, t[D[E]].hasOwnProperty("missingImps") && R.push.apply(R, J(t[D[E]].missingImps)), E++) : (C = F.deepClone(y), (j = u.imp).push.apply(j, J(R)), u.ext.ixdiag.sn = w, C.sn = w, w++, C.r = JSON.stringify(u), v.push({ method: "GET", url: s, data: C }), R = [], I = x, u.imp = [], P = S = 0, u.ext.ixdiag.msd = 0, u.ext.ixdiag.msi = 0); } return x < I && I < 8e3 && v.length < 4 && (A = F.deepClone(y), (T = u.imp).push.apply(T, J(R)), 0 < v.length && (u.ext.ixdiag.sn = w, A.sn = w), A.r = JSON.stringify(u), v.push({ method: "GET", url: s, data: A })), v; } function E(e, r) { for (var t = 0; t < e.length; t++) { if (r[0] == e[t][0] && r[1] == e[t][1]) return e.splice(t, 1), 1; } } var c = { code: "ix", gvlid: 10, supportedMediaTypes: p, isBidRequestValid: function isBidRequestValid(e) { if (!m(e.params.size)) return F.logError("ix bidder params: bid size has invalid format."), !1; if (!T(e.sizes, e.params.size)) return F.logError("ix bidder params: bid size is not included in ad unit sizes."), !1; if (e.hasOwnProperty("mediaType") && !F.contains(p, e.mediaType)) return !1; if (e.hasOwnProperty("mediaTypes") && !F.deepAccess(e, "mediaTypes.banner.sizes") && !F.deepAccess(e, "mediaTypes.video.playerSize")) return !1; if ("string" != typeof e.params.siteId && "number" != typeof e.params.siteId) return F.logError("ix bidder params: siteId must be string or number value."), !1; var r, t, i = e.params.hasOwnProperty("bidFloor"), n = e.params.hasOwnProperty("bidFloorCur"); return !!(!i && !n || i && n && (r = e.params.bidFloor, t = e.params.bidFloorCur, Boolean("number" == typeof r && "string" == typeof t && t.match(/^[A-Z]{3}$/)))) || (F.logError("ix bidder params: bidFloor / bidFloorCur parameter has invalid format."), !1); }, buildRequests: function buildRequests(e, r) { for (var t, i, n, s, a, o, d, p, m, c, u, y, l, f = [], g = {}, b = {}, h = null, v = {}, O = M(M({}, { detectMissingSizes: !0 }), B.b.getConfig("ix")), x = 0; x < e.length; x++) { (h = e[x]).mediaType !== j.d && !F.deepAccess(h, "mediaTypes.video") || (h.mediaType === j.d || T(h.mediaTypes.video.playerSize, h.params.size) ? (b.hasOwnProperty(h.transactionId) || (b[h.transactionId] = {}), b[h.transactionId].hasOwnProperty("ixImps") || (b[h.transactionId].ixImps = []), b[h.transactionId].ixImps.push(function (e) { var r = C(e); r.video = F.deepClone(e.params.video), r.video.w = e.params.size[0], r.video.h = e.params.size[1]; var t = F.deepAccess(e, "mediaTypes.video.context"); return t && ("instream" === t ? r.video.placement = 1 : "outstream" === t ? r.video.placement = 4 : F.logWarn("ix bidder params: video context '".concat(t, "' is not supported"))), r; }(h))) : F.logError("Bid size is not included in video playerSize")), h.mediaType !== j.b && !F.deepAccess(h, "mediaTypes.banner") && (h.mediaType || h.mediaTypes) || (c = void 0, (c = C(m = h)).banner = {}, c.banner.w = m.params.size[0], c.banner.h = m.params.size[1], c.banner.topframe = F.inIframe() ? 0 : 1, t = c, g.hasOwnProperty(h.transactionId) || (g[h.transactionId] = {}), g[h.transactionId].hasOwnProperty("ixImps") || (g[h.transactionId].ixImps = []), g[h.transactionId].ixImps.push(t), O.hasOwnProperty("detectMissingSizes") && O.detectMissingSizes && (n = v, s = t, p = d = o = a = void 0, p = (i = h).transactionId, n.hasOwnProperty(p) ? (a = [], n[p].hasOwnProperty("missingSizes") && (a = n[p].missingSizes), E(a, i.params.size), n[p].missingSizes = a) : F.deepAccess(i, "mediaTypes.banner.sizes") && (E(o = F.deepClone(i.mediaTypes.banner.sizes), i.params.size), d = { missingSizes: o, impression: s }, n[p] = d))); } for (var I in v) { if (v.hasOwnProperty(I)) { var w = v[I].missingSizes; g.hasOwnProperty(I) || (g[I] = {}), g[I].hasOwnProperty("missingImps") || (g[I].missingImps = [], g[I].missingCount = 0); for (var P = v[I].impression, S = 0; S < w.length; S++) { var z = (u = P, y = w[S], l = void 0, (l = F.deepClone(u)).ext.sid = "".concat(y[0], "x").concat(y[1]), l.banner.w = y[0], l.banner.h = y[1], l); g[I].missingImps.push(z), g[I].missingCount++; } } } return 0 < Object.keys(g).length && f.push.apply(f, J(A(e, r, g, 7.2))), 0 < Object.keys(b).length && f.push.apply(f, J(A(e, r, b, 8.1))), f; }, interpretResponse: function interpretResponse(e, r) { var t = []; if (!e.hasOwnProperty("body") || !e.body.hasOwnProperty("seatbid")) return t; for (var i, n, s, a, o = e.body, d = o.seatbid, p = 0; p < d.length; p++) { if (d[p].hasOwnProperty("bid")) for (var m = d[p].bid, c = JSON.parse(r.data.r), u = 0; u < m.length; u++) { var y = function (r, e) { if (r) return l()(e, function (e) { return e.id === r; }); }(m[u].impid, c.imp); i = m[u], n = o.cur, s = y, a = void 0, a = {}, v.hasOwnProperty(n) ? a.cpm = i.price / v[n] : a.cpm = i.price / f, a.requestId = i.impid, a.dealId = F.deepAccess(i, "ext.dealid"), a.netRevenue = h, a.currency = n, a.creativeId = i.hasOwnProperty("crid") ? i.crid : "-", F.deepAccess(i, "ext.vasturl") ? (a.vastUrl = i.ext.vasturl, a.width = s.video.w, a.height = s.video.h, a.mediaType = j.d, a.ttl = b) : (a.ad = i.adm, a.width = i.w, a.height = i.h, a.mediaType = j.b, a.ttl = g), a.meta = {}, a.meta.networkId = F.deepAccess(i, "ext.dspid"), a.meta.brandId = F.deepAccess(i, "ext.advbrandid"), a.meta.brandName = F.deepAccess(i, "ext.advbrand"), i.adomain && 0 < i.adomain.length && (a.meta.advertiserDomains = i.adomain), t.push(a); } } return t; }, transformBidParams: function transformBidParams(e) { return F.convertTypes({ siteID: "number" }, e); }, getUserSyncs: function getUserSyncs(e) { return e.iframeEnabled ? [{ type: "iframe", url: "https://js-sec.indexww.com/um/ixmatch.html" }] : []; } }; Object(a.registerBidder)(c); } }, [501]); pbjsChunk([213], { 517: function _(e, t, r) { e.exports = r(518); }, 518: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "spec", function () { return l; }); var s = r(0), d = r(3), n = r(1), a = r(7); function g() { return (g = Object.assign || function (e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var n in r) { Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]); } } return e; }).apply(this, arguments); } var o, i, c, u = Object(a.b)(), l = { code: "kargo", isBidRequestValid: function isBidRequestValid(e) { return !(!e || !e.params) && !!e.params.placementId; }, buildRequests: function buildRequests(e, t) { var r, n = d.b.getConfig("currency"), a = n && n.adServerCurrency || "USD", o = {}, i = {}; s._each(e, function (e) { o[e.bidId] = e.params.placementId, i[e.bidId] = e.sizes; }), 0 < e.length && e[0].userId && e[0].userId.tdid && (r = e[0].userId.tdid); var c = g({}, { sessionId: l._getSessionId(), requestCount: l._getRequestCount(), timeout: t.timeout, currency: a, cpmGranularity: 1, timestamp: new Date().getTime(), cpmRange: { floor: 0, ceil: 20 }, bidIDs: o, bidSizes: i, prebidRawBidRequests: e }, l._getAllMetadata(r, t.uspConsent)), u = encodeURIComponent(JSON.stringify(c)); return g({}, t, { method: "GET", url: "".concat("https://krk.kargo.com"https://r.search.yahoo.com/,"/api/v2/bid"), data: "json=".concat(u), currency: a }); }, interpretResponse: function interpretResponse(e, t) { var r = e.body, n = []; for (var a in r) { var o = r[a], i = void 0; o.metadata && o.metadata.landingPageDomain && (i = { clickUrl: o.metadata.landingPageDomain, advertiserDomains: [o.metadata.landingPageDomain] }), n.push({ requestId: a, cpm: Number(o.cpm), width: o.width, height: o.height, ad: o.adm, ttl: 300, creativeId: o.id, dealId: o.targetingCustom, netRevenue: !0, currency: t.currency, meta: i }); } return n; }, getUserSyncs: function getUserSyncs(e) { var t = [], r = l._generateRandomUuid(), n = l._getClientId(); if (e.iframeEnabled && r && n) for (var a = 0; a < 5; a++) { t.push({ type: "iframe", url: "https://crb.kargo.com/api/v1/initsyncrnd/{UUID}?seed={SEED}&idx={INDEX}".replace("{UUID}", n).replace("{SEED}", r).replace("{INDEX}", a) }); } return t; }, _readCookie: function _readCookie(e) { if (!u.cookiesAreEnabled()) return null; for (var t = "".concat(e, "="), r = document.cookie.split(";"), n = 0; n < r.length; n++) { for (var a = r[n]; " " === a.charAt(0);) { a = a.substring(1, a.length); } if (0 === a.indexOf(t)) return a.substring(t.length, a.length); } return null; }, _getCrbFromCookie: function _getCrbFromCookie() { try { var e = JSON.parse(decodeURIComponent(l._readCookie("krg_crb"))); if (e && e.v) { var t = JSON.parse(atob(e.v)); if (t) return t; } return {}; } catch (e) { return {}; } }, _getCrbFromLocalStorage: function _getCrbFromLocalStorage() { try { return JSON.parse(atob(l._getLocalStorageSafely("krg_crb"))); } catch (e) { return {}; } }, _getCrb: function _getCrb() { var e = l._getCrbFromLocalStorage(); return Object.keys(e).length ? e : l._getCrbFromCookie(); }, _getKruxUserId: function _getKruxUserId() { return l._getLocalStorageSafely("kxkar_user"); }, _getKruxSegments: function _getKruxSegments() { return l._getLocalStorageSafely("kxkar_segs"); }, _getKrux: function _getKrux() { var e = l._getKruxSegments(), t = []; return e && (t = e.split(",")), { userID: l._getKruxUserId(), segments: t }; }, _getLocalStorageSafely: function _getLocalStorageSafely(e) { try { return u.getDataFromLocalStorage(e); } catch (e) { return null; } }, _getUserIds: function _getUserIds(e, t) { var r = l._getCrb(), n = { kargoID: r.userId, clientID: r.clientId, crbIDs: r.syncIds || {}, optOut: r.optOut, usp: t }; return e && (n.tdID = e), n; }, _getClientId: function _getClientId() { return l._getCrb().clientId; }, _getAllMetadata: function _getAllMetadata(e, t) { return { userIDs: l._getUserIds(e, t), krux: l._getKrux(), pageURL: window.location.href, rawCRB: l._readCookie("krg_crb"), rawCRBLocalStorage: l._getLocalStorageSafely("krg_crb") }; }, _getSessionId: function _getSessionId() { return o = o || l._generateRandomUuid(); }, _getRequestCount: function _getRequestCount() { return i === window.location.pathname ? ++c : (i = window.location.pathname, c = 0); }, _generateRandomUuid: function _generateRandomUuid() { try { var e = new Uint8Array(16); crypto.getRandomValues(e), e[6] = -177 & e[6] | 64, e[8] = -65 & e[8] | 128; var t = Array.prototype.map.call(new Uint8Array(e), function (e) { return ("00" + e.toString(16)).slice(-2); }).join(""); return t.slice(0, 8) + "-" + t.slice(8, 12) + "-" + t.slice(12, 16) + "-" + t.slice(16, 20) + "-" + t.slice(20); } catch (e) { return ""; } } }; Object(n.registerBidder)(l); } }, [517]); pbjsChunk([128], { 727: function _(e, r, t) { e.exports = t(728); }, 728: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }), t.d(r, "spec", function () { return A; }), r.hasVideoMediaType = s, t.d(r, "resetRubiConf", function () { return c; }), r.masSizeOrdering = d, r.determineRubiconVideoSizeId = f, r.getPriceGranularity = C, r.hasValidVideoParams = I, r.hasValidSupplyChainParams = k, r.encodeParam = w, r.resetUserSync = function () { z = !1; }; var g = t(0), i = t(1), v = t(3), p = t(2), n = t(10), b = t.n(n); function y(e, r) { return function (e) { if (Array.isArray(e)) return e; }(e) || function (e, r) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var t = [], i = !0, n = !1, o = void 0; try { for (var a, s = e[Symbol.iterator](); !(i = (a = s.next()).done) && (t.push(a.value), !r || t.length !== r); i = !0) { ; } } catch (e) { n = !0, o = e; } finally { try { i || null == s.return || s.return(); } finally { if (n) throw o; } } return t; }(e, r) || function (e, r) { if (!e) return; if ("string" == typeof e) return o(e, r); var t = Object.prototype.toString.call(e).slice(8, -1); "Object" === t && e.constructor && (t = e.constructor.name); if ("Map" === t || "Set" === t) return Array.from(e); if ("Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return o(e, r); }(e, r) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } function o(e, r) { (null == r || r > e.length) && (r = e.length);
for (var t = 0, i = new Array(r); t < r; t++) { i[t] = e[t]; } return i; } function x() { return (x = Object.assign || function (e) { for (var r = 1; r < arguments.length; r++) { var t = arguments[r]; for (var i in t) { Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); } } return e; }).apply(this, arguments); } function l(e, r, t) { return r in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function h(e) { return (h = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) { return _typeof(e); } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); })(e); } var _ = {}; v.b.getConfig("rubicon", function (e) { g.mergeDeep(_, e.rubicon); }); var u = { 1: "468x60", 2: "728x90", 5: "120x90", 7: "125x125", 8: "120x600", 9: "160x600", 10: "300x600", 13: "200x200", 14: "250x250", 15: "300x250", 16: "336x280", 17: "240x400", 19: "300x100", 31: "980x120", 32: "250x360", 33: "180x500", 35: "980x150", 37: "468x400", 38: "930x180", 39: "750x100", 40: "750x200", 41: "750x300", 42: "2x4", 43: "320x50", 44: "300x50", 48: "300x300", 53: "1024x768", 54: "300x1050", 55: "970x90", 57: "970x250", 58: "1000x90", 59: "320x80", 60: "320x150", 61: "1000x1000", 64: "580x500", 65: "640x480", 66: "930x600", 67: "320x480", 68: "1800x1000", 72: "320x320", 73: "320x160", 78: "980x240", 79: "980x300", 80: "980x400", 83: "480x300", 85: "300x120", 90: "548x150", 94: "970x310", 95: "970x100", 96: "970x210", 101: "480x320", 102: "768x1024", 103: "480x280", 105: "250x800", 108: "320x240", 113: "1000x300", 117: "320x100", 125: "800x250", 126: "200x600", 144: "980x600", 145: "980x150", 152: "1000x250", 156: "640x320", 159: "320x250", 179: "250x600", 195: "600x300", 198: "640x360", 199: "640x200", 213: "1030x590", 214: "980x360", 221: "1x1", 229: "320x180", 230: "2000x1400", 232: "580x400", 234: "6x6", 251: "2x2", 256: "480x820", 257: "400x600", 258: "500x200", 259: "998x200", 264: "970x1000", 265: "1920x1080", 274: "1800x200", 278: "320x500", 282: "320x400", 288: "640x380", 548: "500x1000" }; g._each(u, function (e, r) { return u[e] = r; }); var A = { code: "rubicon", gvlid: 52, supportedMediaTypes: [p.b, p.d], isBidRequestValid: function isBidRequestValid(e) { if ("object" !== h(e.params)) return !1; for (var r = 0, t = ["accountId"https://r.search.yahoo.com/,"siteId"https://r.search.yahoo.com/,"zoneId"]; r < t.length; r++) { if (e.params[t[r]] = parseInt(e.params[t[r]]), isNaN(e.params[t[r]])) return g.logError("Rubicon: wrong format of accountId or siteId or zoneId."), !1; } var i = m(e, !0); return !!i && ("video" !== i || I(e)); }, buildRequests: function buildRequests(e, u) { var n, r = e.filter(function (e) { return "video" === m(e); }).map(function (t) { t.startTime = new Date().getTime(); var e, r, i, n = { id: t.transactionId, test: v.b.getConfig("debug") ? 1 : 0, cur: ["USD"], source: { tid: t.transactionId }, tmax: u.timeout, imp: [{ exp: v.b.getConfig("s2sConfig.defaultTtl"), id: t.adUnitCode, secure: 1, ext: l({}, t.bidder, t.params), video: g.deepAccess(t, "mediaTypes.video") || {} }], ext: { prebid: { cache: { vastxml: { returnCreative: !0 === _.returnVast } }, targeting: { includewinners: !0, includebidderkeys: !1, pricegranularity: C(v.b) }, bidders: { rubicon: { integration: _.int_type || "pbjs" } } } } }; if ("rubicon" !== t.bidder && (n.ext.prebid.aliases = l({}, t.bidder, "rubicon")), "function" != typeof t.getFloor || _.disableFloors) e = parseFloat(g.deepAccess(t, "params.floor"));else { try { r = t.getFloor({ currency: "USD", mediaType: "video", size: j(t, "video") }); } catch (e) { g.logError("Rubicon: getFloor threw an error: ", e); } e = "object" !== h(r) || "USD" !== r.currency || isNaN(parseInt(r.floor)) ? void 0 : parseFloat(r.floor); } isNaN(e) || (n.imp[0].bidfloor = e), n.imp[0].ext[t.bidder].video.size_id = f(t), function (r, t, e) { if (!r) return; "object" === h(v.b.getConfig("app")) ? r.app = v.b.getConfig("app") : r.site = { page: S(t, e) }; "object" === h(v.b.getConfig("device")) && (r.device = v.b.getConfig("device")); t.params.video.language && ["site"https://r.search.yahoo.com/,"device"].forEach(function (e) { r[e] && (r[e].content = x({ language: t.params.video.language }, r[e].content)); }); }(n, t, u), function (e, r) { "object" === h(e.imp[0].video) && void 0 === e.imp[0].video.skip && (e.imp[0].video.skip = r.params.video.skip); "object" === h(e.imp[0].video) && void 0 === e.imp[0].video.skipafter && (e.imp[0].video.skipafter = r.params.video.skipdelay); "object" === h(e.imp[0].video) && void 0 === e.imp[0].video.pos && ("atf" === r.params.position ? e.imp[0].video.pos = 1 : "btf" === r.params.position && (e.imp[0].video.pos = 3)); var t = j(r, "video"); e.imp[0].video.w = t[0], e.imp[0].video.h = t[1]; }(n, t), u.gdprConsent && ("boolean" == typeof u.gdprConsent.gdprApplies && (i = u.gdprConsent.gdprApplies ? 1 : 0), g.deepSetValue(n, "regs.ext.gdpr", i), g.deepSetValue(n, "user.ext.consent", u.gdprConsent.consentString)), u.uspConsent && g.deepSetValue(n, "regs.ext.us_privacy", u.uspConsent); var o = g.deepAccess(u, "bids.0.userIdAsEids"); o && o.length && g.deepSetValue(n, "user.ext.eids", o); var a = v.b.getConfig("user.id"); a && g.deepSetValue(n, "user.id", a), !0 === v.b.getConfig("coppa") && g.deepSetValue(n, "regs.coppa", 1), t.schain && k(t.schain) && g.deepSetValue(n, "source.ext.schain", t.schain); var s, c = x({}, t.params.inventory, v.b.getConfig("fpd.context")), d = x({}, t.params.visitor, v.b.getConfig("fpd.user")); g.isEmpty(c) && g.isEmpty(d) || (s = { bidders: [u.bidderCode], config: { fpd: {} } }, g.isEmpty(c) || (s.config.fpd.site = c), g.isEmpty(d) || (s.config.fpd.user = d), g.deepSetValue(n, "ext.prebid.bidderconfig.0", s)); var p = g.deepAccess(t, "fpd.context.pbAdSlot"); return "string" == typeof p && p && g.deepSetValue(n.imp[0].ext, "context.data.pbadslot", p), ["name"https://r.search.yahoo.com/,"adSlot"].forEach(function (e) { var r = g.deepAccess(t, "fpd.context.adserver.".concat(e)); "string" == typeof r && r && g.deepSetValue(n.imp[0].ext, "context.data.adserver.".concat(e.toLowerCase()), r); }), t.storedAuctionResponse && g.deepSetValue(n.imp[0], "ext.prebid.storedauctionresponse.id", t.storedAuctionResponse.toString()), g.deepSetValue(n.imp[0], "ext.prebid.auctiontimestamp", u.auctionStart), { method: "POST", url: "https://".concat(_.videoHost || "prebid-server"https://r.search.yahoo.com/,".rubiconproject.com/openrtb2/auction"), data: n, bidRequest: t }; }); return !0 !== _.singleRequest ? r.concat(e.filter(function (e) { return "banner" === m(e); }).map(function (e) { var i = A.createSlotParams(e, u); return { method: "GET", url: "https://".concat(_.bannerHost || "fastlane"https://r.search.yahoo.com/,".rubiconproject.com/a/api/fastlane.json"), data: A.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return g.isStr(t) && "" !== t || g.isNumber(t) ? "".concat(e).concat(w(r, t), "&") : e; }, "") + "slots=1&rand=".concat(Math.random()), bidRequest: e }; })) : (n = e.filter(function (e) { return "banner" === m(e); }).reduce(function (e, r) { return (e[r.params.siteId] = e[r.params.siteId] || []).push(r), e; }, {}), r.concat(Object.keys(n).reduce(function (r, e) { var t, i; return t = n[e], i = 10, t.map(function (e, r) { return r % i == 0 ? t.slice(r, r + i) : null; }).filter(function (e) { return e; }).forEach(function (e) { var i = A.combineSlotUrlParams(e.map(function (e) { return A.createSlotParams(e, u); })); r.push({ method: "GET", url: "https://".concat(_.bannerHost || "fastlane"https://r.search.yahoo.com/,".rubiconproject.com/a/api/fastlane.json"), data: A.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return g.isStr(t) && "" !== t || g.isNumber(t) ? "".concat(e).concat(w(r, t), "&") : e; }, "") + "slots=".concat(e.length, "&rand=").concat(Math.random()), bidRequest: e }); }), r; }, []))); }, getOrderedParams: function getOrderedParams(e) { var r = /^tg_v/, t = /^tg_i/, i = /^eid_|^tpid_/, n = ["account_id"https://r.search.yahoo.com/,"site_id"https://r.search.yahoo.com/,"zone_id"https://r.search.yahoo.com/,"size_id"https://r.search.yahoo.com/,"alt_size_ids"https://r.search.yahoo.com/,"p_pos"https://r.search.yahoo.com/,"gdpr"https://r.search.yahoo.com/,"gdpr_consent"https://r.search.yahoo.com/,"us_privacy"https://r.search.yahoo.com/,"rp_schain"].concat(Object.keys(e).filter(function (e) { return i.test(e); })).concat(["x_liverampidl"https://r.search.yahoo.com/,"ppuid"https://r.search.yahoo.com/,"rf"https://r.search.yahoo.com/,"p_geo.latitude"https://r.search.yahoo.com/,"p_geo.longitude"https://r.search.yahoo.com/,"kw"]).concat(Object.keys(e).filter(function (e) { return r.test(e); })).concat(Object.keys(e).filter(function (e) { return t.test(e); })).concat(["tk_flint"https://r.search.yahoo.com/,"x_source.tid"https://r.search.yahoo.com/,"x_source.pchain"https://r.search.yahoo.com/,"p_screen_res"https://r.search.yahoo.com/,"rp_floor"https://r.search.yahoo.com/,"rp_secure"https://r.search.yahoo.com/,"tk_user_key"]); return n.concat(Object.keys(e).filter(function (e) { return -1 === n.indexOf(e); })); }, combineSlotUrlParams: function combineSlotUrlParams(n) { if (1 === n.length) return n[0]; var i = n.reduce(function (r, t, i) { return Object.keys(t).forEach(function (e) { r.hasOwnProperty(e) || (r[e] = new Array(n.length)), r[e].splice(i, 1, t[e]); }), r; }, {}), o = new RegExp("^([^;]*)(;\1)+$"); return Object.keys(i).forEach(function (e) { var r = i[e].join(";"), t = r.match(o); i[e] = t ? t[1] : r; }), i; }, createSlotParams: function createSlotParams(e, r) { e.startTime = new Date().getTime(); var t, i = e.params, n = j(e, "banner"), o = y(i.latLong || [], 2), a = o[0], s = o[1], c = { account_id: i.accountId, site_id: i.siteId, zone_id: i.zoneId, size_id: n[0], alt_size_ids: n.slice(1).join(",") || void 0, rp_floor: .01 < (i.floor = parseFloat(i.floor)) ? i.floor : .01, rp_secure: "1", tk_flint: "".concat(_.int_type || "pbjs_lite"https://r.search.yahoo.com/,"_v4.17.0"), "x_source.tid": e.transactionId, "x_source.pchain": i.pchain, p_screen_res: [window.screen.width, window.screen.height].join("x"), tk_user_key: i.userId, "p_geo.latitude": isNaN(parseFloat(a)) ? void 0 : parseFloat(a).toFixed(4), "p_geo.longitude": isNaN(parseFloat(s)) ? void 0 : parseFloat(s).toFixed(4), "tg_fl.eid": e.code, rf: S(e, r) }; if ("function" == typeof e.getFloor && !_.disableFloors) { try { t = e.getFloor({ currency: "USD", mediaType: "banner", size: "*" }); } catch (e) { g.logError("Rubicon: getFloor threw an error: ", e); } c.rp_hard_floor = "object" !== h(t) || "USD" !== t.currency || isNaN(parseInt(t.floor)) ? void 0 : t.floor; } c.p_pos = "atf" === i.position || "btf" === i.position ? i.position : ""; var d = v.b.getConfig("user.id"); d && (c.ppuid = d), e.userIdAsEids && e.userIdAsEids.forEach(function (r) { try { var e; "adserver.org" === r.source ? (c.tpid_tdid = r.uids[0].id, c["eid_adserver.org"] = r.uids[0].id) : "liveintent.com" === r.source ? (c["tpid_liveintent.com"] = r.uids[0].id, c["eid_liveintent.com"] = r.uids[0].id, r.ext && Array.isArray(r.ext.segments) && r.ext.segments.length && (c["tg_v.LIseg"] = r.ext.segments.join(","))) : "liveramp.com" === r.source ? c.x_liverampidl = r.uids[0].id : "sharedid.org" === r.source ? c["eid_sharedid.org"] = "".concat(r.uids[0].id, "^").concat(r.uids[0].atype, "^").concat(r.uids[0].ext && r.uids[0].ext.third || "") : "id5-sync.com" === r.source ? c["eid_id5-sync.com"] = "".concat(r.uids[0].id, "^").concat(r.uids[0].atype, "^").concat(r.ext && r.ext.linkType || "") : c["eid_".concat(r.source)] = "".concat(r.uids[0].id, "^").concat(r.uids[0].atype || ""), c.ppuid || (e = b()(r.uids, function (e) { return e.ext && "ppuid" === e.ext.stype; })) && e.id && (c.ppuid = e.id); } catch (e) { g.logWarn("Rubicon: error reading eid:", r, e); } }), r.gdprConsent && ("boolean" == typeof r.gdprConsent.gdprApplies && (c.gdpr = Number(r.gdprConsent.gdprApplies)), c.gdpr_consent = r.gdprConsent.consentString), r.uspConsent && (c.us_privacy = encodeURIComponent(r.uspConsent)); var p = x({}, i.visitor, v.b.getConfig("fpd.user")); Object.keys(p).forEach(function (e) { null != p[e] && "keywords" !== e && (c["tg_v.".concat(e)] = "object" !== h(p[e]) || Array.isArray(p[e]) ? p[e].toString() : JSON.stringify(p[e])); }); var u = x({}, i.inventory, v.b.getConfig("fpd.context")); Object.keys(u).forEach(function (e) { null != u[e] && "keywords" !== e && (c["tg_i.".concat(e)] = "object" !== h(u[e]) || Array.isArray(u[e]) ? u[e].toString() : JSON.stringify(u[e])); }); var l = (i.keywords || []).concat(g.deepAccess(v.b.getConfig("fpd.user"), "keywords") || [], g.deepAccess(v.b.getConfig("fpd.context"), "keywords") || []); c.kw = Array.isArray(l) && l.length ? l.join(",") : ""; var m = g.deepAccess(e, "fpd.context.pbAdSlot"); "string" == typeof m && m && (c["tg_i.pbadslot"] = m.replace(/^/+/, "")); var f = g.deepAccess(e, "fpd.context.adServer.adSlot"); return "string" == typeof f && f && (c["tg_i.dfp_ad_unit_code"] = f.replace(/^/+/, "")), !0 === v.b.getConfig("coppa") && (c.coppa = 1), e.schain && k(e.schain) && (c.rp_schain = A.serializeSupplyChain(e.schain)), c; }, serializeSupplyChain: function serializeSupplyChain(e) { if (!k(e)) return ""; var r = e.ver, t = e.complete, i = e.nodes; return "".concat(r, ",").concat(t, "!").concat(A.serializeSupplyChainNodes(i)); }, serializeSupplyChainNodes: function serializeSupplyChainNodes(e) { var t = ["asi"https://r.search.yahoo.com/,"sid"https://r.search.yahoo.com/,"hp"https://r.search.yahoo.com/,"rid"https://r.search.yahoo.com/,"name"https://r.search.yahoo.com/,"domain"]; return e.map(function (r) { return t.map(function (e) { return encodeURIComponent(r[e] || ""); }).join(","); }).join("!"); }, interpretResponse: function interpretResponse(c, e) { var d = e.bidRequest; if (!(c = c.body) || "object" !== h(c)) return []; if (c.seatbid) { var r = g.deepAccess(c, "ext.errors.rubicon"); Array.isArray(r) && 0 < r.length && g.logWarn("Rubicon: Error in video response"); var o = []; return c.seatbid.forEach(function (n) { (n.bid || []).forEach(function (e) { var r = { requestId: d.bidId, currency: c.cur || "USD", creativeId: e.crid, cpm: e.price || 0, bidderCode: n.seat, ttl: 300, netRevenue: !1 !== _.netRevenue, width: e.w || g.deepAccess(d, "mediaTypes.video.w") || g.deepAccess(d, "params.video.playerWidth"), height: e.h || g.deepAccess(d, "mediaTypes.video.h") || g.deepAccess(d, "params.video.playerHeight") }; e.id && (r.seatBidId = e.id), e.dealid && (r.dealId = e.dealid), e.adomain && g.deepSetValue(r, "meta.advertiserDomains", Array.isArray(e.adomain) ? e.adomain : [e.adomain]), g.deepAccess(e, "ext.bidder.rp.advid") && g.deepSetValue(r, "meta.advertiserId", e.ext.bidder.rp.advid); var t, i = g.deepAccess(c, "ext.responsetimemillis.rubicon"); d && i && (d.serverResponseTimeMs = i), g.deepAccess(e, "ext.prebid.type") === p.d ? (r.mediaType = p.d, g.deepSetValue(r, "meta.mediaType", p.d), (t = g.deepAccess(e, "ext.prebid.targeting")) && "object" === h(t) && (r.adserverTargeting = t), e.ext.prebid.cache && "object" === h(e.ext.prebid.cache.vastXml) && e.ext.prebid.cache.vastXml.cacheId && e.ext.prebid.cache.vastXml.url ? (r.videoCacheKey = e.ext.prebid.cache.vastXml.cacheId, r.vastUrl = e.ext.prebid.cache.vastXml.url) : t && t.hb_uuid && t.hb_cache_host && t.hb_cache_path && (r.videoCacheKey = t.hb_uuid, r.vastUrl = "https://".concat(t.hb_cache_host).concat(t.hb_cache_path, "?uuid=").concat(t.hb_uuid)), e.adm && (r.vastXml = e.adm), e.nurl && (r.vastUrl = e.nurl), !r.vastUrl && e.nurl && (r.vastUrl = e.nurl)) : g.logWarn("Rubicon: video response received non-video media type"), o.push(r); }); }), o; } var t = c.ads; return "object" !== h(d) || Array.isArray(d) || "video" !== m(d) || "object" !== h(t) || (t = t[d.adUnitCode]), !Array.isArray(t) || t.length < 1 ? [] : t.reduce(function (e, r, t) { if ("ok" !== r.status) return e; var i, n, o, a, s = Array.isArray(d) ? d[t] : d; return s && "object" === h(s) ? (i = { requestId: s.bidId, currency: "USD", creativeId: r.creative_id || "".concat(r.network || ""https://r.search.yahoo.com/,"-").concat(r.advertiser || ""), cpm: r.cpm || 0, dealId: r.deal, ttl: 300, netRevenue: !1 !== _.netRevenue, rubicon: { advertiserId: r.advertiser, networkId: r.network }, meta: { advertiserId: r.advertiser, networkId: r.network, mediaType: p.b } }, r.creative_type && (i.mediaType = r.creative_type), r.adomain && (i.meta.advertiserDomains = Array.isArray(r.adomain) ? r.adomain : [r.adomain]), r.creative_type === p.d ? (i.width = s.params.video.playerWidth, i.height = s.params.video.playerHeight, i.vastUrl = r.creative_depot_url, i.impression_id = r.impression_id, i.videoCacheKey = r.impression_id) : (i.ad = (o = r.script, a = r.impression_id, "n
nnx3c!-- Rubicon Project Ad Tag --x3ennn")), n = y(u[r.size_id].split("x").map(function (e) {
return Number(e);
}), 2), i.width = n[0], i.height = n[1]), i.rubiconTargeting = (Array.isArray(r.targeting) ? r.targeting : []).reduce(function (e, r) {
return e[r.key] = r.values[0], e;
}, {
rpfl_elemid: s.adUnitCode
}), e.push(i)) : g.logError("Rubicon: bidRequest undefined at index position:".concat(t), d, c), e;
}, []).sort(function (e, r) {
return (r.cpm || 0) - (e.cpm || 0);
});
},
getUserSyncs: function getUserSyncs(e, r, t, i) {
if (!z && e.iframeEnabled) {
var n = "";
return t && "string" == typeof t.consentString && ("boolean" == typeof t.gdprApplies ? n += "?gdpr=".concat(Number(t.gdprApplies), "&gdpr_consent=").concat(t.consentString) : n += "?gdpr_consent=".concat(t.consentString)), i && (n += "".concat(n ? "&" : "?"https://r.search.yahoo.com/,"us_privacy=").concat(encodeURIComponent(i))), z = !0, {
type: "iframe",
url: "https://".concat(_.syncHost || "eus"https://r.search.yahoo.com/,".rubiconproject.com/usync.html") + n
};
}
},
transformBidParams: function transformBidParams(e) {
return g.convertTypes({
accountId: "number",
siteId: "number",
zoneId: "number"
}, e);
}
};
function S(e, r) {
var t = v.b.getConfig("pageUrl"),
t = e.params.referrer ? e.params.referrer : t || r.refererInfo.referer;
return e.params.secure ? t.replace(/^http:/i, "https:") : t;
}
function j(e, r) {
var t = e.params;
if ("video" === r) {
var i = [];
return t.video && t.video.playerWidth && t.video.playerHeight ? i = [t.video.playerWidth, t.video.playerHeight] : Array.isArray(g.deepAccess(e, "mediaTypes.video.playerSize")) && 1 === e.mediaTypes.video.playerSize.length ? i = e.mediaTypes.video.playerSize[0] : Array.isArray(e.sizes) && 0 < e.sizes.length && Array.isArray(e.sizes[0]) && 1 < e.sizes[0].length && (i = e.sizes[0]), i;
}
var n = [];
return Array.isArray(t.sizes) ? n = t.sizes : void 0 !== g.deepAccess(e, "mediaTypes.banner.sizes") ? n = a(e.mediaTypes.banner.sizes) : Array.isArray(e.sizes) && 0 < e.sizes.length ? n = a(e.sizes) : g.logWarn("Rubicon: no sizes are setup or found"), d(n);
}
function a(e) {
return g.parseSizesInput(e).reduce(function (e, r) {
var t = parseInt(u[r], 10);
return t && e.push(t), e;
}, []);
}
function s(e) {
return "object" === h(g.deepAccess(e, "params.video")) && void 0 !== g.deepAccess(e, "mediaTypes.".concat(p.d));
}
function m(e, r) {
var t = 1 < arguments.length && void 0 !== r && r;
return s(e) ? -1 === ["outstream"https://r.search.yahoo.com/,"instream"].indexOf(g.deepAccess(e, "mediaTypes.".concat(p.d, ".context"))) ? void (t && g.logError("Rubicon: mediaTypes.video.context must be outstream or instream")) : j(e, "video").length < 2 ? void (t && g.logError("Rubicon: could not determine the playerSize of the video")) : (t && g.logMessage("Rubicon: making video request for adUnit", e.adUnitCode), "video") : 0 === j(e, "banner").length ? void (t && g.logError("Rubicon: could not determine the sizes for banner request")) : (t && g.logMessage("Rubicon: making banner request for adUnit", e.adUnitCode), "banner");
}
var c = function c() {
return _ = {};
};
function d(e) {
var n = [15, 2, 9];
return e.sort(function (e, r) {
var t = n.indexOf(e),
i = n.indexOf(r);
return -1 < t || -1 < i ? -1 === t ? 1 : -1 === i ? -1 : t - i : e - r;
});
}
function f(e) {
var r = parseInt(g.deepAccess(e, "params.video.size_id"));
return isNaN(r) ? "outstream" === g.deepAccess(e, "mediaTypes.".concat(p.d, ".context")) ? 203 : 201 : r;
}
function C(e) {
return {
ranges: {
low: [{
max: 5,
increment: .5
}],
medium: [{
max: 20,
increment: .1
}],
high: [{
max: 20,
increment: .01
}],
auto: [{
max: 5,
increment: .05
}, {
min: 5,
max: 10,
increment: .1
}, {
min: 10,
max: 20,
increment: .5
}],
dense: [{
max: 3,
increment: .01
}, {
min: 3,
max: 8,
increment: .05
}, {
min: 8,
max: 20,
increment: .5
}],
custom: e.getConfig("customPriceBucket") && e.getConfig("customPriceBucket").buckets
}[e.getConfig("priceGranularity")]
};
}
function I(r) {
var t = !0,
e = Object.prototype.toString.call([]),
i = Object.prototype.toString.call(0),
n = {
mimes: e,
protocols: e,
maxduration: i,
linearity: i,
api: e
};
return Object.keys(n).forEach(function (e) {
Object.prototype.toString.call(g.deepAccess(r, "mediaTypes.video." + e)) !== n[e] && (t = !1, g.logError("Rubicon: mediaTypes.video." + e + " is required and must be of type: " + n[e]));
}), t;
}
function k(e) {
var r = !1,
t = ["asi"https://r.search.yahoo.com/,"sid"https://r.search.yahoo.com/,"hp"];
return e.nodes && ((r = e.nodes.reduce(function (e, r) {
return e ? t.every(function (e) {
return r.hasOwnProperty(e);
}) : e;
}, !0)) || g.logError("Rubicon: required schain params missing")), r;
}
function w(e, r) {
return "rp_schain" === e ? "rp_schain=".concat(r) : "".concat(e, "=").concat(encodeURIComponent(r));
}
var z = !1;
Object(i.registerBidder)(A);
}
}, [727]);
pbjsChunk([108], {
777: function _(e, t, r) {
e.exports = r(778);
},
778: function _(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), r.d(t, "spec", function () {
return a;
}), r.d(t, "_isInbounds", function () {
return m;
}), t._getPlatform = v;
var n = r(1),
y = r(0),
i = r(2),
o = r(3),
g = r(11),
c = r(43);
function h(e, t) {
return function (e) {
if (Array.isArray(e)) return e;
}(e) || function (e, t) {
if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return;
var r = [],
n = !0,
i = !1,
s = void 0;
try {
for (var a, o = e[Symbol.iterator](); !(n = (a = o.next()).done) && (r.push(a.value), !t || r.length !== t); n = !0) {
;
}
} catch (e) {
i = !0, s = e;
} finally {
try {
n || null == o.return || o.return();
} finally {
if (i) throw s;
}
}
return r;
}(e, t) || function (e, t) {
if (!e) return;
if ("string" == typeof e) return s(e, t);
var r = Object.prototype.toString.call(e).slice(8, -1);
"Object" === r && e.constructor && (r = e.constructor.name);
if ("Map" === r || "Set" === r) return Array.from(e);
if ("Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return s(e, t);
}(e, t) || function () {
throw new TypeError("Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}();
}
function s(e, t) {
(null == t || t > e.length) && (t = e.length);
for (var r = 0, n = new Array(t); r < t; r++) {
n[r] = e[r];
}
return n;
}
function d() {
return (d = Object.assign || function (e) {
for (var t = 1; t < arguments.length; t++) {
var r = arguments[t];
for (var n in r) {
Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]);
}
}
return e;
}).apply(this, arguments);
}
function u(e, t, r) {
return t in e ? Object.defineProperty(e, t, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = r, e;
}
var p = "sonobi",
b = Object(y.generateUUID)(),
a = {
code: p,
supportedMediaTypes: [i.b, i.d],
isBidRequestValid: function isBidRequestValid(e) {
if (!e.params) return !1;
if (!e.params.ad_unit && !e.params.placement_id) return !1;
if (!Object(y.deepAccess)(e, "mediaTypes.banner") && !Object(y.deepAccess)(e, "mediaTypes.video")) return !1;
if (Object(y.deepAccess)(e, "mediaTypes.banner")) {
if (!Object(y.deepAccess)(e, "mediaTypes.banner.sizes") && !e.params.sizes) return !1;
} else if (Object(y.deepAccess)(e, "mediaTypes.video")) {
if ("outstream" === Object(y.deepAccess)(e, "mediaTypes.video.context") && !e.params.sizes) return !1;
if ("instream" === Object(y.deepAccess)(e, "mediaTypes.video.context") && !Object(y.deepAccess)(e, "mediaTypes.video.playerSize")) return !1;
}
return !0;
},
buildRequests: function buildRequests(e, t) {
var r = e.map(function (e) {
var t = function (e) {
if (e.params.ad_unit) return e.params.ad_unit;
return e.params.placement_id;
}(e);
return /^[/]?[d]+[[/].+[/]?]?$/.test(t) ? (t = "/" === t.charAt(0) ? t : "/" + t, u({}, "".concat(t, "|").concat(e.bidId), "".concat(l(e)).concat(f(e)))) : /^[0-9a-fA-F]{20}$/.test(t) && 20 === t.length ? u({}, e.bidId, "".concat(t, "|").concat(l(e)).concat(f(e))) : void Object(y.logError)("The ad unit code or Sonobi Placement id for slot ".concat(e.bidId, " is invalid"));
}),
n = {};
r.forEach(function (e) {
d(n, e);
});
var i = {
key_maker: JSON.stringify(n),
ref: t.refererInfo.referer,
s: Object(y.generateUUID)(),
pv: b,
vp: v(),
lib_name: "prebid",
lib_v: "4.17.0",
us: 0
};
o.b.getConfig("userSync") && o.b.getConfig("userSync").syncsPerBidder && (i.us = o.b.getConfig("userSync").syncsPerBidder), c.a.canBidderRegisterSync("iframe", p) ? i.ius = 1 : i.ius = 0, Object(y.deepAccess)(e[0], "params.hfa") && (i.hfa = Object(y.deepAccess)(e[0], "params.hfa")), e[0].params.referrer && (i.ref = e[0].params.referrer), t && t.gdprConsent && (i.gdpr = t.gdprConsent.gdprApplies ? "true" : "false", t.gdprConsent.consentString && (i.consent_string = t.gdprConsent.consentString)), e[0].schain && (i.schain = JSON.stringify(e[0].schain)), Object(y.deepAccess)(e[0], "userId") && 0 < Object.keys(e[0].userId).length && (i.userid = JSON.stringify(e[0].userId));
var s = e[0].params.keywords;
if (s && (i.kw = s), t && t.uspConsent && (i.us_privacy = t.uspConsent), Object(y.isEmpty)(n)) return null;
var a = "https://apex.go.sonobi.com/trinity.json";
return Object(y.deepAccess)(e[0], "params.bid_request_url") && (a = Object(y.deepAccess)(e[0], "params.bid_request_url")), {
method: "GET",
url: a,
withCredentials: !0,
data: i,
bidderRequests: e
};
},
interpretResponse: function interpretResponse(e, l) {
var f = e.body,
m = [],
v = l.data.ref;
return 0 === Object.keys(f.slots).length || Object.keys(f.slots).forEach(function (e) {
var t = f.slots[e],
r = e.split("|").slice(-1)[0],
n = function (e, t) {
for (var r = 0; r < e.length; r++) {
if (e[r].bidId === t) return e[r];
}
}(l.bidderRequests, r),
i = null;
"video" === t.sbi_ct && (i = "video"https://r.search.yahoo.com/,"outstream" === Object(y.deepAccess)(n, "mediaTypes.video.context") && (i = "outstream"));
var s,
a,
o,
c,
d,
u,
p,
b = j(i, v);
t.sbi_aid && t.sbi_mouse && t.sbi_size && (o = void 0 === (a = (s = h(t.sbi_size.split("x"), 2))[0]) ? 1 : a, d = void 0 === (c = s[1]) ? 1 : c, u = {
requestId: r,
cpm: Number(t.sbi_mouse),
width: Number(o),
height: Number(d),
ad: b(f.sbi_dc, t.sbi_aid),
ttl: 500,
creativeId: t.sbi_crid || t.sbi_aid,
aid: t.sbi_aid,
netRevenue: !0,
currency: "USD"
}, t.sbi_dozer && (u.dealId = t.sbi_dozer), "video" === i ? (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), delete u.ad, delete u.width, delete u.height) : "outstream" === i && n && (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), u.renderer = function (e, t) {
var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {},
n = g.a.install({
id: t.aid,
url: "https://mtrx.go.sonobi.com/sbi_outstream_renderer.js",
config: r,
loaded: !1,
adUnitCode: e
});
try {
n.setRender(O);
} catch (e) {
Object(y.logWarn)("Prebid Error calling setRender on renderer", e);
}
return n.setEventHandlers({
impression: function impression() {
return Object(y.logMessage)("Sonobi outstream video impression event");
},
loaded: function loaded() {
return Object(y.logMessage)("Sonobi outstream video loaded event");
},
ended: function ended() {
Object(y.logMessage)("Sonobi outstream renderer video event");
}
}), n;
}(n.adUnitCode, u, Object(y.deepAccess)(n, "renderer.options")), p = Object(y.deepAccess)(n, "params.sizes"), Array.isArray(p) && Array.isArray(p[0]) && (p = p[0]), p && (u.width = p[0], u.height = p[1])), m.push(u));
}), m;
},
getUserSyncs: function getUserSyncs(e, t) {
var r = [];
try {
e.pixelEnabled && t[0].body.sbi_px.forEach(function (e) {
r.push({
type: e.type,
url: e.url
});
});
} catch (e) {}
return r;
}
};
function l(e) {
return Object(y.deepAccess)(e, "mediaTypes.video") ? "" : e.params.sizes ? Object(y.parseSizesInput)(e.params.sizes).join(",") : Object(y.deepAccess)(e, "mediaTypes.banner.sizes") ? Object(y.parseSizesInput)(Object(y.deepAccess)(e, "mediaTypes.banner.sizes")).join(",") : e.sizes ? Object(y.parseSizesInput)(e.sizes).join(",") : void 0;
}
function f(e) {
return e.params.floor ? "|f=".concat(e.params.floor) : "";
}
var j = function j(i, s) {
return function (e, t) {
return "video" === i || "outstream" === i ? (r = t, n = s, "https://".concat(e, "apex.go.sonobi.com/vast.xml?vid=").concat(r, "&ref=").concat(encodeURIComponent(n))) : '‘;
var r, n;
};
};
var m = function m(e) {
var r = 0 < arguments.length && void 0 !== e ? e : window;
return function () {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0,
t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : Number.MAX_SAFE_INTEGER;
return r.innerWidth >= e && r.innerWidth < t;
};
};
function v() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : window,
t = m(e),
r = 992,
n = 768;
return t(0, 768) ? "mobile" : t(n, r) ? "tablet" : "desktop";
}
function O(i) {
i.renderer.push(function () {
var e = h(i.getSize().split("x"), 2),
t = e[0],
r = e[1],
n = new window.SbiOutstreamRenderer();
n.init({
vastUrl: i.vastUrl,
height: r,
width: t
}), n.setRootElement(i.adUnitCode);
});
}
Object(n.registerBidder)(a);
}
}, [777]);
pbjsChunk([106], {
787: function _(e, t, r) {
e.exports = r(788);
},
788: function _(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), r.d(t, "GOOGLE_CONSENT", function () {
return B;
}), r.d(t, "spec", function () {
return n;
});
var I = r(0),
P = r(3),
u = r(11),
a = r(1),
c = r(2);
function d(e) {
return (d = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) {
return _typeof(e);
} : function (e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e);
})(e);
}
var i = "spotx",
B = {
consented_providers: ["3"https://r.search.yahoo.com/,"7"https://r.search.yahoo.com/,"11"https://r.search.yahoo.com/,"12"https://r.search.yahoo.com/,"15"https://r.search.yahoo.com/,"20"https://r.search.yahoo.com/,"22"https://r.search.yahoo.com/,"35"https://r.search.yahoo.com/,"43"https://r.search.yahoo.com/,"46"https://r.search.yahoo.com/,"48"https://r.search.yahoo.com/,"55"https://r.search.yahoo.com/,"57"https://r.search.yahoo.com/,"61"https://r.search.yahoo.com/,"62"https://r.search.yahoo.com/,"66"https://r.search.yahoo.com/,"70"https://r.search.yahoo.com/,"80"https://r.search.yahoo.com/,"83"https://r.search.yahoo.com/,"85"https://r.search.yahoo.com/,"86"https://r.search.yahoo.com/,"89"https://r.search.yahoo.com/,"93"https://r.search.yahoo.com/,"108"https://r.search.yahoo.com/,"122"https://r.search.yahoo.com/,"124"https://r.search.yahoo.com/,"125"https://r.search.yahoo.com/,"126"https://r.search.yahoo.com/,"131"https://r.search.yahoo.com/,"134"https://r.search.yahoo.com/,"135"https://r.search.yahoo.com/,"136"https://r.search.yahoo.com/,"143"https://r.search.yahoo.com/,"144"https://r.search.yahoo.com/,"147"https://r.search.yahoo.com/,"149"https://r.search.yahoo.com/,"153"https://r.search.yahoo.com/,"154"https://r.search.yahoo.com/,"159"https://r.search.yahoo.com/,"161"https://r.search.yahoo.com/,"162"https://r.search.yahoo.com/,"165"https://r.search.yahoo.com/,"167"https://r.search.yahoo.com/,"171"https://r.search.yahoo.com/,"178"https://r.search.yahoo.com/,"184"https://r.search.yahoo.com/,"188"https://r.search.yahoo.com/,"192"https://r.search.yahoo.com/,"195"https://r.search.yahoo.com/,"196"https://r.search.yahoo.com/,"202"https://r.search.yahoo.com/,"209"https://r.search.yahoo.com/,"211"https://r.search.yahoo.com/,"218"https://r.search.yahoo.com/,"221"https://r.search.yahoo.com/,"228"https://r.search.yahoo.com/,"229"https://r.search.yahoo.com/,"230"https://r.search.yahoo.com/,"236"https://r.search.yahoo.com/,"239"https://r.search.yahoo.com/,"241"https://r.search.yahoo.com/,"253"https://r.search.yahoo.com/,"255"https://r.search.yahoo.com/,"259"https://r.search.yahoo.com/,"266"https://r.search.yahoo.com/,"271"https://r.search.yahoo.com/,"272"https://r.search.yahoo.com/,"274"https://r.search.yahoo.com/,"286"https://r.search.yahoo.com/,"291"https://r.search.yahoo.com/,"294"https://r.search.yahoo.com/,"303"https://r.search.yahoo.com/,"308"https://r.search.yahoo.com/,"310"https://r.search.yahoo.com/,"311"https://r.search.yahoo.com/,"313"https://r.search.yahoo.com/,"314"https://r.search.yahoo.com/,"316"https://r.search.yahoo.com/,"317"https://r.search.yahoo.com/,"322"https://r.search.yahoo.com/,"323"https://r.search.yahoo.com/,"327"https://r.search.yahoo.com/,"336"https://r.search.yahoo.com/,"338"https://r.search.yahoo.com/,"340"https://r.search.yahoo.com/,"348"https://r.search.yahoo.com/,"350"https://r.search.yahoo.com/,"358"https://r.search.yahoo.com/,"359"https://r.search.yahoo.com/,"363"https://r.search.yahoo.com/,"367"https://r.search.yahoo.com/,"370"https://r.search.yahoo.com/,"371"https://r.search.yahoo.com/,"384"https://r.search.yahoo.com/,"385"https://r.search.yahoo.com/,"389"https://r.search.yahoo.com/,"393"https://r.search.yahoo.com/,"394"https://r.search.yahoo.com/,"397"https://r.search.yahoo.com/,"398"https://r.search.yahoo.com/,"407"https://r.search.yahoo.com/,"414"https://r.search.yahoo.com/,"415"https://r.search.yahoo.com/,"424"https://r.search.yahoo.com/,"429"https://r.search.yahoo.com/,"430"https://r.search.yahoo.com/,"432"https://r.search.yahoo.com/,"436"https://r.search.yahoo.com/,"438"https://r.search.yahoo.com/,"440"https://r.search.yahoo.com/,"442"https://r.search.yahoo.com/,"443"https://r.search.yahoo.com/,"445"https://r.search.yahoo.com/,"448"https://r.search.yahoo.com/,"449"https://r.search.yahoo.com/,"453"https://r.search.yahoo.com/,"459"https://r.search.yahoo.com/,"479"https://r.search.yahoo.com/,"482"https://r.search.yahoo.com/,"486"https://r.search.yahoo.com/,"491"https://r.search.yahoo.com/,"492"https://r.search.yahoo.com/,"494"https://r.search.yahoo.com/,"495"https://r.search.yahoo.com/,"503"https://r.search.yahoo.com/,"505"https://r.search.yahoo.com/,"510"https://r.search.yahoo.com/,"522"https://r.search.yahoo.com/,"523"https://r.search.yahoo.com/,"528"https://r.search.yahoo.com/,"537"https://r.search.yahoo.com/,"540"https://r.search.yahoo.com/,"550"https://r.search.yahoo.com/,"559"https://r.search.yahoo.com/,"560"https://r.search.yahoo.com/,"568"https://r.search.yahoo.com/,"571"https://r.search.yahoo.com/,"574"https://r.search.yahoo.com/,"575"https://r.search.yahoo.com/,"576"https://r.search.yahoo.com/,"584"https://r.search.yahoo.com/,"585"https://r.search.yahoo.com/,"587"https://r.search.yahoo.com/,"588"https://r.search.yahoo.com/,"590"https://r.search.yahoo.com/,"591"https://r.search.yahoo.com/,"592"https://r.search.yahoo.com/,"595"https://r.search.yahoo.com/,"609"https://r.search.yahoo.com/,"621"https://r.search.yahoo.com/,"624"https://r.search.yahoo.com/,"723"https://r.search.yahoo.com/,"725"https://r.search.yahoo.com/,"733"https://r.search.yahoo.com/,"737"https://r.search.yahoo.com/,"776"https://r.search.yahoo.com/,"780"https://r.search.yahoo.com/,"782"https://r.search.yahoo.com/,"787"https://r.search.yahoo.com/,"797"https://r.search.yahoo.com/,"798"https://r.search.yahoo.com/,"802"https://r.search.yahoo.com/,"803"https://r.search.yahoo.com/,"814"https://r.search.yahoo.com/,"817"https://r.search.yahoo.com/,"820"https://r.search.yahoo.com/,"821"https://r.search.yahoo.com/,"827"https://r.search.yahoo.com/,"829"https://r.search.yahoo.com/,"839"https://r.search.yahoo.com/,"853"https://r.search.yahoo.com/,"864"https://r.search.yahoo.com/,"867"https://r.search.yahoo.com/,"874"https://r.search.yahoo.com/,"899"https://r.search.yahoo.com/,"904"https://r.search.yahoo.com/,"922"https://r.search.yahoo.com/,"926"https://r.search.yahoo.com/,"931"https://r.search.yahoo.com/,"932"https://r.search.yahoo.com/,"933"https://r.search.yahoo.com/,"938"https://r.search.yahoo.com/,"955"https://r.search.yahoo.com/,"973"https://r.search.yahoo.com/,"976"https://r.search.yahoo.com/,"979"https://r.search.yahoo.com/,"981"https://r.search.yahoo.com/,"985"https://r.search.yahoo.com/,"987"https://r.search.yahoo.com/,"991"https://r.search.yahoo.com/,"1003"https://r.search.yahoo.com/,"1024"https://r.search.yahoo.com/,"1025"https://r.search.yahoo.com/,"1027"https://r.search.yahoo.com/,"1028"https://r.search.yahoo.com/,"1029"https://r.search.yahoo.com/,"1033"https://r.search.yahoo.com/,"1034"https://r.search.yahoo.com/,"1040"https://r.search.yahoo.com/,"1047"https://r.search.yahoo.com/,"1048"https://r.search.yahoo.com/,"1051"https://r.search.yahoo.com/,"1052"https://r.search.yahoo.com/,"1053"https://r.search.yahoo.com/,"1054"https://r.search.yahoo.com/,"1062"https://r.search.yahoo.com/,"1063"https://r.search.yahoo.com/,"1067"https://r.search.yahoo.com/,"1072"https://r.search.yahoo.com/,"1085"https://r.search.yahoo.com/,"1092"https://r.search.yahoo.com/,"1095"https://r.search.yahoo.com/,"1097"https://r.search.yahoo.com/,"1099"https://r.search.yahoo.com/,"1100"https://r.search.yahoo.com/,"1107"https://r.search.yahoo.com/,"1126"https://r.search.yahoo.com/,"1127"https://r.search.yahoo.com/,"1143"https://r.search.yahoo.com/,"1149"https://r.search.yahoo.com/,"1152"https://r.search.yahoo.com/,"1162"https://r.search.yahoo.com/,"1166"https://r.search.yahoo.com/,"1167"https://r.search.yahoo.com/,"1170"https://r.search.yahoo.com/,"1171"https://r.search.yahoo.com/,"1172"https://r.search.yahoo.com/,"1188"https://r.search.yahoo.com/,"1192"https://r.search.yahoo.com/,"1199"https://r.search.yahoo.com/,"1201"https://r.search.yahoo.com/,"1204"https://r.search.yahoo.com/,"1205"https://r.search.yahoo.com/,"1211"https://r.search.yahoo.com/,"1212"https://r.search.yahoo.com/,"1215"https://r.search.yahoo.com/,"1220"https://r.search.yahoo.com/,"1225"https://r.search.yahoo.com/,"1226"https://r.search.yahoo.com/,"1227"https://r.search.yahoo.com/,"1230"https://r.search.yahoo.com/,"1232"https://r.search.yahoo.com/,"1236"https://r.search.yahoo.com/,"1241"https://r.search.yahoo.com/,"1248"https://r.search.yahoo.com/,"1250"https://r.search.yahoo.com/,"1252"https://r.search.yahoo.com/,"1268"https://r.search.yahoo.com/,"1275"https://r.search.yahoo.com/,"1276"https://r.search.yahoo.com/,"1284"https://r.search.yahoo.com/,"1286"https://r.search.yahoo.com/,"1298"https://r.search.yahoo.com/,"1301"https://r.search.yahoo.com/,"1307"https://r.search.yahoo.com/,"1312"https://r.search.yahoo.com/,"1313"https://r.search.yahoo.com/,"1317"https://r.search.yahoo.com/,"1329"https://r.search.yahoo.com/,"1336"https://r.search.yahoo.com/,"1344"https://r.search.yahoo.com/,"1345"https://r.search.yahoo.com/,"1356"https://r.search.yahoo.com/,"1362"https://r.search.yahoo.com/,"1365"https://r.search.yahoo.com/,"1375"https://r.search.yahoo.com/,"1403"https://r.search.yahoo.com/,"1409"https://r.search.yahoo.com/,"1411"https://r.search.yahoo.com/,"1415"https://r.search.yahoo.com/,"1416"https://r.search.yahoo.com/,"1419"https://r.search.yahoo.com/,"1423"https://r.search.yahoo.com/,"1440"https://r.search.yahoo.com/,"1442"https://r.search.yahoo.com/,"1449"https://r.search.yahoo.com/,"1451"https://r.search.yahoo.com/,"1455"https://r.search.yahoo.com/,"1456"https://r.search.yahoo.com/,"1468"https://r.search.yahoo.com/,"1496"https://r.search.yahoo.com/,"1503"https://r.search.yahoo.com/,"1509"https://r.search.yahoo.com/,"1512"https://r.search.yahoo.com/,"1514"https://r.search.yahoo.com/,"1517"https://r.search.yahoo.com/,"1520"https://r.search.yahoo.com/,"1525"https://r.search.yahoo.com/,"1540"https://r.search.yahoo.com/,"1547"https://r.search.yahoo.com/,"1548"https://r.search.yahoo.com/,"1555"https://r.search.yahoo.com/,"1558"https://r.search.yahoo.com/,"1570"https://r.search.yahoo.com/,"1575"https://r.search.yahoo.com/,"1577"https://r.search.yahoo.com/,"1579"https://r.search.yahoo.com/,"1583"https://r.search.yahoo.com/,"1584"https://r.search.yahoo.com/,"1591"https://r.search.yahoo.com/,"1598"https://r.search.yahoo.com/,"1603"https://r.search.yahoo.com/,"1608"https://r.search.yahoo.com/,"1613"https://r.search.yahoo.com/,"1616"https://r.search.yahoo.com/,"1626"https://r.search.yahoo.com/,"1631"https://r.search.yahoo.com/,"1633"https://r.search.yahoo.com/,"1638"https://r.search.yahoo.com/,"1642"https://r.search.yahoo.com/,"1648"https://r.search.yahoo.com/,"1651"https://r.search.yahoo.com/,"1652"https://r.search.yahoo.com/,"1653"https://r.search.yahoo.com/,"1660"https://r.search.yahoo.com/,"1665"https://r.search.yahoo.com/,"1667"https://r.search.yahoo.com/,"1669"https://r.search.yahoo.com/,"1671"https://r.search.yahoo.com/,"1674"https://r.search.yahoo.com/,"1677"https://r.search.yahoo.com/,"1678"https://r.search.yahoo.com/,"1682"https://r.search.yahoo.com/,"1684"https://r.search.yahoo.com/,"1697"https://r.search.yahoo.com/,"1703"https://r.search.yahoo.com/,"1705"https://r.search.yahoo.com/,"1716"https://r.search.yahoo.com/,"1720"https://r.search.yahoo.com/,"1721"https://r.search.yahoo.com/,"1722"https://r.search.yahoo.com/,"1725"https://r.search.yahoo.com/,"1732"https://r.search.yahoo.com/,"1733"https://r.search.yahoo.com/,"1735"https://r.search.yahoo.com/,"1739"https://r.search.yahoo.com/,"1741"https://r.search.yahoo.com/,"1745"https://r.search.yahoo.com/,"1750"https://r.search.yahoo.com/,"1753"https://r.search.yahoo.com/,"1760"https://r.search.yahoo.com/,"1765"https://r.search.yahoo.com/,"1769"https://r.search.yahoo.com/,"1776"https://r.search.yahoo.com/,"1780"https://r.search.yahoo.com/,"1782"https://r.search.yahoo.com/,"1786"https://r.search.yahoo.com/,"1791"https://r.search.yahoo.com/,"1794"https://r.search.yahoo.com/,"1799"https://r.search.yahoo.com/,"1800"https://r.search.yahoo.com/,"1801"https://r.search.yahoo.com/,"1810"https://r.search.yahoo.com/,"1827"https://r.search.yahoo.com/,"1831"https://r.search.yahoo.com/,"1832"https://r.search.yahoo.com/,"1834"https://r.search.yahoo.com/,"1837"https://r.search.yahoo.com/,"1840"https://r.search.yahoo.com/,"1843"https://r.search.yahoo.com/,"1844"https://r.search.yahoo.com/,"1845"https://r.search.yahoo.com/,"1858"https://r.search.yahoo.com/,"1859"https://r.search.yahoo.com/,"1863"https://r.search.yahoo.com/,"1866"https://r.search.yahoo.com/,"1870"https://r.search.yahoo.com/,"1872"https://r.search.yahoo.com/,"1875"https://r.search.yahoo.com/,"1878"https://r.search.yahoo.com/,"1880"https://r.search.yahoo.com/,"1882"https://r.search.yahoo.com/,"1883"https://r.search.yahoo.com/,"1889"https://r.search.yahoo.com/,"1892"https://r.search.yahoo.com/,"1896"https://r.search.yahoo.com/,"1898"https://r.search.yahoo.com/,"1899"https://r.search.yahoo.com/,"1902"https://r.search.yahoo.com/,"1905"https://r.search.yahoo.com/,"1911"https://r.search.yahoo.com/,"1922"https://r.search.yahoo.com/,"1928"https://r.search.yahoo.com/,"1929"https://r.search.yahoo.com/,"1934"https://r.search.yahoo.com/,"1942"https://r.search.yahoo.com/,"1943"https://r.search.yahoo.com/,"1944"https://r.search.yahoo.com/,"1945"https://r.search.yahoo.com/,"1958"https://r.search.yahoo.com/,"1960"https://r.search.yahoo.com/,"1962"https://r.search.yahoo.com/,"1963"https://r.search.yahoo.com/,"1964"https://r.search.yahoo.com/,"1967"https://r.search.yahoo.com/,"1968"https://r.search.yahoo.com/,"1978"https://r.search.yahoo.com/,"1985"https://r.search.yahoo.com/,"1986"https://r.search.yahoo.com/,"1987"https://r.search.yahoo.com/,"1998"https://r.search.yahoo.com/,"2003"https://r.search.yahoo.com/,"2007"https://r.search.yahoo.com/,"2012"https://r.search.yahoo.com/,"2013"https://r.search.yahoo.com/,"2027"https://r.search.yahoo.com/,"2035"https://r.search.yahoo.com/,"2038"https://r.search.yahoo.com/,"2039"https://r.search.yahoo.com/,"2044"https://r.search.yahoo.com/,"2047"https://r.search.yahoo.com/,"2052"https://r.search.yahoo.com/,"2056"https://r.search.yahoo.com/,"2059"https://r.search.yahoo.com/,"2062"https://r.search.yahoo.com/,"2064"https://r.search.yahoo.com/,"2068"https://r.search.yahoo.com/,"2070"https://r.search.yahoo.com/,"2072"https://r.search.yahoo.com/,"2078"https://r.search.yahoo.com/,"2079"https://r.search.yahoo.com/,"2084"https://r.search.yahoo.com/,"2088"https://r.search.yahoo.com/,"2090"https://r.search.yahoo.com/,"2095"https://r.search.yahoo.com/,"2100"https://r.search.yahoo.com/,"2103"https://r.search.yahoo.com/,"2107"https://r.search.yahoo.com/,"2109"https://r.search.yahoo.com/,"2113"https://r.search.yahoo.com/,"2115"https://r.search.yahoo.com/,"2121"https://r.search.yahoo.com/,"2127"https://r.search.yahoo.com/,"2130"https://r.search.yahoo.com/,"2133"https://r.search.yahoo.com/,"2137"https://r.search.yahoo.com/,"2140"https://r.search.yahoo.com/,"2141"https://r.search.yahoo.com/,"2145"https://r.search.yahoo.com/,"2147"https://r.search.yahoo.com/,"2150"https://r.search.yahoo.com/,"2156"https://r.search.yahoo.com/,"2166"https://r.search.yahoo.com/,"2170"https://r.search.yahoo.com/,"2171"https://r.search.yahoo.com/,"2176"https://r.search.yahoo.com/,"2177"https://r.search.yahoo.com/,"2179"https://r.search.yahoo.com/,"2183"https://r.search.yahoo.com/,"2186"https://r.search.yahoo.com/,"2192"https://r.search.yahoo.com/,"2198"https://r.search.yahoo.com/,"2202"https://r.search.yahoo.com/,"2205"https://r.search.yahoo.com/,"2214"https://r.search.yahoo.com/,"2216"https://r.search.yahoo.com/,"2219"https://r.search.yahoo.com/,"2220"https://r.search.yahoo.com/,"2222"https://r.search.yahoo.com/,"2223"https://r.search.yahoo.com/,"2224"https://r.search.yahoo.com/,"2225"https://r.search.yahoo.com/,"2227"https://r.search.yahoo.com/,"2228"https://r.search.yahoo.com/,"2234"https://r.search.yahoo.com/,"2238"https://r.search.yahoo.com/,"2247"https://r.search.yahoo.com/,"2251"https://r.search.yahoo.com/,"2253"https://r.search.yahoo.com/,"2262"https://r.search.yahoo.com/,"2264"https://r.search.yahoo.com/,"2271"https://r.search.yahoo.com/,"2276"https://r.search.yahoo.com/,"2278"https://r.search.yahoo.com/,"2279"https://r.search.yahoo.com/,"2282"https://r.search.yahoo.com/,"2290"https://r.search.yahoo.com/,"2292"https://r.search.yahoo.com/,"2295"https://r.search.yahoo.com/,"2299"https://r.search.yahoo.com/,"2305"https://r.search.yahoo.com/,"2306"https://r.search.yahoo.com/,"2310"https://r.search.yahoo.com/,"2311"https://r.search.yahoo.com/,"2312"https://r.search.yahoo.com/,"2315"https://r.search.yahoo.com/,"2320"https://r.search.yahoo.com/,"2325"https://r.search.yahoo.com/,"2328"https://r.search.yahoo.com/,"2331"https://r.search.yahoo.com/,"2334"https://r.search.yahoo.com/,"2335"https://r.search.yahoo.com/,"2336"https://r.search.yahoo.com/,"2337"https://r.search.yahoo.com/,"2343"https://r.search.yahoo.com/,"2346"https://r.search.yahoo.com/,"2354"https://r.search.yahoo.com/,"2357"https://r.search.yahoo.com/,"2358"https://r.search.yahoo.com/,"2359"https://r.search.yahoo.com/,"2366"https://r.search.yahoo.com/,"2370"https://r.search.yahoo.com/,"2373"https://r.search.yahoo.com/,"2376"https://r.search.yahoo.com/,"2377"https://r.search.yahoo.com/,"2380"https://r.search.yahoo.com/,"2382"https://r.search.yahoo.com/,"2387"https://r.search.yahoo.com/,"2389"https://r.search.yahoo.com/,"2392"https://r.search.yahoo.com/,"2394"https://r.search.yahoo.com/,"2400"https://r.search.yahoo.com/,"2403"https://r.search.yahoo.com/,"2405"https://r.search.yahoo.com/,"2406"https://r.search.yahoo.com/,"2407"https://r.search.yahoo.com/,"2410"https://r.search.yahoo.com/,"2411"https://r.search.yahoo.com/,"2413"https://r.search.yahoo.com/,"2414"https://r.search.yahoo.com/,"2415"https://r.search.yahoo.com/,"2416"https://r.search.yahoo.com/,"2418"https://r.search.yahoo.com/,"2422"https://r.search.yahoo.com/,"2425"https://r.search.yahoo.com/,"2427"https://r.search.yahoo.com/,"2435"https://r.search.yahoo.com/,"2437"https://r.search.yahoo.com/,"2440"https://r.search.yahoo.com/,"2441"https://r.search.yahoo.com/,"2447"https://r.search.yahoo.com/,"2453"https://r.search.yahoo.com/,"2459"https://r.search.yahoo.com/,"2461"https://r.search.yahoo.com/,"2462"https://r.search.yahoo.com/,"2464"https://r.search.yahoo.com/,"2467"https://r.search.yahoo.com/,"2468"https://r.search.yahoo.com/,"2472"https://r.search.yahoo.com/,"2477"https://r.search.yahoo.com/,"2481"https://r.search.yahoo.com/,"2484"https://r.search.yahoo.com/,"2486"https://r.search.yahoo.com/,"2492"https://r.search.yahoo.com/,"2493"https://r.search.yahoo.com/,"2496"https://r.search.yahoo.com/,"2497"https://r.search.yahoo.com/,"2498"https://r.search.yahoo.com/,"2499"https://r.search.yahoo.com/,"2504"https://r.search.yahoo.com/,"2506"https://r.search.yahoo.com/,"2510"https://r.search.yahoo.com/,"2511"https://r.search.yahoo.com/,"2512"https://r.search.yahoo.com/,"2517"https://r.search.yahoo.com/,"2526"https://r.search.yahoo.com/,"2527"https://r.search.yahoo.com/,"2531"https://r.search.yahoo.com/,"2532"https://r.search.yahoo.com/,"2534"https://r.search.yahoo.com/,"2542"https://r.search.yahoo.com/,"2544"https://r.search.yahoo.com/,"2552"https://r.search.yahoo.com/,"2555"https://r.search.yahoo.com/,"2559"https://r.search.yahoo.com/,"2563"https://r.search.yahoo.com/,"2564"https://r.search.yahoo.com/,"2567"https://r.search.yahoo.com/,"2568"https://r.search.yahoo.com/,"2569"https://r.search.yahoo.com/,"2571"https://r.search.yahoo.com/,"2572"https://r.search.yahoo.com/,"2573"https://r.search.yahoo.com/,"2575"https://r.search.yahoo.com/,"2577"https://r.search.yahoo.com/,"2579"https://r.search.yahoo.com/,"2583"https://r.search.yahoo.com/,"2584"https://r.search.yahoo.com/,"2586"https://r.search.yahoo.com/,"2589"https://r.search.yahoo.com/,"2595"https://r.search.yahoo.com/,"2596"https://r.search.yahoo.com/,"2597"https://r.search.yahoo.com/,"2601"https://r.search.yahoo.com/,"2604"https://r.search.yahoo.com/,"2605"https://r.search.yahoo.com/,"2609"https://r.search.yahoo.com/,"2610"https://r.search.yahoo.com/,"2612"https://r.search.yahoo.com/,"2614"https://r.search.yahoo.com/,"2621"https://r.search.yahoo.com/,"2622"https://r.search.yahoo.com/,"2624"https://r.search.yahoo.com/,"2628"https://r.search.yahoo.com/,"2629"https://r.search.yahoo.com/,"2632"https://r.search.yahoo.com/,"2634"https://r.search.yahoo.com/,"2636"https://r.search.yahoo.com/,"2639"https://r.search.yahoo.com/,"2643"https://r.search.yahoo.com/,"2645"https://r.search.yahoo.com/,"2646"https://r.search.yahoo.com/,"2647"https://r.search.yahoo.com/,"2649"https://r.search.yahoo.com/,"2650"https://r.search.yahoo.com/,"2651"https://r.search.yahoo.com/,"2652"https://r.search.yahoo.com/,"2656"https://r.search.yahoo.com/,"2657"https://r.search.yahoo.com/,"2658"https://r.search.yahoo.com/,"2660"https://r.search.yahoo.com/,"2661"https://r.search.yahoo.com/,"2662"https://r.search.yahoo.com/,"2663"https://r.search.yahoo.com/,"2664"https://r.search.yahoo.com/,"2669"https://r.search.yahoo.com/,"2670"https://r.search.yahoo.com/,"2673"https://r.search.yahoo.com/,"2676"https://r.search.yahoo.com/,"2677"https://r.search.yahoo.com/,"2678"https://r.search.yahoo.com/,"2681"https://r.search.yahoo.com/,"2682"https://r.search.yahoo.com/,"2684"https://r.search.yahoo.com/,"2685"https://r.search.yahoo.com/,"2686"https://r.search.yahoo.com/,"2689"https://r.search.yahoo.com/,"2690"https://r.search.yahoo.com/,"2691"https://r.search.yahoo.com/,"2695"https://r.search.yahoo.com/,"2698"https://r.search.yahoo.com/,"2699"https://r.search.yahoo.com/,"2702"https://r.search.yahoo.com/,"2704"https://r.search.yahoo.com/,"2705"https://r.search.yahoo.com/,"2706"https://r.search.yahoo.com/,"2707"https://r.search.yahoo.com/,"2709"https://r.search.yahoo.com/,"2710"https://r.search.yahoo.com/,"2713"https://r.search.yahoo.com/,"2714"https://r.search.yahoo.com/,"2727"https://r.search.yahoo.com/,"2729"https://r.search.yahoo.com/,"2739"https://r.search.yahoo.com/,"2758"https://r.search.yahoo.com/,"2765"https://r.search.yahoo.com/,"2766"https://r.search.yahoo.com/,"2767"https://r.search.yahoo.com/,"2768"https://r.search.yahoo.com/,"2770"https://r.search.yahoo.com/,"2771"https://r.search.yahoo.com/,"2772"https://r.search.yahoo.com/,"2776"https://r.search.yahoo.com/,"2777"https://r.search.yahoo.com/,"2778"https://r.search.yahoo.com/,"2779"https://r.search.yahoo.com/,"2780"https://r.search.yahoo.com/,"2783"https://r.search.yahoo.com/,"2784"https://r.search.yahoo.com/,"2786"https://r.search.yahoo.com/,"2787"https://r.search.yahoo.com/,"2791"https://r.search.yahoo.com/,"2792"https://r.search.yahoo.com/,"2793"https://r.search.yahoo.com/,"2797"https://r.search.yahoo.com/,"2798"https://r.search.yahoo.com/,"2801"https://r.search.yahoo.com/,"2802"https://r.search.yahoo.com/,"2803"https://r.search.yahoo.com/,"2805"https://r.search.yahoo.com/,"2808"https://r.search.yahoo.com/,"2809"https://r.search.yahoo.com/,"2810"https://r.search.yahoo.com/,"2811"https://r.search.yahoo.com/,"2812"https://r.search.yahoo.com/,"2813"https://r.search.yahoo.com/,"2814"https://r.search.yahoo.com/,"2817"https://r.search.yahoo.com/,"2818"https://r.search.yahoo.com/,"2824"https://r.search.yahoo.com/,"2826"https://r.search.yahoo.com/,"2827"https://r.search.yahoo.com/,"2829"https://r.search.yahoo.com/,"2830"https://r.search.yahoo.com/,"2831"https://r.search.yahoo.com/,"2832"https://r.search.yahoo.com/,"2834"https://r.search.yahoo.com/,"2836"https://r.search.yahoo.com/,"2838"https://r.search.yahoo.com/,"2840"https://r.search.yahoo.com/,"2842"https://r.search.yahoo.com/,"2843"https://r.search.yahoo.com/,"2844"https://r.search.yahoo.com/,"2850"https://r.search.yahoo.com/,"2851"https://r.search.yahoo.com/,"2852"https://r.search.yahoo.com/,"2854"https://r.search.yahoo.com/,"2858"https://r.search.yahoo.com/,"2860"https://r.search.yahoo.com/,"2862"https://r.search.yahoo.com/,"2864"https://r.search.yahoo.com/,"2865"https://r.search.yahoo.com/,"2866"https://r.search.yahoo.com/,"2867"https://r.search.yahoo.com/,"2868"https://r.search.yahoo.com/,"2869"https://r.search.yahoo.com/,"2871"]
},
n = {
code: i,
gvlid: 165,
aliases: ["spotx"],
supportedMediaTypes: [c.d],
isBidRequestValid: function isBidRequestValid(e) {
if (e && "object" !== d(e.params)) return I.logError(i + ": params is not defined or is incorrect in the bidder settings."), !1;
if (!I.deepAccess(e, "mediaTypes.video")) return I.logError(i + ": mediaTypes.video is not present in the bidder settings."), !1;
var t = I.deepAccess(e, "mediaTypes.video.playerSize");
if (!t || !I.isArray(t)) return I.logError(i + ": mediaTypes.video.playerSize is not defined in the bidder settings."), !1;
if (!I.getBidIdParameter("channel_id", e.params)) return I.logError(i + ": channel_id is not present in bidder params"), !1;
if (("outstream" == I.deepAccess(e, "mediaTypes.video.context") || "outstream" == I.deepAccess(e, "params.ad_unit")) && !I.getBidIdParameter("outstream_function", e.params)) {
if (!I.getBidIdParameter("outstream_options", e.params)) return I.logError(i + ": please define outstream_options parameter or override the default SpotX outstream rendering by defining your own Outstream function using field outstream_function."), !1;
if (!I.getBidIdParameter("slot", e.params.outstream_options)) return I.logError(i + ": please define parameters slot outstream_options object in the configuration."), !1;
}
return !0;
},
buildRequests: function buildRequests(e, h) {
var y = h.refererInfo.referer,
b = !!y.match(/^https:/);
return e.map(function (e) {
var t = I.getBidIdParameter("page", e.params) ? I.getBidIdParameter("page", e.params) : P.b.getConfig("pageUrl") ? P.b.getConfig("pageUrl") : y,
r = I.getBidIdParameter("channel_id", e.params),
a = null,
d = I.deepAccess(e, "mediaTypes.video.playerSize"),
i = d[0][0],
n = d[0][1],
o = b || (I.getBidIdParameter("secure", e.params) ? 1 : 0),
s = {
sdk_name: "Prebid 1+",
versionOrtb: "2.3"
};
if ("" != I.getBidIdParameter("hide_skin", e.params) && (s.hide_skin = +!!I.getBidIdParameter("hide_skin", e.params)), "" != I.getBidIdParameter("ad_volume", e.params) && (s.ad_volume = I.getBidIdParameter("ad_volume", e.params)), "" != I.getBidIdParameter("ad_unit", e.params) && (s.ad_unit = I.getBidIdParameter("ad_unit", e.params)), "" != I.getBidIdParameter("outstream_options", e.params) && (s.outstream_options = I.getBidIdParameter("outstream_options", e.params)), "" != I.getBidIdParameter("outstream_function", e.params) && (s.outstream_function = I.getBidIdParameter("outstream_function", e.params)), "" != I.getBidIdParameter("custom", e.params) && (s.custom = I.getBidIdParameter("custom", e.params)), "" != I.getBidIdParameter("pre_market_bids", e.params) && I.isArray(I.getBidIdParameter("pre_market_bids", e.params))) {
var p = I.getBidIdParameter("pre_market_bids", e.params);
for (var m in (s.pre_market_bids = [], p)) {
var u = p[m],
c = "";
u.vast_url ? c="
id: u.deal_id,
seatbid: [{
bid: [{
impid: Date.now(),
dealid: u.deal_id,
price: u.price,
adm: c
}]
}],
cur: u.currency,
ext: {
event_log: [{}]
}
});
}
}
var g = I.getBidIdParameter(“mimes”, e.params) || [“application/javascript”https://r.search.yahoo.com/,”video/mp4″https://r.search.yahoo.com/,”video/webm”],
_ = {
id: e.bidId,
secure: o,
video: {
w: i,
h: n,
ext: s,
mimes: g
}
};
“” != I.getBidIdParameter(“price_floor”, e.params) && (_.bidfloor = I.getBidIdParameter(“price_floor”, e.params)), “” != I.getBidIdParameter(“start_delay”, e.params) && (_.video.startdelay = 0 + Boolean(I.getBidIdParameter(“start_delay”, e.params))), “” != I.getBidIdParameter(“min_duration”, e.params) && (_.video.minduration = I.getBidIdParameter(“min_duration”, e.params)), “” != I.getBidIdParameter(“max_duration”, e.params) && (_.video.maxduration = I.getBidIdParameter(“max_duration”, e.params)), “” != I.getBidIdParameter(“placement_type”, e.params) && (_.video.ext.placement = I.getBidIdParameter(“placement_type”, e.params)), “” != I.getBidIdParameter(“position”, e.params) && (_.video.ext.pos = I.getBidIdParameter(“position”, e.params)), e.crumbs && e.crumbs.pubcid && (a = e.crumbs.pubcid);
var l = navigator.language ? “language” : “userLanguage”,
v = {
id: r,
imp: _,
site: {
id: “”,
page: t,
content: “content”
},
device: {
h: screen.height,
w: screen.width,
dnt: I.getDNT() ? 1 : 0,
language: navigator[l].split(“-“)[0],
make: navigator.vendor ? navigator.vendor : “”,
ua: navigator.userAgent
},
ext: {
wrap_response: 1
}
};
I.getBidIdParameter(“number_of_ads”, e.params) && (v.ext.number_of_ads = I.getBidIdParameter(“number_of_ads”, e.params));
var f = {};
return 1 == I.getBidIdParameter(“spotx_all_google_consent”, e.params) && (f.consented_providers_settings = B), h && h.gdprConsent && (f.consent = h.gdprConsent.consentString, void 0 !== h.gdprConsent.gdprApplies && I.deepSetValue(v, “regs.ext.gdpr”, h.gdprConsent.gdprApplies ? 1 : 0)), h && h.uspConsent && I.deepSetValue(v, “regs.ext.us_privacy”, h.uspConsent), I.deepAccess(e, “userId.id5id.uid”) && (f.eids = f.eids || [], f.eids.push({
source: “id5-sync.com”,
uids: [{
id: e.userId.id5id.uid
}],
ext: e.userId.id5id.ext || {}
})), a && (f.fpc = a), e && e.schain && (v.source = {
ext: {
schain: e.schain
}
}), e && e.userId && e.userId.tdid && (f.eids = f.eids || [], f.eids.push({
source: “adserver.org”,
uids: [{
id: e.userId.tdid,
ext: {
rtiPartner: “TDID”
}
}]
})), I.isEmpty(f) || (v.user = {
ext: f
}), {
method: “POST”,
url: “https://search.spotxchange.com/openrtb/2.3/dados/” + r,
data: v,
bidRequest: h
};
});
},
interpretResponse: function interpretResponse(e, s) {
var p = [],
m = e.body;
return m && I.isArray(m.seatbid) && I._each(m.seatbid, function (e) {
I._each(e.bid, function (t) {
var e = {};
for (var r in s.bidRequest.bids) {
t.impid == s.bidRequest.bids[r].bidId && (e = s.bidRequest.bids[r]);
}
I._each(e.params.pre_market_bids, function (e) {
e.deal_id == t.id && (t.price = e.price, m.cur = e.currency);
});
var a = {
requestId: e.bidId,
currency: m.cur || “USD”,
cpm: t.price,
creativeId: t.crid || “”,
dealId: t.dealid || “”,
ttl: 360,
netRevenue: !0,
channel_id: m.id,
cache_key: t.ext.cache_key,
vastUrl: “https://search.spotxchange.com/ad/vast.html?key=” + t.ext.cache_key,
videoCacheKey: t.ext.cache_key,
mediaType: c.d,
width: t.w,
height: t.h
};
a.meta = a.meta || {}, t && t.adomain && 0 < t.adomain.length && (a.meta.advertiserDomains = t.adomain);
var d = I.deepAccess(e, "mediaTypes.video.context"),
i = I.deepAccess(e, "params.ad_unit");
if ("outstream" == d || "outstream" == i) {
var n = I.deepAccess(e, "mediaTypes.video.playerSize"),
o = u.a.install({
id: 0,
url: "//",
config: {
adText: "SpotX Outstream Video Ad via Prebid.js",
player_width: n[0][0],
player_height: n[0][1],
content_page_url: I.deepAccess(s, "data.site.page"),
ad_mute: +!!I.deepAccess(e, "params.ad_mute"),
hide_skin: +!!I.deepAccess(e, "params.hide_skin"),
outstream_options: I.deepAccess(e, "params.outstream_options"),
outstream_function: I.deepAccess(e, "params.outstream_function")
}
});
try {
o.setRender(g), o.setEventHandlers({
impression: function impression() {
return I.logMessage("SpotX outstream video impression event");
},
loaded: function loaded() {
return I.logMessage("SpotX outstream video loaded event");
},
ended: function ended() {
I.logMessage("SpotX outstream renderer video event");
}
});
} catch (e) {
I.logWarn("Prebid Error calling setRender or setEve,tHandlers on renderer", e);
}
a.renderer = o;
}
p.push(a);
});
}), p;
}
};
function g(e) {
var t = function (e) {
var t = I.getBidIdParameter("slot", e.renderer.config.outstream_options);
I.logMessage("[SPOTX][renderer] Handle SpotX outstream renderer");
var r = window.document.createElement("script");
r.type = "text/javascript", r.src = "https://js.spotx.tv/easi/v1/" + e.channel_id + ".js";
var a = {};
a["data-spotx_channel_id"] = "" + e.channel_id, a["data-spotx_vast_url"] = "" + e.vastUrl, a["data-spotx_content_page_url"] = e.renderer.config.content_page_url, a["data-spotx_ad_unit"] = "incontent", I.logMessage("[SPOTX][renderer] Default beahavior"), I.getBidIdParameter("ad_mute", e.renderer.config.outstream_options) && (a["data-spotx_ad_mute"] = "1"), a["data-spotx_collapse"] = "0", a["data-spotx_autoplay"] = "1", a["data-spotx_blocked_autoplay_override_mode"] = "1", a["data-spotx_video_slot_can_autoplay"] = "1";
var d,
i,
n,
o,
s,
p,
m = I.getBidIdParameter("playersize_auto_adapt", e.renderer.config.outstream_options);
m && I.isBoolean(m) && !0 === m && (e.width && I.isNumber(e.width) && e.height && I.isNumber(e.height) ? (d = e.width / e.height, i = window.document.getElementById(t).clientWidth, n = e.renderer.config.player_width, o = e.renderer.config.player_height, p = s = 0, i < n && (o = (n = i) / d), p = d <= 1 ? (s = Math.round(o * d), o) : (s = n, Math.round(n / d)), a["data-spotx_content_width"] = "" + s, a["data-spotx_content_height"] = "" + p) : I.logWarn("[SPOTX][renderer] PlayerSize auto adapt: bid.width and bid.height are incorrect"));
var u = I.getBidIdParameter("custom_override", e.renderer.config.outstream_options);
if (u && I.isPlainObject(u)) for (var c in (I.logMessage("[SPOTX][renderer] Custom behavior."), u)) {
u.hasOwnProperty(c) && ("channel_id" === c || "vast_url" === c || "content_page_url" === c || "ad_unit" === c ? I.logWarn("[SPOTX][renderer] Custom behavior: following option cannot be overridden: " + c) : a["data-spotx_" + c] = u[c]);
}
for (var g in a) {
a.hasOwnProperty(g) && r.setAttribute(g, a[g]);
}
return r;
}(e);
if (null != e.renderer.config.outstream_function && "function" == typeof e.renderer.config.outstream_function) e.renderer.config.outstream_function(e, t);else try {
var r,
a,
d,
i = I.getBidIdParameter("in_iframe", e.renderer.config.outstream_options);
i && "IFRAME" == window.document.getElementById(i).nodeName ? (!(a = (r = window.document.getElementById(i)).contentDocument) && r.contentWindow && (a = r.contentWindow.document), a.body.appendChild(t)) : (d = I.getBidIdParameter("slot", e.renderer.config.outstream_options)) && window.document.getElementById(d) ? window.document.getElementById(d).appendChild(t) : window.document.getElementsByTagName("head")[0].appendChild(t);
} catch (e) {
I.logError("[SPOTX][renderer] Error:" + e.message);
}
}
Object(a.registerBidder)(n);
}
}, [787]);
pbjsChunk([99], {
803: function _(e, t, r) {
e.exports = r(804);
},
804: function _(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), r.d(t, "spec", function () {
return i;
});
var n = r(1),
a = r(0),
p = 12,
c = 11,
u = 0,
g = 22,
i = {
code: "teads",
gvlid: 132,
supportedMediaTypes: ["video"https://r.search.yahoo.com/,"banner"],
isBidRequestValid: function isBidRequestValid(e) {
var t,
r,
n = !1;
return void 0 !== e.params && (t = s(a.getValue(e.params, "placementId")), r = s(a.getValue(e.params, "pageId")), n = t && r), n || a.logError("Teads placementId and pageId parameters are required. Bid aborted."), n;
},
buildRequests: function buildRequests(e, t) {
var r,
n = e.map(f),
i = {
referrer: function (e) {
var t = "";
e && e.refererInfo && e.refererInfo.referer && (t = e.refererInfo.referer);
return t;
}(t),
pageReferrer: document.referrer,
networkBandwidth: (r = window.navigator) && r.connection && 0 <= r.connection.downlink ? r.connection.downlink.toString() : "",
timeToFirstByte: function (e) {
var t = e.performance || e.webkitPerformance || e.msPerformance || e.mozPerformance,
r = t && "function" == typeof t.getEntriesByType && "[object Function]" === Object.prototype.toString.call(t.getEntriesByType) && t.getEntriesByType("navigation")[0] && t.getEntriesByType("navigation")[0].responseStart && t.getEntriesByType("navigation")[0].requestStart && 0 < t.getEntriesByType("navigation")[0].responseStart && 0 < t.getEntriesByType("navigation")[0].requestStart && Math.round(t.getEntriesByType("navigation")[0].responseStart - t.getEntriesByType("navigation")[0].requestStart);
if (r) return r.toString();
var n = t && t.timing.responseStart && t.timing.requestStart && 0 < t.timing.responseStart && 0 < t.timing.requestStart && t.timing.responseStart - t.timing.requestStart;
return n ? n.toString() : "";
}(window),
data: n,
deviceWidth: screen.width,
hb_version: "4.17.0"
};
e[0].schain && (i.schain = e[0].schain);
var a,
s,
o,
d = t.gdprConsent;
return t && d && (a = "boolean" == typeof d.gdprApplies, s = "string" == typeof d.consentString, o = a ? function (e, t, r) {
var n = p;
e ? function (e, t) {
return e && 1 === t ? e.hasGlobalScope || e.hasGlobalConsent : !(!e || 2 !== t) && !e.isServiceSpecific;
}(t, r) && (n = c) : n = u;
return n;
}(d.gdprApplies, d.vendorData, d.apiVersion) : g, i.gdpr_iab = {
consent: s ? d.consentString : "",
status: o,
apiVersion: d.apiVersion
}), t && t.uspConsent && (i.us_privacy = t.uspConsent), {
method: "POST",
url: "https://a.teads.tv/hb/bid-request",
data: JSON.stringify(i)
};
},
interpretResponse: function interpretResponse(e) {
var r = [];
return (e = e.body).responses && e.responses.forEach(function (e) {
var t = {
cpm: e.cpm,
width: e.width,
height: e.height,
currency: e.currency,
netRevenue: !0,
ttl: e.ttl,
ad: e.ad,
requestId: e.bidId,
creativeId: e.creativeId,
placementId: e.placementId
};
e.dealId && (t.dealId = e.dealId), r.push(t);
}), r;
}
};
function f(e) {
var t,
r = {},
n = a.getValue(e.params, "placementId"),
i = a.getValue(e.params, "pageId");
return r.sizes = (t = e, a.parseSizesInput(function (e) {
var t = a.deepAccess(e, "mediaTypes.video.playerSize"),
r = a.deepAccess(e, "mediaTypes.video.sizes"),
n = a.deepAccess(e, "mediaTypes.banner.sizes");
return a.isArray(n) || a.isArray(t) || a.isArray(r) ? [n, r, t].reduce(function (t, e) {
return a.isArray(e) && (a.isArray(e[0]) ? e.forEach(function (e) {
t.push(e);
}) : t.push(e)), t;
}, []) : e.sizes;
}(t))), r.bidId = a.getBidIdParameter("bidId", e), r.bidderRequestId = a.getBidIdParameter("bidderRequestId", e), r.placementId = parseInt(n, 10), r.pageId = parseInt(i, 10), r.adUnitCode = a.getBidIdParameter("adUnitCode", e), r.auctionId = a.getBidIdParameter("auctionId", e), r.transactionId = a.getBidIdParameter("transactionId", e), r;
}
function s(e) {
return 0 < parseInt(e);
}
Object(n.registerBidder)(i);
}
}, [803]);
pbjsChunk([90], {
823: function _(e, r, t) {
e.exports = t(824);
},
824: function _(e, r, t) {
"use strict";
Object.defineProperty(r, "__esModule", {
value: !0
}), t.d(r, "tripleliftAdapterSpec", function () {
return m;
});
var n = t(2),
i = t(1),
u = t(0),
a = t(3);
function p() {
return (p = Object.assign || function (e) {
for (var r = 1; r < arguments.length; r++) {
var t = arguments[r];
for (var n in t) {
Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
}
}
return e;
}).apply(this, arguments);
}
function c(e) {
return (c = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) {
return _typeof(e);
} : function (e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e);
})(e);
}
function s(r, e) {
var t,
n = Object.keys(r);
return Object.getOwnPropertySymbols && (t = Object.getOwnPropertySymbols(r), e && (t = t.filter(function (e) {
return Object.getOwnPropertyDescriptor(r, e).enumerable;
})), n.push.apply(n, t)), n;
}
function d(i) {
for (var e = 1; e < arguments.length; e++) {
var o = null != arguments[e] ? arguments[e] : {};
e % 2 ? s(Object(o), !0).forEach(function (e) {
var r, t, n;
r = i, n = o[t = e], t in r ? Object.defineProperty(r, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : r[t] = n;
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(i, Object.getOwnPropertyDescriptors(o)) : s(Object(o)).forEach(function (e) {
Object.defineProperty(i, e, Object.getOwnPropertyDescriptor(o, e));
});
}
return i;
}
function f(e) {
return function (e) {
if (Array.isArray(e)) return o(e);
}(e) || function (e) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e);
}(e) || function (e, r) {
if (!e) return;
if ("string" == typeof e) return o(e, r);
var t = Object.prototype.toString.call(e).slice(8, -1);
"Object" === t && e.constructor && (t = e.constructor.name);
if ("Map" === t || "Set" === t) return Array.from(e);
if ("Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return o(e, r);
}(e) || function () {
throw new TypeError("Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}();
}
function o(e, r) {
(null == r || r > e.length) && (r = e.length);
for (var t = 0, n = new Array(r); t < r; t++) {
n[t] = e[t];
}
return n;
}
var l = !0,
y = null,
m = {
gvlid: 28,
code: "triplelift",
supportedMediaTypes: [n.b, n.d],
isBidRequestValid: function isBidRequestValid(e) {
return void 0 !== e.params.inventoryCode;
},
buildRequests: function buildRequests(e, r) {
var t,
n = "https://tlx.3lift.com/header/auction?",
i = function (e) {
var r = {},
t = e[0].schain,
n = function () {
var e = {},
r = p({}, a.b.getConfig("fpd.context")),
t = p({}, a.b.getConfig("fpd.user"));
return g(e, r), g(e, t), e;
}();
r.imp = e.map(function (e, r) {
var t = {
id: r,
tagid: e.params.inventoryCode,
floor: function (e) {
var r = null;
{
var t;
"function" == typeof e.getFloor && ("object" !== c(t = e.getFloor({
currency: "USD",
mediaType: "banner",
size: S(e.sizes)
})) || "USD" !== t.currency || isNaN(parseFloat(t.floor)) || (r = parseFloat(t.floor)));
}
return null !== r ? r : e.params.floor;
}(e)
};
return b(e) ? t.video = function (e) {
var r = d(d({}, e.params.video), e.mediaTypes.video);
r.w || (r.w = r.playerSize[0][0]);
r.h || (r.h = r.playerSize[0][1]);
"instream" === r.context && (r.placement = 1);
return delete r.playerSize, r;
}(e) : e.mediaTypes.banner && (t.banner = {
format: S(e.sizes)
}), t;
});
var i = [].concat(f(function (e) {
return v(e, "tdid"https://r.search.yahoo.com/,"adserver.org"https://r.search.yahoo.com/,"TDID");
}(e)), f(function (e) {
return v(e, "idl_env"https://r.search.yahoo.com/,"liveramp.com"https://r.search.yahoo.com/,"idl");
}(e)), f(function (e) {
return v(e, "criteoId"https://r.search.yahoo.com/,"criteo.com"https://r.search.yahoo.com/,"criteoId");
}(e)));
0 < i.length && (r.user = {
ext: {
eids: i
}
});
var o = function (e, r) {
var t = {};
u.isEmpty(e) || (t.schain = d({}, e));
u.isEmpty(r) || (t.fpd = d({}, r));
return t;
}(t, n);
u.isEmpty(o) || (r.ext = o);
return r;
}(e);
return n = u.tryAppendQueryString(n, "lib"https://r.search.yahoo.com/,"prebid"), n = u.tryAppendQueryString(n, "v"https://r.search.yahoo.com/,"4.17.0"), r && r.refererInfo && (t = r.refererInfo.referer, n = u.tryAppendQueryString(n, "referrer", t)), r && r.timeout && (n = u.tryAppendQueryString(n, "tmax", r.timeout)), r && r.gdprConsent && (void 0 !== r.gdprConsent.gdprApplies && (l = r.gdprConsent.gdprApplies, n = u.tryAppendQueryString(n, "gdpr", l.toString())), void 0 !== r.gdprConsent.consentString && (y = r.gdprConsent.consentString, n = u.tryAppendQueryString(n, "cmp_cs", y))), r && r.uspConsent && (n = u.tryAppendQueryString(n, "us_privacy", r.uspConsent)), !0 === a.b.getConfig("coppa") && (n = u.tryAppendQueryString(n, "coppa", !0)), n.lastIndexOf("&") === n.length - 1 && (n = n.substring(0, n.length - 1)), u.logMessage("tlCall request built: " + n), {
method: "POST",
url: n,
data: i,
bidderRequest: r
};
},
interpretResponse: function interpretResponse(e, r) {
var t = r.bidderRequest;
return (e.body.bids || []).map(function (e) {
return function (e, r) {
var t = {},
n = r.width || 1,
i = r.height || 1,
o = r.deal_id || "",
u = r.crid || "",
a = e.bids[r.imp_id];
0 != r.cpm && r.ad && (t = {
requestId: a.bidId,
cpm: r.cpm,
width: n,
height: i,
netRevenue: !0,
ad: r.ad,
creativeId: u,
dealId: o,
currency: "USD",
ttl: 300,
tl_source: r.tl_source,
meta: {}
}, b(a) && (t.vastXml = r.ad, t.mediaType = "video"), r.advertiser_name && (t.meta.advertiserName = r.advertiser_name));
return t;
}(t, e);
});
},
getUserSyncs: function getUserSyncs(e, r, t, n) {
var i = function (e) {
if (!e) return;
if (e.iframeEnabled) return "iframe";
if (e.pixelEnabled) return "image";
}(e);
if (i) {
var o = "https://eb2.3lift.com/sync?";
return "image" === i && (o = u.tryAppendQueryString(o, "px", 1), o = u.tryAppendQueryString(o, "src"https://r.search.yahoo.com/,"prebid")), null !== y && (o = u.tryAppendQueryString(o, "gdpr", l), o = u.tryAppendQueryString(o, "cmp_cs", y)), n && (o = u.tryAppendQueryString(o, "us_privacy", n)), [{
type: i,
url: o
}];
}
}
};
function b(e) {
return e.mediaTypes.video && e.mediaTypes.video.context && "instream" === e.mediaTypes.video.context.toLowerCase();
}
function g(r, t) {
u.isEmpty(t) || Object.keys(t).forEach(function (e) {
null != t[e] && (r[e] = t[e]);
});
}
function v(e, r, t, n) {
return e.map((u = r, function (e) {
return e && e.userId && e.userId[u];
})).filter(function (e) {
return !!e;
}).map((i = t, o = n, function (e) {
return {
source: i,
uids: [{
id: e,
ext: {
rtiPartner: o
}
}]
};
}));
var i, o, u;
}
function S(e) {
return e.filter(h).map(function (e) {
return {
w: e[0],
h: e[1]
};
});
}
function h(e) {
return 2 === e.length && "number" == typeof e[0] && "number" == typeof e[1];
}
Object(i.registerBidder)(m);
}
}, [823]);
pbjs.processQueue();
}, {}];
window.modules["via.legacy"] = [function(require,module,exports){"use strict";
DS.service("via", function () {
"use strict"; // remove `via` from url, to be used after amplitude logs it to prevent users from sharing such urls
function removeFromLocation() {
var url = new URL(location.href);
url.searchParams.delete("via");
history.replaceState(null, "", url.toString());
} // and add `via` param to any outbound links
function addViaToUrl(href, via) {
if (!href || href.substr(0, 1) === "#") {
return href; // don't add to jumps on the current page, e.g. "Skip to main content"
}
var url = new URL(href);
var apexDomain = new URL(location.href).hostname.split(".").slice(-2).join(".");
if (url.hostname.indexOf(apexDomain) === -1) {
return href; // don't add it to external links
}
url.searchParams.set("via", via);
return url.toString();
} // keys correspond to "page_types" in editable_components.yml
var PREFIXES = {
article: "article",
homepage: "homepage",
"vertical front": "section",
"rubric front": "rubric"
};
var pageType;
function setPageType(amplitudePageType) {
pageType = PREFIXES[amplitudePageType];
}
var DELIMITER = "_";
function concatVia(node, via) {
var tag = node.dataset && node.dataset.via;
if (tag) {
via = (via.length ? tag + DELIMITER : tag) + via;
}
return via;
}
function addToClickedLinks() {
document.documentElement.addEventListener("click", function (e) {
var a;
var via = ""; // detect link nodes and collect via directives to append to the href
var node = e.target; // the element where this event originated may have been removed from the dom, e.g. in the case of the OIL CMP which disappears after you interact with it
while (node && node !== e.currentTarget) {
if (node.tagName === "A") {
a = node;
}
via = concatVia(node, via);
node = node.parentNode;
}
if (a && via) {
if (pageType) {
via = pageType + DELIMITER + via;
}
a.href = addViaToUrl(a.href, via);
}
});
}
function addToSubmittedForms() {
document.documentElement.addEventListener("submit", function (e) {
var form = e.target; // collect via directives
var via = "";
var node = e.target;
while (node !== e.currentTarget) {
via = concatVia(node, via);
node = node.parentNode;
}
if (via) {
if (pageType) {
via = pageType + DELIMITER + via;
} // dynamically create a hidden input for the form url
var input = document.createElement("input");
input.type = "hidden";
input.name = "via";
input.value = via;
form.appendChild(input);
}
});
} // start listening only once, when first injected
addToClickedLinks();
addToSubmittedForms();
return {
setPageType: setPageType,
removeFromLocation: removeFromLocation
};
});
}, {}];
window.modules["visibility.legacy"] = [function(require,module,exports){"use strict";
DS.service("$visibility", ["$document"https://r.search.yahoo.com/,"$window"https://r.search.yahoo.com/,"_throttle"https://r.search.yahoo.com/,"Eventify", function ($document, $window, _throttle, Eventify) {
var list = [],
Visible,
VisibleEvent;
/**
* @param {number} a
* @param {number} b
* @returns {*}
* @see http://jsperf.com/math-min-vs-if-condition-vs/8
*/
function min(a, b) {
return a < b ? a : b;
}
/**
* @param {number} a
* @param {number} b
* @returns {*}
* @see http://jsperf.com/math-min-vs-if-condition-vs/8
*/
function max(a, b) {
return a > b ? a : b;
}
/**
* Fast loop through watched elements
*/
function onScroll() {
list.forEach(updateVisibility);
}
/**
* updates seen property
* @param {Visble} item
* @param {{}} evt
* @fires Visible#shown
* @fires Visible#hidden
*/
function updateSeen(item, evt) {
var px = evt.visiblePx,
percent = evt.visiblePercent; // if some pixels are visible and we’re greater/equal to threshold
if (px && percent >= item.shownThreshold && !item.seen) {
item.seen = true;
setTimeout(function () {
item.trigger(“shown”, new VisibleEvent(“shown”, evt));
}, 15); // if no pixels or percent is less than threshold
} else if ((!px || percent < item.hiddenThreshold) && item.seen) {
item.seen = false;
setTimeout(function () {
item.trigger("hidden", new VisibleEvent("hidden", evt));
}, 15);
}
}
/**
* sets preload property
* @param {Visible} item
* @param {{}} evt
* @param {Number} innerHeight
* @fires Visible#preload
*/
function updatePreload(item, evt, innerHeight) {
if (!item.preload && item.preloadThreshhold && shouldBePreloaded(evt.target, evt.rect, item.preloadThreshhold, innerHeight)) {
item.preload = true;
setTimeout(function () {
item.trigger("preload", new VisibleEvent("preload", evt));
}, 15);
}
}
/**
* Trigger events
* @param {Visible} item
*/
function updateVisibility(item) {
var rect = item.el.getBoundingClientRect(),
innerHeight = $window.innerHeight || $document.documentElement.clientHeight,
px = getVerticallyVisiblePixels(rect, innerHeight),
percent = px / (rect.height || innerHeight),
evt = {
target: item.el,
rect: rect,
visiblePx: px,
visiblePercent: percent
};
updateSeen(item, evt);
updatePreload(item, evt, innerHeight);
}
/**
* Return normalized viewport height
* @return {number}
*/
function getViewportHeight() {
return $window.innerHeight || $document.documentElement.clientHeight || $document.body.clientHeight;
}
/**
* Return normalized viewport width
* @return {number}
*/
function getViewportWidth() {
return $window.innerWidth || $document.documentElement.clientWidth || $document.body.clientWidth;
}
/**
* make sure an element isn't hidden by styles or etc
* @param {Element} el
* @return {Boolean}
*/
function isElementNotHidden(el) {
return el && el.offsetParent !== null && !el.getAttribute("hidden") && getComputedStyle(el).display !== "none" && getComputedStyle(el).visibility !== "hidden";
}
/**
* Apparently the fastest way...
* @param {Element} el
* @returns {boolean}
* @example if (!$visibility.isElementInViewport(el)) { ... }
*/
function isElementInViewport(el) {
var rect = el.getBoundingClientRect();
return rect.top >= 0 && rect.left >= 0 && rect.bottom <= ($window.innerHeight || $document.documentElement.clientHeight) && rect.right <= ($window.innerWidth || $document.documentElement.clientWidth);
}
/**
* @param {Element} el
* @param {ClientRect} rect
* @param {Number} preloadThreshhold
* @param {Number} innerHeight
* @return {Boolean}
*/
function shouldBePreloaded(el, rect, preloadThreshhold, innerHeight) {
return rect.top <= innerHeight + preloadThreshhold && isElementNotHidden(el);
}
/**
* Create a one-dimensional spacial hash of x
* @param {number} x
* @param {number} stepSize
* @param {number} optimalK
* @param {number} base
* @return {number}
*/
function getLinearSpacialHash(x, stepSize, optimalK, base) {
var index = Math.floor(x / (stepSize || 1)),
remainder = x % stepSize,
result = index.toString(base);
if (optimalK > 1) {
result += getLinearSpacialHash(remainder, Math.floor(stepSize / base), optimalK – 1, base);
}
return result;
}
/**
* @param {ClientRect} rect
* @param {number} innerHeight
* @returns {number}
*/
function getVerticallyVisiblePixels(rect, innerHeight) {
return min(innerHeight, max(rect.bottom, 0)) – min(max(rect.top, 0), innerHeight);
}
/**
* Get offset of element relative to entire page
*
* @param {Element} el
* @returns {{left: number, top: number}}
* @see http://jsperf.com/offset-vs-getboundingclientrect/7
*/
function getPageOffset(el) {
var offsetLeft = el.offsetLeft,
offsetTop = el.offsetTop;
while (el = el.offsetParent) {
offsetLeft += el.offsetLeft;
offsetTop += el.offsetTop;
}
return {
left: offsetLeft,
top: offsetTop
};
}
/**
* Create a new Visible class to observe when elements enter and leave the viewport
*
* Call destroy function to stop listening (this is until we have better support for watching for Node Removal)
* @param {Element} el
* @param {{shownThreshold: number, hiddenThreshold: number}} [options]
* @class
* @example this.visible = new $visibility.Visible(el);
*/
Visible = function Visible(el, options) {
options = options || {};
this.el = el;
this.seen = false;
this.preload = false;
this.preloadThreshhold = options && options.preloadThreshhold || 0;
this.shownThreshold = options && options.shownThreshold || 0;
this.hiddenThreshold = options && min(options.shownThreshold, options.hiddenThreshold) || 0;
list.push(this);
updateVisibility(this); // set immediately to visible or not
};
Visible.prototype = {
/**
* Stop triggering.
*/
destroy: function destroy() {
// remove from list
list.splice(list.indexOf(this), 1);
}
/**
* @name Visible#on
* @function
* @param {‘shown’|’hidden’} e EventName
* @param {function} cb Callback
*/
/**
* @name Visible#trigger
* @function
* @param {‘shown’|’hidden’} e
* @param {{}}
*/
};
Eventify.enable(Visible.prototype);
VisibleEvent = function VisibleEvent(type, options) {
var _this = this;
this.type = type;
Object.keys(options).forEach(function (key) {
_this[key] = options[key];
});
}; // listen for scroll events (throttled)
$document.addEventListener(“scroll”, _throttle(onScroll, 200)); // public
this.getPageOffset = getPageOffset;
this.getLinearSpacialHash = getLinearSpacialHash;
this.getVerticallyVisiblePixels = getVerticallyVisiblePixels;
this.getViewportHeight = getViewportHeight;
this.getViewportWidth = getViewportWidth;
this.isElementNotHidden = isElementNotHidden;
this.isElementInViewport = isElementInViewport;
this.Visible = Visible;
}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==”function”&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(“Cannot find module ‘”+o+”‘”);throw f.code=”MODULE_NOT_FOUND”,f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==”function”&&require;for(var o=0;o
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === “string”) return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === “Object” && o.constructor) n = o.constructor.name; if (n === “Map” || n === “Set”) return Array.from(o); if (n === “Arguments” || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function mountLegacyServices() { Object.keys(window.modules).filter(function (key) { return typeof key === 'string' && key.match(/.legacy$/); }).forEach(function (key) { return window.require(key); }); } function tryToMount(fn, el, name) { try { fn(el); // init the controller } catch (e) { var elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML)); console.error("Error initializing controller for "".concat(name, "" on "").concat(elementTag, """), e); } } /** * mount client.js component controllers */ function mountComponentModules() { Object.keys(window.modules).filter(function (key) { return typeof key === 'string' && key.match(/.client$/); }).forEach(function (key) { var controllerFn = window.require(key); if (typeof controllerFn === 'function') { var name = key.replace('.client"https://r.search.yahoo.com/,"'), instancesSelector = "[data-uri*="_components/".concat(name, "/"]"), defaultSelector = "[data-uri$="_components".concat(name, ""]"), instances = document.querySelectorAll(instancesSelector), defaults = document.querySelectorAll(defaultSelector); var _iterator = _createForOfIteratorHelper(instances), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var el = _step.value; tryToMount(controllerFn, el, name); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } var _iterator2 = _createForOfIteratorHelper(defaults), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var _el = _step2.value; tryToMount(controllerFn, _el, name); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } }); } // Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies, // services, or components that could require it // note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js window.process = window.process || {}; window.process.env = window.process.env || {}; if (!window.process.env.NODE_ENV) { window.process.env.NODE_ENV = ''; } // note: legacy controllers that require legacy services (e.g. dollar-slice) must // wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first mountLegacyServices(); mountComponentModules(); // ]]